环境:
操作系统:RedHat 5.3 64bit
Puppet版本:2.7.9
Facter版本:1.6.8
1、Puppet及Facter下载地址
Puppet:https://downloads.puppetlabs.com/facter/
Facter: https://downloads.puppetlabs.com/puppet/
2、Puppet Server安装
首先在安装Puppet之前,需要安装ruby,我们这里就直接使用yum安装,具体下:
# yum install -y ruby ruby-libs ruby-shadow
①、Facter安装
# tar xzvf facter-1.6.8.tgz # cd facter-1.6.8 # ruby install.rb
②、Puppet安装
# tar xzvf puppet-2.7.9.tgz # cd puppet-2.7.9 # ruby install.rb
如上Puppet Server端的安装就已经完成了,那么接下来就是一些配置文档及启动脚本的设置了。
配置文件
安装完成之后,我们需要copy安装包里面的一些配置文件到Puppet配置目录/etc/puppet,具体如下:
# cp conf/redhat/fileserver.conf /etc/puppet/ # cp conf/redhat/puppet.conf /etc/puppet/puppet.conf.default
fileserver.conf → Puppet文件系统配置
puppet.conf → Puppet的默认配置文档,可以参考下。不过这个也可以不复制,后面会命令生成
注意:根据操心系统不同复制的配置文件的目录也会不一样,如上我们操作系统为redhat,目录为conf/redhat,如果操作系统是suse,那么目录就为conf/suse。
启动脚本
# cp conf/redhat/server.init /etc/init.d/puppetmaster # chmod +x /etc/init.d/puppetmaster
注意:默认情况下puppet的配置文档/etc/puppet/puppet.conf设置pid的存储路径为/var/lib/puppet/run,而启动脚本的路径为/var/run/puppet,这里两者需要统一。
创建Puppet用户及相应目录
# puppet master --mkusers # ll /var/lib/puppet/ total 48 drwxr-x--- 2 puppet puppet 4096 Nov 1 17:34 bucket drwxr-x--- 2 puppet puppet 4096 Nov 7 14:11 clientbucket drwxr-x--- 2 puppet puppet 4096 Nov 7 14:11 client_data drwxr-x--- 2 puppet puppet 4096 Nov 7 14:11 client_yaml drwxr-xr-x 2 puppet puppet 4096 Nov 1 17:34 lib drwxr-x--- 2 puppet puppet 4096 Nov 8 14:06 log drwxr-x--- 3 puppet puppet 4096 Nov 4 17:28 reports drwxr-x--- 2 puppet puppet 4096 Nov 1 17:34 rrd drwxrwxrwt 2 puppet puppet 4096 Nov 12 11:42 run drwxr-x--- 2 puppet puppet 4096 Nov 1 17:34 server_data drwxr-xr-t 3 puppet puppet 4096 Nov 7 14:11 state drwxr-x--- 4 puppet puppet 4096 Nov 4 16:37 yaml
创建的目录主要是/var/lib/puppet
生成Puppet Server配置文档
# puppetmasterd --genconfig > /etc/puppet/puppet.conf
以上就将Puppet Server端给安装完成了,后续剩下的就是SSL认证了。
3、Puppet Agent安装
Agent端Facter及Puppet的安装和Server端是一样的,区别就在于两者之后的启动脚本和配置文档不一样,相关的配置信息如下:
启动文件
# cp -p conf/redhat/client.init /etc/init.d/puppet # chmod +x /etc/init.d/puppet
生成Puppet Agent配置文档
# puppet agent --genconfig > /etc/puppet/puppet.conf
4、SSL认证
①、DNS设置或者host设置
Puppet SSL认证是通过域名来标记的,所有这里需要设置域名。因为这里是测试使用,本次的话就直接通过/etc/hosts来设置域名的IP指向了,如果在生产环境使用的话,建议还是使用DNS来设置。如下为Puppet Server及Agent的hosts设置:
Puppet Server
# cat /etc/hosts ··· 10.197.95.245 szmlvm29-76 szmlvm29-76.easou.com 10.197.95.234 szmlvm29-77 szmlvm29-77.easou.com puppet
Puppet Agent
# cat /etc/hosts ··· 120.197.95.234 szmlvm29-77.easou.com szmlvm29-77 120.197.95.245 szmlvm29-76.easou.com szmlvm29-76
②、Puppet Agent证书申请
# puppetd --server szmlvm29-76.easou.com --test 或者 # puppetd --server szmlvm29-76.easou.com --no-daemonize –verbose
第一个是申请证书时,不管是否成功,只执行一次。
第二个是申请证书时,一直在前端实现详细信息,默认情况下是以daemon的形式执行的。
③、Puppet Server证书签发
# puppetca --sign szmlvm29-77.easou.com 或者 puppet cert --sign szmlvm29-77.easou.com 签发节点为szmlvm29-77.easou.com的证书 # puppetca --sign --all 或者 puppet cert --sign --all 签发所有节点的证书
其他Puppet Server和证书相关的命令有如下一些:
# puppet cert --list或者puppetca --list 查看申请证书请求 # puppet cert -revoke puppet或者puppetca -revoke puppet 设置节点证书过期 # puppet cert --clean puppet或者puppetca --clean puppet 删除节点证书
5、Puppet Server与Agent联通测试
①、配置site.pp
site.pp这个文件是在/etc/puppet/manifests目录下,Puppet Server所有对Agent的操作都是从这个配置文件入口的。这里为了测试就简单的对这个文件进行配置,对Agent创建一个用户,具体信息如下:
$ cat site.pp node default { user { "test1" : ensure=>present,comment=>"测试",name=>test,shell=>"/bin/bash",home=>"/home/text",managehome=>true,password=>sha1('12345');} }
如上,对所有Agent创建一个用户名为test用户,使用shell为/bin/bash,加目录为/home/test,密码为12345。
②、Agent执行
# /usr/sbin/puppetd --server szmlvm29-76.easou.com --test info: Caching catalog for szmlvm29-77.easou.com info: Applying configuration version '1384248986' notice: /Stage[main]//Node[default]/User[test1]/ensure: created notice: Finished catalog run in 0.16 seconds
# cat /etc/passwd ··· test:x:505:506:测试:/home/text:/bin/bash # ll /home/ ··· drwx------ 3 test test 4096 Nov 18 14:41 text # cat /etc/shadow test:8cb2237d0679ca88db6464eac60da96345513964:16027:0:99999:7:::
如上Puppet Agent执行结果为执行成功。
免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。