写Ansible playbook添加zabbix被监控的对象

本主题达到的效果是能通过编写Ansible Playbook,创建zabbix主机组,把被监控的对象加入到zabbix监控系统中,同时链接到对象的模板。

1.准备工作

在zabbix服务器上面,我们需要安装ansible,同时呢,还需要安装一些其它组件,如下:

#  yum install epel-release
#  yum install ansible python-pip
#  pip install zabbix-api
#  pip install --upgrade pip

2. 添加zabbix 主机组的playbook

添加主机前,我们需要创建主机组。

# ansible-playbook add-hostgroup.yml                 #执行playbook会自动添加主机组

playbook内容如下:

添加zabbix主机组
--- - name: config zabbix   hosts: localhost   tasks:   - name: create and update zabbix groups     local_action:       module: zabbix_group       server_url: http://wszabbix.wondershare.cn            #zabbix服务器的访问地址       login_user: wszabbix       login_password: *******       state: present       host_groups:         - IAAS-App-AD-Srv         - IAAS-App-Mail-Srv         - IAAS-App-Skype-Srv         - IAAS-App-SQL-Srv         - IAAS-App-Horizon-Srv         - IAAS-App-Veeam-Srv

 

3. 添加zabbix主机的playbook

我们需要先写一个变量文件,存放主机信息,采用字典的书写方式,变量文件:win_host_info.yml ,内容如下:

主机变量
hostinfo:                                      #变量名字   update.wondershare.cn:                       #变量的key,这个可以自己定义,也可以不用被监控的主机的FQDN     fqdn: update.wondershare.cn                #我定义的是主机的FQDN(变量key的value值,我们需要在playbook中引用,最好定义有意义的名字)     app: IAAS-App-AD-Srv                       #我的用途是主机组,表示主机存放在哪个主机组     ip: 192.168.11.157                         #我的用途是主机的IP地址   szdc04.wondershare.cn:     fqdn: szdc04.wondershare.cn     app: IAAS-App-AD-Srv     ip: 192.168.10.81

 

定义好了主机变量文件,我们就可以在playbook中引用了。

#ansible-playbook add-win-hosts.yml                        #以下以配置playbook的内容

添加zabbix主机
--- - name: config zabbix   hosts: localhost   vars_files:     - win_host_info.yml   tasks:   - name: add and update Windows hosts to zabbix     local_action:       module: zabbix_host       server_url: http://wszabbix.wondershare.cn       login_user: wszabbix       login_password: ******       host_name: "{{ item.value.fqdn }}"       visible_name: "{{ item.value.fqdn }}"       host_groups:         - "{{ item.value.app }}"       link_templates:                                              #链接的模板         - Template ICMP Ping         - Template OS Windows         - Template TCP Status       status: enabled       state: present       inventory_mode: disabled       interfaces:         - type: 1           main: 1           useip: 1           ip: "{{ item.value.ip }}"           dns: ""           port: 10050     with_dict: "{{ hostinfo }}"                                  #迭代的类型选择with_dict

 

上一篇:12 网络编程


下一篇:ROS基础(二):ros通讯之服务(service)机制