2017-06-16 52 views
0

我需要更改服務的配置文件。此更改必須在停止此服務時完成。 我可以做這樣的事情: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時,我該如何告訴他人只運行'stop service'?

回答

1

您可以複製「更改配置」任務,並首先使用check_mode: yes選項運行它,註冊結果,然後運行(或不運行)所有三個任務,並根據結果(例如一個塊中的條件)執行條件。

+0

感謝@techraf。這工作並解決了我的問題。 –

相關問題