基于ansible的生产环境部署构建(六) 角色zabbix

角色功能说明:

  • 该角色实现对客户端主机的zabbix agent部署启动
  • 该角色可以反复执行以达到zabbix agent软件升级或配置升级的功能

角色部署:

  • 创建目录结构,创建软连接,关联默认变量文件
WorkDir=~/devops/ansible/os_init && cd ${WorkDir}
RoleName=zabbix
mkdir -pv roles/${RoleName}/{defaults,files,handlers,meta,tasks,templates,vars}
ln -s ${WorkDir}/defaults_var.yml roles/${RoleName}/defaults/main.yml
  • 配置zabbix模版文件,如果环境中包含多个机房,每个机房的zabbix配置不同时,为每个机房配置各自的zabbix模版文件
cat >roles/${RoleName}/templates/zabbix_192.168.j2<<EOF
PidFile=/var/run/zabbix/zabbix_agentd.pid
LogFile=/var/log/zabbix/zabbix_agentd.log
LogFileSize=0
Server=192.168.1.112
ServerActive=192.168.1.112:10051
Hostname={{ local_hostname.stdout }}
Include=/etc/zabbix/zabbix_agentd.d/
EOF
  • 创建角色任务
cat >roles/${RoleName}/tasks/main.yml<<EOF
---
- name: "分发 zabbix agent centos6 rpm"
  copy:
    src: ${WorkDir}/software/{{ zabbix_agent_6_name }}
    dest: /tmp
    owner: root
    group: root
    mode: 0644
  when: ansible_distribution_major_version == "6"
- name: "分发 zabbix agent centos7 rpm"
  copy:
    src: ${WorkDir}/software/{{ zabbix_agent_7_name }}
    dest: /tmp
    owner: root
    group: root
    mode: 0644
  when: ansible_distribution_major_version == "7"
- name: "安装 zabbix agent centos6 rpm"
  yum:
    name: /tmp/{{ zabbix_agent_6_name }}
    state: present
  when: ansible_distribution_major_version == "6"
- name: "安装 zabbix agent centos7 rpm"
  yum:
    name: /tmp/{{ zabbix_agent_7_name }}
    state: present
  when: ansible_distribution_major_version == "7"
- name: "获取主机名"
  shell:
    "hostname"
  register: local_hostname
- name: "定位网段"
  shell:
    "echo {{ ansible_ssh_host }}|awk -F'.' '{print \$1\".\"\$2}'"
  register: local
- name: "根据网段匹配zabbix模版"
  template:
    src: zabbix_{{ local.stdout }}.j2
    dest: /etc/zabbix/zabbix_agentd.conf
    force: yes
    owner: root
    group: root
    mode: 0644
- name: "设置 zabbix agent 开机启动"
  service:
    name: zabbix-agent
    enabled: yes
- name: "重启 zabbix agent"
  service:
    name: zabbix-agent
    state: restarted
EOF
  • 创建任务playbook并执行
cat >os-init-5-${RoleName}.yml<<EOF
---
- hosts: all
  remote_user: root
  gather_facts: true
  become: no
  roles:
    - ${RoleName}
EOF
ansible-playbook -i inventory/hosts os-init-5-${RoleName}.yml

[TOC]

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值