Я хочу написать книгу для синхронизации исходного файла с целевым хостом и перезапустить tomcat/apache, если файл был изменен. Документация по синхронизации не дает никаких примеров, если это возможно. Может ли кто-нибудь указать некоторые указатели?Ansible синхронизировать и выполнять действия, если они изменены
ответ
Если вы только меняете один файл, вероятно, вы захотите использовать copy
вместо synchronize
. Однако такой подход должен работать в любом случае.
handler system предназначен для такого рода вещей. В документации есть приведен пример подпрыгивая Memcached после изменения файла конфигурации:
Вот пример перезагрузки двух служб, когда содержимое изменения в файла, но только в случае изменения файла:
- name: template configuration file template: src=template.j2 dest=/etc/foo.conf notify: - restart memcached - restart apache
Все перечисленные в разделе уведомлений задачи называются обработчиками.
Обработчики - это списки задач, на самом деле не отличающиеся от обычных заданий , на которые ссылается глобально уникальное имя, и уведомители уведомляются . Если ничего не уведомляет обработчик, он не будет работать. Независимо от того, сколько задач уведомляет обработчик, он будет запускаться только один раз, после выполнения всех задач в конкретной игре.
Вот пример обработчики раздела:
handlers: - name: restart memcached service: name=memcached state=restarted - name: restart apache service: name=apache state=restarted