1
このワークフローは機能しますが、とにかく理想的ではありません。
最後のタスクはすべてのサーバーを削除します。 sensu-clientがインストールされているサーバは、Sensuマスタに到達して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