之前搞puppet的时候画过的图,贴出来一起讨论下。。

puppet结构图一例_第1张图片

结构说明:

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)


具体的一些信息可以参考:

http://caiguangguang.blog.51cto.com/1652935/1331150