puppet原理:
客户端puppetd调用facter,facter会探测出这台主机的一些变量如主机名、内存大小、IP地址等。然后puppetd把这些信息发送到服务器端。
服务器端的puppetmaster检测到客
户端的主机名,然后会到manifest里面对应的
node
配置,然后对这段内
容进行解析,facter送过来的信息可以作为变量进行处理的,node牵涉到的代码才解析,其它的代码不不解析,解析分几个过程:语法检查、然后会生成一个中间的伪代码,然后再把伪代码发给客户机。
客户端接收到伪代码之后就会执行,客户端再把执行结果发送给服务器。
服务器再把客户端的执行结果写入日志。
在安装前先配置好主机名,以及hosts文件,并做好时间同步
echo -e "172.16.5.200 puppet-master\n172.16.5.158 puppet-client" >> /etc/hosts
1.yum安装
rpm -ivh http://yum.puppetlabs.com/el/6/products/x86_64/puppetlabs-release-6-6.noarch.rpm
yum install -y puppet
2.gem安装
rpm -Uvh http://dl.fedoraproject.org/pub/epel/5/x86_64/epel-release-5-4.noarch.rpm
yum install -y rubygem
gem update --system
gem install puppet
3.源码安装
服务器端:
yum install -y ruby ruby-devel ruby-libs openssl-devel
安装facter
wget http://downloads.puppetlabs.com/facter/facter-1.7.0.tar.gz
tar xfz facter-1.7.0.tar.gz
cd facter-1.7.0
ruby install.rb
facter --version //查看facter版本
安装puppet
wget http://downloads.puppetlabs.com/puppet/puppet-3.2.2.tar.gz
tar xf puppet-3.2.2.tar.gz
cd puppet-3.2.2
ruby install.rb
拷贝配置文件
mkdir /etc/puppet/manifests
cp ext/redhat/puppet.conf /etc/puppet
cp ext/redhat/fileserver.conf /etc/puppet
修改配置文件,在/etc/puppet/puppet.conf的[main]中添加
pluginsync=false
配置启动文件
cp ext/redhat/server.init /etc/init.d/puppetmaster
chmod +x /etc/init.d/puppetmaster
创建用户和组
puppet resource group puppet ensure=present
puppet resource user puppet ensure=present gid=puppet shell='/sbin/nologin'
启动服务
service puppetmaster start
客户端:
拷贝配置文件
cp ext/redhat/puppet.conf /etc/puppet
修改配置文件,在/etc/puppet/puppet.conf的[main]中添加
pluginsync=false
配置启动文件
cp ext/redhat/client.init /etc/init.d/puppet
chmod +x /etc/init.d/puppet
创建用户和组
puppet resource group puppet ensure=present
puppet resource user puppet ensure=present gid=puppet shell='/sbin/nologin'
启动服务
service puppet start