1. 程式人生 > >Ansible 並行和異步

Ansible 並行和異步

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就好了。還可以通過registerasync_status設定暫時不查看結果,等需要的時候再查看。具體做法可以參考上面的異步模式官網文檔,也可以看翻譯的中文文檔。

Ansible 並行和異步