【问题标题】:Zabbix maintenance using Ansible使用 Ansible 维护 Zabbix
【发布时间】:2017-03-09 08:16:03
【问题描述】:

我想使用zabbix _maintenance module

但我想将host_groups 作为一个额外的变量发送,这样我就可以将多个主机组置于维护状态。

我面临的问题是host_group 需要一个项目列表,而我不明白如何编写角色,因此它会运行额外 var 提供给它的列表

我试过了:

- name: maintenance
   zabbix_maintenance:
    name: Pause
    host_groups:
      - "{{ item }}"
    with_items:
      - { 'zabbix_hosts_groups' }
    state: "{{ zabbix_state }}"
    server_url: http://zabbix.XXX.com
    login_user: YYY
    login_password: XXX
    minutes: 90
    desc: "Paused-for-dep"

并运行它:

 ansible-playbook -i 'localhost,' --connection=local zabbix-maintenance.yml -e '{"zabbix_hosts_groups":"Test1","Test2"}' -e 'zabbix_state=present

【问题讨论】:

  • 那么问题是为什么你在按下回车后没有得到shell提示?因为命令中的引号不匹配。

标签: ansible zabbix


【解决方案1】:

语法正确的任务定义是:

- name: maintenance
  zabbix_maintenance:
    name: Pause
    host_groups: "{{ zabbix_hosts_groups }}"
    state: "{{ zabbix_state }}"
    server_url: http://zabbix.XXX.com
    login_user: YYY
    login_password: XXX
    minutes: 90
    desc: "Paused-for-dep"

虽然我不明白问题描述。 “詹金斯”??? “角色怎么写”???请至少学习提出问题所需的词汇。

【讨论】:

  • 感谢“Jenkins”的评论 - 只是一个诚实的错误,我更正了这个问题。
  • 我正在尝试使用 Ansible 并向角色发送多个“host_groups”,使用额外的变量,这基本上是我的问题。
  • 使用此语法时,我设法通过运行添加多个主机组: ansible-playbook -i 'localhost,' --connection=local zabbix-maintenance.yml -e '{"zabbix_hosts_groups": "Test1","Test2"}' -e 'zabbix_state=present
【解决方案2】:

我使用 ansible 模块 zabbix_host。有一个属性link_templates。但它会删除之前链接到您的主机的所有组。 我还没有做到这一点。所以现在我用它来添加通用模板,然后在 Zabbix GUI 中手动链接所需的模板。

查看这个 repo,也许你会发现一些有用的东西:igogorevi4:Ansible

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2016-01-26
    • 1970-01-01
    • 2016-06-22
    • 2011-02-04
    • 2011-10-08
    • 1970-01-01
    • 1970-01-01
    • 2016-06-12
    相关资源
    最近更新 更多