要说如今的部署工具,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))
欢迎你们关注个人公众号: