Ansible:仅在第二个任务/处理程序更改某些内容时,在另一个任务/处理程序之前执行任务/处理程序



我需要更改服务的配置文件。此更改必须在停止此服务的情况下完成。我可以做这样的事情:

- 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选项运行它,注册结果,然后使用基于结果的条件运行(或不运行(所有三个任务,例如在块中。

相关内容

最新更新