2016-11-10 4 views
1

Я хочу написать книгу для синхронизации исходного файла с целевым хостом и перезапустить tomcat/apache, если файл был изменен. Документация по синхронизации не дает никаких примеров, если это возможно. Может ли кто-нибудь указать некоторые указатели?Ansible синхронизировать и выполнять действия, если они изменены

ответ

1

Если вы только меняете один файл, вероятно, вы захотите использовать 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