2017-05-24 127 views
1

我有一個ansible處理程序,以重新啓動主管Ansible服務模塊狀態無法啓動監事重啓

--- 
- name: 'restart supervisor' 
    become: true 
    service: 
    name: supervisor 
    enabled: yes 
    state: restarted 

而且處理程序運行,但輸出爲skipping

RUNNING HANDLER [supervisor : restart supervisor] ******************* 
skipping: [redacted] 

通知發生在最初的規定的服務器,所以當處理程序觸發時,主管沒有運行。這是爲什麼它不重新啓動?如果我在服務沒有運行的情況下ssh進入方框並手動運行sudo service supervisor restart,它啓動就好了。

我甚至嘗試過一個start supervisor這樣的處理程序,它做了同樣的事情...跳過和主管從未開始?

--- 
- name: 'start supervisor' 
    become: true 
    service: 
    name: supervisor 
    enabled: yes 
    state: started 

我正在運行v2.3.0.0-1,但使用v2.2.2.0時也遇到了此問題。

有沒有其他人遇到這個問題與主管?有其他方法嗎?難道我做錯了什麼?

- 更新 -

有地方正在應用中的作用的when條款,所以決定刪除,看它是否是罪魁禍首。再次跳過...這是輸出。

RUNNING HANDLER [supervisor : restart supervisor] ****************************************************************************************************************************************************** 
skipping: [ansible1] => { 
    "changed": false, 
    "skip_reason": "Conditional result was False", 
    "skipped": true 
} 

這將是很好,如果ansible會告訴我什麼條件是導致其跳過,因爲去掉when後出現在我的ansible代碼沒有理由會導致它跳過。 service模塊的內部必須有一些內部原因:s

+0

請發佈完整(但最小)的代碼。如果你得到「跳過」狀態,它與任務內部的內容無關(只要它看起來像問題中的內容),而不是它的內容。 – techraf

+1

你是否在'when'語句中應用你的角色? –

+0

我遇到了同樣的問題,試圖重新啓動datadog代理。你有沒有得到任何更新? – Carlos

回答

0

服務模塊不會使用restart選項調用服務腳本,但執行啓動和停止。主管服務腳本是否有狀態選項?如果無法獲得狀態,則可能根本無法運行重新啓動命令。

+0

看看模塊代碼,這個答案似乎很不精確。 – techraf

+0

是的 - 終於有時間來進行測試了。缺少狀態選項不會導致這個問題。 – Jack

1

處理器是依賴角色的一部分嗎? (即:定義處理程序的角色作爲meta/main.yml中的依賴項包含在角色中)。因爲我已經看到了這種情況,並且出現了相同的奇怪"skip_reason": "Conditional result was False",。將meta/main.yml:dependencies中包含的依賴角色更改爲playbook.yml:roles使其發揮作用。

我也看到它的工作原理,如果擁有該處理程序的角色被包含爲作爲包含在playbook.yml:roles中的角色的元依賴項。

不知道這是一個錯誤還是一個棘手的行爲,我不明白。這發生在Ansible-playbook 2.3.2.0

+0

感謝@Carlos事實上,監督者角色包含在另一個角色的meta/main.yml中。這對我來說是有道理的,因爲我們在另一個劇本中使用了監督者角色,但是它包含在該劇本的角色列表中,並且運行良好。我一有機會就會對此進行調查。感謝您的信息! – SomethingOn