我想编写一个playbook来将源文件同步到目标主机,如果文件发生更改,则重新启动tomcat / apache。有关同步的文档没有给出任何关于是否可行的示例。任何人都可以提供一些指示吗?
答案 0 :(得分:1)
如果您只更改了一个文件,则可能需要使用copy
而不是synchronize
。但是,这种方法应该有效。
handler system专为此类事情而设计。那里的文档提供了在配置文件更改后弹出memcached的示例:
这是一个在a的内容重启两个服务的例子 文件更改,但仅在文件更改时才会更改:
- 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