Я работаю с файлом инвентаризация анзибля и в sensu-cli (interactes с API Sensu в)анзибля - автоматизировать удаление хостов в Sensu
После того, как сервер удаляются из инвентаря, что сервер все еще прилипает вокруг, пока не будет удален вручную с вызов API.
Этот рабочий процесс работает, но он не идеален в любом случае.
Последняя задача удалит все серверы. Любой сервер, на котором установлен sensu-клиент, будет обращаться к ведущему устройству Sensu и самому считывать. Что совсем не круто.
Идея здесь заключается в том, чтобы удалять ТОЛЬКО серверы, не находящиеся в файле инвентаризации.
- 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