安装Puppet配置管理工具
一、准备工作
准备工作在server和client都一样
1.1 安装ruby
puppet是ruby开发的,所以需要安装。
yum -y install ruby rdoc
1.2 安装facter
facter的作用是收集主机的一些资料,比如CPU,主机IP等,facter把收集到值发送给puppet服务器端,服务器端就可以根据不同的条件来对不同的节点机器生成不同的puppet配置文件
wget http://puppetlabs.com/downloads/facter/facter-latest.tgz tar zxvf facter-latest.tgz cd facter-1.6.8 /usr/local/bin/ruby install.rb
二、安装Puppet
wget http://downloads.puppetlabs.com/puppet/puppet-2.7.14.tar.gz
cd puppet-2.7.14
ruby install.rb
同步时间
cp /usr/share/zoneinfo/Asia/Shanghai /etc/localtime /usr/sbin/ntpdate time.nist.gov
2.1 Server 端配置
1.编辑/etc/hosts 文件,加入:
192.168.1.200 server.test.com server 192.168.1.201 client.test.com client
同时把主机名改为server
2.拷贝server的配置文件
cp -f conf/auth.conf /etc/puppet/ cp -f conf/namespaceauth.conf /etc/puppet/ cp -f conf/redhat/puppet.conf /etc/puppet/ cp -f conf/redhat/server.init /etc/init.d/puppetmaster
3.加入开机启动
chmod +x /etc/init.d/puppetmaster chkconfig --add puppetmaster chkconfig puppetmaster on
4.创建puppet 用户
puppetmasterd --mkusers
5.启动
/etc/init.d/puppetmaster start
2.2 Client 端设置
client端配置和server端大体一样
1.编辑/etc/hosts文件
192.168.1.200 server.test.com server 192.168.1.201 client.test.com client
同时将主机名改为client
2.拷贝client端的配置文件加入开机启动
cp -f conf/auth.conf /etc/puppet/ cp -f conf/namespaceauth.conf /etc/puppet/ cp -f conf/redhat/client.init /etc/init.d/puppet chmod +x /etc/init.d/puppet puppet --genconfig > /etc/puppet/puppet.conf chkconfig --add puppet chkconfig puppet on
3.创建puppet 用户
puppetd --mkusers
注:如果出错,手动添加即可
groupadd puppet useradd -gpuppet puppet
4.启动puppet客户端
/etc/init.d/puppet start
三、测试
1. 客户端执行puppetd --test --server server.test.com发送认证请求
2. 服务器端执行puppetca -s -a发送接受请求。
3. 客户端再次发送请求puppetd --test --server server.test.com
出现上面信息表示server端已接受请求,连接成功。此时c/s通迅正常。如果报下面错误
则需要修改服务器的主机名和本机的hosts解析。
具体测试:
1. 现在在服务器的/etc/puppet/manifests/建立site.pp里面放置如下内容
node default {
file{"/tmp/a.txt":
content => "helo,I am abc.bbb!abc.aaa \n bbbbbb \n cccc \n dddd \n",
ensure => present,
mode => 644,
owner => root,
group => root,
}
}
2. 在客户端上执行puppetd --test --server server.puppet.com可以发现/tmp/会生成a.txt文件,内容是content里面的内容。
[root@localhost ~]# cat /tmp/a.txt
helo,I am abc.bbb!abc.aaa
bbbbbb
cccc
dddd
到这里就已经完全ok了。