【问题标题】:Ansible: execute a task/handler BEFORE another one only if the second changes something [duplicate]Ansible:仅当第二个更改某些内容时,才在另一个任务/处理程序之前执行一个任务/处理程序[重复]
【发布时间】:2017-06-16 08:50:01
【问题描述】:

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

- 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 任务没有“改变”任何内容。

当“更改配置”有 changed: true 时,我如何告诉 ansible 只运行“停止服务”?

【问题讨论】:

    标签: ansible


    【解决方案1】:

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

    【讨论】:

    • 谢谢@techraf。这有效并解决了我的问题。
    猜你喜欢
    • 2017-05-08
    • 2019-12-23
    • 1970-01-01
    • 1970-01-01
    • 2023-03-14
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多