Puppet:
Puppet的在centos6.6下的初步安装配置:
因为puppet分为服务器端和客户端,所以安装的时候,稍微有一点点出入:
一、基础安装:
Master:
建议在开始安装之前先配置主机的hostname,因为会影响到后面的puppet证书注册。
更改hostname的同时写入host配置文件:
Master的hostname为:hostnamepuppet.domain.com
另外两台客户端的hostname分别为:
hostnameagent.domain.com和hostname agentone.domain.com
在puppetmaster端写入host文件:
vi /etc/hosts
192.168.74.136 puppet.domain.com
192.168.74.135 agent.domain.com
192.168.74.137 agentone.domain.com
1.进行安装之前先更新系统的yum库并进行相关puppet组件的安装:
yum –y update 进行yum库更新
yuminstall -y ruby ruby-libs ruby-shadow rubygem-json
安装完成可以查看ruby的版本为:
ruby –v
ruby 1.8.7 (2013-06-27 patchlevel 374) [x86_64-linux]
2.进入/root/download目录下面进行puppet的rpm包的下载并进行安装:
如果提示wget没有找到,请用yum进行安装:
yum –y install wget 如果已经安装过了,可以跳过这一步
wgethttp://yum.puppetlabs.com/el/6/products/x86_64/puppetlabs-release-6-6.noarch.rpm
rpm -ivh puppetlabs-release-6-6.noarch.rpm 进行安装,如下图所示:
3.等待安装完成以后,继续更新yum库:
yum –y update 此步更新是为了更新之前安装的相关组件
等待更新完成之后,即可安装puppet的服务器端:
yuminstall -y puppet-server
4. 安装完成以后可以查看当前安装的puppet的版本:
puppet -V
3.8.7
facter -v
2.4.6
5.查看puppet的安装树状目录:
6.防火墙设置:
vi /etc/sysconfig/iptables
iptables –AINPUT –p tcp –dport 8140 –j ACCEPT
或iptables –A INPUT –p tcp –s 192.168.0.0/24 –dport 8140 –j ACCEPT
或者直接关闭防火墙:service iptables stop
7.启动puppetmaster服务
/etc/init.d/puppetmasterstart 或者service puppetmaster start
8.加入系统开机启动项
chkconfig puppetmaster on
Salve:(agent)
1.修改hostname并写入vi /etc/hosts
192.168.74.136 puppet.domain.com
192.168.74.135 agent.domain.com
2.更新yum库、下载puppet官方安装包、安装官方安装包、更新yum库
yum –y update
wget http://yum.puppetlabs.com/el/6/products/x86_64/puppetlabs-release-6-6.noarch.rpm
rpm -ivh puppetlabs-release-6-6.noarch.rpm
yum –y update
与master的第3步对比,在更新完yum以后,安装的服务该是客户端服务安装:
yum install -y puppet
3. 用跟master一样的方式来更改防火墙设置
4. 查看puppet客户端的安装树状目录:
5.启动puppet服务:
/etc/init.d/puppetstart 或者service puppet start
6.加入系统启动项:
chkconfigpuppet on二、进行测试:
1. 在Master一端的下面这个路径下创建一个site.pp的文件,这个文件如果没有,就手动创建。
vi/etc/puppet/manifests/site.pp
并写入:
node default {
file {
"/tmp/fristone.txt":content => "hello,world";
}
}
意为:
用此段代码,来给客户端下的/tmp目录下面创建一个名为fristone.txt的文本文件,且内容为“hello,world”。
而如果在agent的客户端上执行puppet,则运行成功后,会在/tmp的目录下生成相应的文件。但有很大的可能会提示你未注册,所以执行失败。
四、进行证书注册:
a.需要在puppetmaster端的/etc/puppet目录下新建文件autosign.conf表示自动注册的配置文件。也可以理解为puppetmaster的acl控制列表方式。这种注册的方式效率会相对较高,然后填入:*.domain.com 最后保存退出。
“*”表示匹配所有,后面的域名需要匹配hostname的域名。
因为这两台实验的机器之前的hostname是puppet.domain.com和agent.domain.com,所以最终里面填入的匹配域名为“domain.com”。
意为只要是后缀域名为domain.com的客户端主机都可以向puppetmaster申请注册证书。
b.在客户端agent端的服务启动的前提下,直接执行:
puppet agent--test --server=puppet.domain.com
如果有下面这样的报错,则表示PuppetMaster端和PuppetClient的证书不匹配。
解决办法:
同时清除Master端和客户端slave端的ssl证书,重新进行注册:
在master端执行:puppet cert –clean –all
重启服务:servicepuppetmaster restart
在slave端执行:rm -rf /var/lib/puppet
重启服务:servicepuppet restart
同时可以看到,客户端应用的服务端的site.pp里面的配置。在客户端的/tmp的文件下面新建了fristone.txt的文本,并添加了内容“helloworld”
2.手动注册
puppet cert --clean agent.domain.com
再去掉之前创建的自动注册文件autosign.conf并重启服务
mv autosign.confautosign.conf.back
service puppetmaster restart
rm -rf /var/lib/puppet
service puppetrestart
c.查看master端目前的注册条目,可以看到有两条,一条是自己启动服务后有的,一条是另外一个客户端的。
d.在客户端agent下执行命令申请证书:
puppet agent --test--server=puppet.domain.com
e.在回到master上查看申请证书的列表,如下:
注意看红框标注的这一条是多出来,且前面的部分这里,是没有“+”号的,没有加号表示没有得到服务器master的认证签名。
所以接下来需要给此条客户端请求授权签名。
f.执行授权签名的命令:
puppet cert --sign agent.domain.com
puppet cert --sign –all 这条命令表示批量的对所有证书请求签名
这样就签名完成了,再一次查看所有已签名证书:
puppet cert list --all
现在可以看到都有加号了。
g.再回到客户端agent的一端进行检测:
puppet agent --test--server=puppet.domain.com
可以看到已经应用了来自服务器master端的site.pp的内容
[root@SLC-two lib]# cat/tmp/fristone.txt
hello,world
到这里算是初步安装完成,关于具体使用,空了再写。