我需要更改服务的配置文件。此更改必须在停止此服务的情况下完成。我可以做这样的事情:
- name: stop service
service:
name: my_service
state: stopped
- name: change config
copy:
src: my_config
dest: /etc/my_service/my_config
- name: start service
service:
name: my_service
status: started
这样做的问题是,my_service
在任何情况下都会停止,即使copy
任务没有"改变"任何东西。
如何告诉 ansible 仅在"更改配置"changed: true
时运行"停止服务"?
您可以复制"更改配置"任务并首先使用check_mode: yes
选项运行它,注册结果,然后使用基于结果的条件运行(或不运行(所有三个任务,例如在块中。