Ansible:只有当第二个更改某些内容时才执行另一个任务/处理程序

时间:2017-06-16 08:50:02

标签: 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任务没有“更改”任何内容。

当'change config'有changed: true时,如何告诉ansible只运行'停止服务'?

1 个答案:

答案 0 :(得分:1)

您可以复制“更改配置”任务并首先使用check_mode: yes选项运行它,注册结果然后根据结果运行(或不运行)具有条件的所有三个任务,例如在块中