2016-01-04 22 views
1

我想在遠程機器上運行一個命令。該命令將重置網絡接口。如何在合理的劇本中運行此操作如何運行一個能夠重置網絡接口的命令?

- name: Execute config command 
    sudo: yes 
    shell: "mycommand" 
    async: 0 
    poll: 0 
    ignore_errors: true 

上述任務不一致。即使我嘗試了async: 300,也觀察到了相同的不一致性。

+1

你看到了什麼樣的不一致?手動運行時,「mycommand」是否一直返回OK? – martineg

+0

你也可以在shell命令中描述你正在做什麼嗎? – udondan

回答

1

您很可能會遇到類似於我描述的情況in this question。根據您運行的命令(mycommand),網絡連接可能會非常迅速地下降,導致Ansible認爲連接意外中斷。發生這種情況時,會導致Ansible將其視爲錯誤。

您可能想要修改mycommand以在重置發生前包含睡眠幾秒鐘,然後繼續使用async:0poll:0。這將使Ansible有足夠的時間將mycommand啓動到後臺,並在服務器重置網絡連接之前從服務器上完全斷開與服務器的無錯連接。

根據您的下一個任務是什麼,您可能還需要包含一個wait_for任務,該任務通過local_action運行,以確保Ansible在嘗試執行任何其他任務之前等待此網絡重置完成。

相關問題