ansible-playbook调用zabbix-api自动添加主机

2019-05-26 09:23:37 浏览数 (1)

版权声明:本文为木偶人shaon原创文章,转载请注明原文地址,非常感谢。 https://cloud.tencent.com/developer/article/1434637

ansible-playbook调用zabbix-api自动添加主机

  1. playbook-example
代码语言:javascript复制
# example.yml
---
- hosts: "{{ host }}"
  vars:
    zabbix_host_groups: "{{ host }}"

    zabbix_url: "http://zabbix.example.com"
    zabbix_api_user: Admin
    zabbix_api_pass: admin
    zabbix_api_create_hostgroup: True
    zabbix_api_create_hosts: True
    zabbix_create_hostgroup: present  # or absent
    zabbix_create_host: present       # or absent
    zabbix_host_status: enabled  
    zabbix_agent_hostname: "{{ ansible_hostname }}"
    zabbix_proxy: null
    zabbix_inventory_mode: disabled
    zabbix_useuip: 1
    zabbix_agent_service: zabbix-agent
    dns_name: null

    zabbix_link_templates:
      - Template OS Linux Active
                                                                                                              
    zabbix_agent_interfaces:
      - type: 1
        main: 1
        useip: "{{ zabbix_useuip }}"
        ip: 0.0.0.0
        dns: ""
        port: 0

  tasks:
  - name: "Make sure the zabbix-agent service is running"
    service:
      name: "{{ zabbix_agent_service }}"
      state: started
      enabled: yes
    tags:
      - service
  
  - name: "Create hostgroups"
    local_action:
      module: zabbix_group
      server_url: "{{ zabbix_url }}"
      login_user: "{{ zabbix_api_user }}"
      login_password: "{{ zabbix_api_pass }}"
      host_group: "{{ zabbix_host_groups }}"
      state: "{{ zabbix_create_hostgroup }}"
    when:
      - zabbix_api_create_hostgroup
    tags:
      - api
  
  - name: "Create a new host or update an existing host's info"
    local_action:
      module: zabbix_host
      server_url: "{{ zabbix_url }}"
      login_user: "{{ zabbix_api_user }}"
      login_password: "{{ zabbix_api_pass }}"
      host_name: "{{ zabbix_agent_hostname }}"
      host_groups: "{{ zabbix_host_groups }}"
      link_templates: "{{ zabbix_link_templates }}"
      status: "{{ zabbix_host_status }}"
      state: "{{ zabbix_create_host }}"
      proxy: "{{ zabbix_proxy }}"
      inventory_mode: "{{ zabbix_inventory_mode }}"
      interfaces: "{{ zabbix_agent_interfaces }}"
      visible_name: "{{ zabbix_host_groups }}_{{ inventory_hostname }}"
    when:
      - zabbix_api_create_hosts
    changed_when: false
    tags:
      - api
  • 执行playbook
代码语言:javascript复制
ansible-playbook -i hosts auto_add_hosts_to_zabbix_server.yml -e host=appname

注意:笔者的zabbix-agent是主动模式,如果被动模式需更改: zabbix_agent_interfaces:

0 人点赞