【发布时间】:2014-06-27 05:48:48
【问题描述】:
我对 Ansible 比较陌生,我创建了一个可以在“裸机”服务器上安装 Tomcat 配置的剧本。我想知道如何解决能够更新 init.d 脚本的问题,同时避免在脚本没有更改时在剧本开始时停止服务。这是基本的剧本:
- name: stop tomcat service
service: name=my_service state=stopped
- name: copy init.d script
template: src=script.j2 dest=/etc/init.d/my_service
- name: do other tasks here
- name: start tomcat service
service: name=my_service state=restarted
即使没有任何更改,此 playbook 也会始终停止和启动服务。 我希望剧本做的只是在有实际变化时停止和启动服务。
我知道我可以使用处理程序(需要进一步研究),但我需要使用 OLD init.d 脚本停止服务,然后再复制 NEW 脚本。 AFAIK 处理程序在操作发生后响应任务的结果,这意味着新脚本已经复制到旧脚本上,并且可能会阻止服务停止和重新启动。
我该如何处理?
【问题讨论】:
标签: init ansible ansible-playbook