我正在使用Ansible的清单文件和sensu-cli (与Sensu的API交互)
一旦从清单中删除了服务器,该服务器仍会继续存在,直到通过API调用手动删除为止。
这个工作流程是可行的,但无论如何它都不是很理想。
最后一个任务将删除所有服务器。任何安装了sensu-client的服务器都会连接到Sensu master和readd本身。这一点都不酷。
这里的想法是只删除清单文件中没有的服务器。
- name: Get a list hosts in Sensu
shell: sensu-cli client list -f json | jq -r .[].name
register: sensu_hosts
- name: Get a list of Ansible hosts
set_fact:
sensu_ansible_hosts: "{{ hostvars[item]['inventory_hostname'] }}"
with_items: groups['all']
- name: Delete clients not in inventory
shell: sensu-cli client delete {{ item }}
with_items: sensu_hosts.stdout_lines
when: item not in sensu_ansible_hosts发布于 2017-01-14 23:17:02
试试这个:
- name: Get a list hosts in Sensu
shell: sensu-cli client list -f json | jq -r .[].name
register: sensu_hosts
- name: Delete clients not in inventory
shell: sensu-cli client delete {{ item }}
with_items: "{{ sensu_hosts.stdout_lines | difference( groups['all'] ) }}"https://stackoverflow.com/questions/41640584
复制相似问题