要說如今的部署工具,ansible能夠說家喻戶曉了。html
ansible是一個開源軟件,用於軟件供應、配置管理、應用部署。ansible能夠經過SSH、remote PowerShell、其餘API進行通信(from Wikipedia)。前端
因工做中有幸能接觸到puppet和ansible,對兩種部署工具也有了必定了解,並且這周參加了紅帽Automation with Ansible培訓與考試,學習的過程當中感觸良多,現總結下筆者對兩種部署工具的理解,供你們參考。 python
ansible和puppet之強大隻有使用後才能體會獲得。
編程
經過使用這兩種工具,給個人感受,感性的歸納下:ansible就像一把瑞士軍刀,靈活,簡單,快捷,比較適合中小規模集羣管理;puppet就像一個成熟,穩定,功能齊全但略顯笨重的大型武器。由於能經過必定手段橫向擴展master,因此對集羣規模適用性更加普遍。 後端
關於puppet-master的高可用和橫向擴展方法,可參考餘興超大佬的博客https://www.cnblogs.com/yuxc/p/3147320.htmlruby
在部署openstack上,後端服務咱們使用的puppet部署,本着儘可能避免本身造輪子的原則,核心組件基本用的社區現成的代碼,本身寫一個module去調用openstack核心模塊做爲統一出口。前端cmp(cloud manage platform)使用ansible部署,考慮到咱們的cmp是由本身定製開發的,部署代碼也是所有本身編寫。架構
有過一些瞭解和使用後,會發現這兩個部署工具備着不少相同之處。畢竟他們的做用與目的都是相同的,都是爲了實現編排部署順序與配置管理。less
若是說puppet和ansible最大的區別就是架構設計上的區別,前者是c/s架構,後者是Serverless架構。也就是說puppet須要部署master和agent服務,而ansible只要有python環境和ssh就可使用了,這也能夠說是puppet的劣勢。ssh
其它區別:編程語言
ansible的優點:
上面說到puppet C/S架構的劣勢,在工做中這裏遇到一個痛點,在擴容計算節點時,老是要用ansible部署下puppet-agent服務和配置,對於部署agent的時間成本,我以爲ansible是有絕對優點的。
puppet優點:
接下來,在長達幾周的時間裏,筆者會根據「紅帽DO407 Automation with Ansible」課程大綱和工做經驗,總結和擴展下ansible相關的基礎知識,列表以下:
紅帽DO407 Automation with Ansible 教材
(https://www.cnblogs.com/yuxc/p/3147320.html)
(https://docs.puppet.com)
(https://docs.ansible.com/ansible/devel/user_guide/intro.html)
(https://en.wikipedia.org/wiki/Ansible_(software))
歡迎你們關注個人公衆號: