Ansible 並行和異步
阿新 • • 發佈:2018-04-18
doc use extern ansible 官網文檔 翻譯 ID XP 命令 ,把它增加到上個命令的後面就好了。
增加並行進程數
Ansible提供一個forks的屬性,可以設置運行並行進程數。這個值默認比較保守,只有5個並行進程。我們可以根據自己的機器性能以及網絡情況來設定,很多人使用50,也有用500以上的。如果有很多機器要管理的話,可以嘗試先增加這個值,看看效果。有三個地方可以設置forks的數量:
- 環境變量:
export ANSIBLE_FORKS=100
- ansible.cfg這個配置文件裏設置:
forks=100
- 運行ansible命令時增加參數:
-f 100
當機器數量比較大的時候,難免會有幾臺機器不能正常執行。這時候ansible會有提示to retry, use: --limit @/xxx/xxx.retry
異步
有時候執行某個任務可能需要很長的時間,在集群規模較大的情況下慢得讓人無法忍受。這時可以考慮使用異步模式。在tasks
裏增加async
的屬性,設成某個數字,比如60,意思就是這個任務最大運行時間不能超過60秒。也可以設成0,意思是不管任務運行多久,一直等待即可。如果沒有指定async
,則默認為同步模式。還可以設定poll
,默認值為10,意思就是每隔10秒輪詢查看結果。如果不需要查看結果,設為0就好了。還可以通過register
和async_status
設定暫時不查看結果,等需要的時候再查看。具體做法可以參考上面的異步模式官網文檔,也可以看翻譯的中文文檔。
Ansible 並行和異步