一、重新来过
之前的PUPPET文档基本能够满足使用,算是第一阶段;但为了更好的完成自动化工作,开始研究强大的Foreman、Mcollective等工具,本文开始将发布基于Foreman、Mcollective的PUPPET应用第二阶段部署过程,重新搭建实验环境。
二、Foreman架构
三、功能说明
1、foreman通过代理DNS、DHCP、TFTP完成了kickstart、cobbler、jumpstart 等各种自动化安装系统工具的图形统一管理窗口, 实现的结果是只需要在foreman上定制各种模板(pxe、ks),不同的模板 还可以嵌套各种片段(snippet)达到统一、简化的目的。
2、foreman通过代理puppet、puppet CA完成对puppet自动签名、puppet环境、class、变量、facter的管理。
3、foreman通过ENC和静态组管理class和node之间的关联。
4、foreman通过puppet plugin,可以在UI上完成对节点puppet命令的触发动作, 触发的方法可以借助puppetkick(已经被遗弃)、mcollective(借助sudo)、 puppetssh(借助sshkey)、salt、customrun等各种工具实现。
5、foreman可以收集所有节点运行puppet后的报告、执行情况。
6、foreman还提供了各种搜索、报表等功能,能够更好的展现节点的运行状况。
7、foreman除了管理裸机外还可以管理各种虚拟化软件,比如RHEV-M、EC2、VMWware和OpenStack等。
8、foreman还可以和LDAP以及AD集成。
9、foreman还提供了强大了用户、权限管理入口,可以建立多个用户、多个用户组、还可以对权限进行角色的定义等。
10、foreman还提供了所有在UI上操作的Audits(审计)功能,这样可以保障所有用户的操作都有据可查。
四、版本选择
系统:CentOS 6.5 x64 IP:10.99.1.30 HOSTNAME:puppet.ewp.com
软件:Puppet-Server-3.7.3 Foreman-1.6.3
说明:试过puppet 3.7.5 和 3.8.1版本,用foreman-installer安装时会报如下错误
/usr/lib/ruby/site_ruby/1.8/puppet/context.rb:54:in lookup': Could not parse for environment production: no 'environments' in {:current_environment=>#<Puppet::Node::Environment:0x7fa9df7dace0 @manifest=:no_manifest, @modulepath=[], @name=:"*root*", @watching=true, @config_version=nil>, :root_environment=>#<Puppet::Node::Environment:0x7fa9df7dace0 @manifest=:no_manifest, @modulepath=[], @name=:"*root*", @watching=true, @config_version=nil>} at top of [[0, nil, nil]] (Puppet::Error) from /usr/lib/ruby/site_ruby/1.8/puppet.rb:236:inlookup' from /usr/lib/ruby/site_ruby/1.8/puppet.rb:264:in
五、参考文档
http://kisspuppet.com/2014/12/05/foreman_learning_4/
http://theforeman.org/manuals/1.5/index.html#3.InstallingForeman
http://projects.the-forman.org