2017-08-28 39 views
0

非常頻繁的時候我在做我與開發過程中的一些這樣的事情運行ansbile處理作爲一個時間的事情

tasks: 
    ... 
    - name: task x 
    notify: handler a 
    ... 
    - name: task y 
    ... 
handlers: 
    ... 
    - name: handler a 
    ... 

現在正在變爲一個ansible劇本(或作用),任務x成功並執行更改,但任務y因爲其中存在錯誤而失敗。 處理者a不是通知

後來我設法解決任務Y並執行其變化但由於任務X已經在前面的運行變化,它報告沒有變化處理程序仍然不通知

我想我應該用--force-處理但現在,交易已經完成運行它,什麼是強制正確的方式處理程序立即運行。

+1

您希望它在'x'完成或'y'失敗後運行嗎? – user2983542

+0

請檢查問題現在是否更清晰 –

回答

2

是的,你可以強制處理程序運行通過添加任務X後,執行以下操作:

- meta: flush_handlers

當然現在的你在哪裏,你都是靠改變的狀態的處理器運行的困境所以這對你來說並不好。

您可以將changed_when: True添加到任務x以獲取要運行的處理程序然後恢復它。沒有正確的方法讓它運行,因爲它依賴於通知任務的更改狀態

+0

有關'meta'模塊的文檔,請參閱https://docs.ansible.com/ansible/latest/meta_module.html。 –

相關問題