一 puppet 简介
puppet 是用ruby 开发的,开源的集中配置管理工具。puppet 是一个C/S结构。能够帮助系统管理员对系统,进行软件包升级,管理配置文件,系统服务,cron 任务,以及对系统中用户管理等等。puppet 是个典型的星型架构,clients 默认情况下是每30分钟请求一次server端,确认是否有新的变更操作指令。在配置puppet 环境的时候,需要使用dns 如果没有dns 的可以修改hosts 文件,确保puppet master和puppetclient 都能够正确解析对方。
puppet 工作流程如下:
1 客户端puppetd 调用facter,facter 探测出主机的一些变量,如主机名称,内存大小,ip地址等。puppetd 把这些信息通过ssl 连接发送到服务器端
2 服务器端的puppetmaster 检测客户端的主机名,然后找到manifest里面对应的node配置,并对该部分内容进行解析,facter送过来的信息可以作为变量处理,node牵涉到的代码才解析,其他没有牵涉的代码不解析。解析分为几个阶段,语法检查,如果语法错误就报错。如果语法没有错误,就继续解析,解析的结果生成一个中间的“伪代码“,然后把伪代码发送给客户端;
3 客户端接收到伪代码,并执行,客户端吧执行结果发送给服务器端;
4 服务器端包客户端的执行结果写入日志
二 所需软件,
ruby-2.0.0-p195.tar.gz
facter-1.6.18.tar.gz
puppet-3.2.1.tar.gz
三 配置安装
1 首先删除系统自带的ruby 因为我的OS Version 为RHEL5.0,为在后面安装foreman 或者puppet-dashboard,故这里升级了ruby
#yum remove ruby-*
#tar xf ruby-2.0.0-p195.tar.gz
#cd ruby-2.0.0-p195
#./configure –prefix=/usr/local/ruby && make && makeinstall
2 安装facter
# tar xf facter-1.6.18.tar.gz
#cd facter-1.6.18
#/usr/local/ruby/bin/rubyinstall.rb
3 安装puppet
#tar xf puppet-3.2.1.tar.gz
#cd puppet-3.2.1
#/usr/local/ruby/bin/ruby install.rb
4 配置puppet
#cd ext/redhat
#cp puppet.conf fileserver.conf /etc/puppet/
#cp logrotate /etc/logrotate.d/puppetmaster
#cp server.init /etc/init.d/puppetmaster
#chmod 700 /etc/init.d/puppetmaster
#cp server.sysconf ig /etc/sysconfig/puppetmaster
#useradd puppet
#cp ../../conf/{auth.conf,tagmail.conf} /etc/puppet/
5 创建命令连接
#ln -sf /usr/local/ruby/bin/{bundle,erb,extlookup2hiera,facter,gem,irb,puppet,rake,rdoc,ri,ruby,testrb} /usr/bin
6 puppet 配置文件详解
#cd /etc/puppet
#ls
auth.conf
files
fileserver.conf #puppet文件服务器配置文件
manifests #puppet主文件所在目录
modules #puppet 的模块所在文件
namespaceauth.conf
puppet.conf #puppet 的主配置文件