之前搞puppet的时候画过的图,贴出来一起讨论下。。
结构说明:
1.user更改/apps/puppet_edit下的相关文件,并执行svn commit ,触发hook,更新/etc/puppet目录下的相关文件
使用svn管理代码,方便回退,在用户没有commit时,更改的代码不会生效
2.fileserver和代码设置分离,代码和数据分离
3.cmdb和puppet使用enc进行交互,实现了cmdb和puppet的整合(这部分需要等cmdb上线后使用)
4.来至client的请求,通过lb进行load balance,在压力比较大时,比较容易scale out和scale up.
5.server执行完puppet的相关设置后,进行report,最终report至foreman的数据库中,foreman做前端展示。
数据在数据库中,方便后续的处理
6.使用ruby的框架rack来运行puppetmaster,puppetmaster相当于rack里面的thread pool,性能强大,方便管理(nginx reload即可)
7.使用yum进行大部分的包管理,并搭建自己的yum源,按需打包rpm,更新,方便软件的安装和更新。
8.强大的自定义facter变量
9.客户端不使用listen的方式运行,为保证实时运行的需求,使用mcollective和activemq实现(配合强大的facter和module)
本文转自菜菜光 51CTO博客,原文链接:http://blog.51cto.com/caiguangguang/1354076,如需转载请自行联系原作者