機器管理的工具選擇的考量可以包含以下三個方面:
1. 是否簡單,是否需要每臺機器部署agent(客戶端)
2. 語言的選擇(puppet/chef vsansible/saltstack)開源技術,不看官網不足以熟練,不懂源碼不足以精通;Puppet、Chef基于Ruby開發,ansible、saltstack基于python開發的
3. 速度的選擇(ansiblevssaltstack) ansible基于SSH協議傳輸數據,Saltstack使用消息隊列zeroMQ傳輸數據;大規模并發的能力對于幾十臺-200臺規模的兄弟來講,ansible的性能也可接受,如果一次操作上千臺,用salt好一些。
如圖9所示:

\[圖9 機器管理軟件對比\]
一般創業公司選擇 Ansible 能解決大部問題,其簡單,不需要安裝額外的客戶端,可以從命令行來運行,不需要使用配置文件。至于比較復雜的任務,Ansible 配置通過名為 Playbook 的配置文件中的 YAML 語法來加以處理。Playbook 還可以使用模板來擴展其功能。