Там есть несколько вещей, которые вы можете сделать, но, как вы правильно заметили, анзибль в его нынешнем виде не реально предложить хорошее решение.
Официальные иш решения:
Одна идея, чтобы отметить задание как асинхронная и опрашивать его. Очевидно, что это подходит только в том случае, если он способен работать таким образом, не вызывая сбоев в другом месте в вашем плейбуке. Асинхронные документы являются here и вот пример поднял из них:
- hosts: all
remote_user: root
tasks:
- name: simulate long running op (15 sec), wait for up to 45 sec, poll every 5 sec
command: /bin/sleep 15
async: 45
poll: 5
Это может по крайней мере дать вам «пинг», чтобы знать, что задача не висит.
Единственный другой официально одобренный метод - это Ansible Tower, у которого есть индикаторы выполнения задач, но не является бесплатным.
Hacky-иш решения:
Помимо вышесказанного, вы в значительной степени придется свернуть свой собственный. Ваш конкретный пример синхронизации ведра S3 можно довольно легко контролировать с помощью скрипта, периодически вызывающего CLI AWS и подсчета количества элементов в ведре, но это вряд ли хорошее, общее решение.
Единственное, что я мог представить, будучи несколько эффективным, будет наблюдать за входящей сессией ssh с одного из ваших узлов.
Для этого вы можете настроить доступного пользователя на этом компьютере для подключения через экран и активно наблюдать за ним. Альтернативно, возможно, используя параметр log_output
в записи sudoers для этого пользователя, что позволяет вам зачеркнуть файл. Подробные сведения о log_output можно найти на sudoers man page