本主题达到的效果是能通过编写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 |