You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何实现容器部署的Ansible Tower(AWX)与Zabbix的清单同步

AWX与Zabbix清单同步可行性说明

容器部署的AWX(Ansible Tower)完全支持和Zabbix清单实现同步,无需修改AWX容器的核心配置,通过自定义Playbook结合AWX的作业调度能力即可实现全量/定时同步。


前置依赖
  • AWX实例网络可正常访问Zabbix的API接口
  • 拥有Zabbix侧具备主机读取权限的账号凭证
  • AWX侧具备清单编辑权限的账号或OAuth令牌
  • 执行同步任务的AWX执行环境预装了community.zabbix和awx.awx集合,可通过执行环境的requirements.yml配置预装:
collections:
  - name: community.zabbix
    version: 2.2.0
  - name: awx.awx
    version: 22.7.0
  • 提前在AWX中创建好用于存储同步结果的目标清单,记录对应清单ID

同步Playbook示例
---
- name: 同步Zabbix启用状态主机到AWX清单
  hosts: localhost
  gather_facts: false
  vars:
    # 替换为你的Zabbix实际配置
    zabbix_url: "https://你的Zabbix域名/api_jsonrpc.php"
    zabbix_api_user: "Zabbix账号"
    zabbix_api_pass: "Zabbix密码"
    # 替换为你的AWX实际配置
    awx_url: "https://你的AWX域名"
    awx_oauth_token: "AWX的OAuth令牌"
    target_inventory_id: 1 # 替换为提前创建的目标清单ID

  collections:
    - community.zabbix
    - awx.awx

  tasks:
    - name: 拉取Zabbix所有启用状态的主机信息
      community.zabbix.zabbix_host_info:
        server_url: "{{ zabbix_url }}"
        login_user: "{{ zabbix_api_user }}"
        login_password: "{{ zabbix_api_pass }}"
        host_status: enabled
        output: extend
        selectInterfaces: extend
      register: zabbix_host_list

    - name: 批量将Zabbix主机写入AWX目标清单
      awx.awx.host:
        controller_host: "{{ awx_url }}"
        controller_oauthtoken: "{{ awx_oauth_token }}"
        name: "{{ item.host }}"
        inventory: "{{ target_inventory_id }}"
        enabled: true
        # 可自定义需要同步的主机变量
        variables:
          zabbix_hostid: "{{ item.hostid }}"
          zabbix_host_groups: "{{ item.groups | default([]) }}"
          ansible_host: "{{ item.interfaces | selectattr('main', 'equalto', '1') | map(attribute='ip') | first | default(item.host) }}"
        state: present
      loop: "{{ zabbix_host_list.hosts }}"
      loop_control:
        label: "{{ item.host }}"

敏感凭证建议通过AWX的自定义凭证功能传入,不要明文写在Playbook代码中。如果需要同步已禁用的Zabbix主机,修改host_status参数为disabled即可,也可扩展逻辑实现Zabbix主机删除后对应AWX主机自动下架。


AWX自动同步配置步骤
  • 将上述Playbook上传到AWX关联的Git代码仓库
  • 在AWX中分别创建Zabbix API凭证、AWX管理凭证,绑定到后续的作业模板
  • 新建作业模板,关联上述Playbook和对应的执行环境、凭证
  • 如需定时自动同步,给作业配置对应时间规则的调度计划即可

内容的提问来源于stack exchange,提问作者dcremona

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.03 15:27:03