Ansible 並行和異步


增加並行進程數

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


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM