设为首页 收藏本站
查看: 1476|回复: 0

[经验分享] 集中配置管理工具puppet安装使用方法详解

[复制链接]
累计签到:77 天
连续签到:1 天
发表于 2014-5-27 10:35:49 | 显示全部楼层 |阅读模式
                       
Puppet是开源的基于Ruby的一种Linux、Unix平台的集中配置管理工具,puppet是一个C/S结构, 当然,这里的C可以有很多,因此,也可以说是一个星型结构. puppet使用自有的puppet描述语言,可管理配置文件、用户、cron任务、软件包、系统服务等。puppet把这些管理实体称之为资源,puppet的设计目标是简化对这些资源的管理以及妥善处理资源间的依赖关系。
Puppet 在部署时要求所有机器有完整的域名,如果没有 DNS 服务器提供域名的话,可以在两台或多台机器上设置主机名(注意要先设置主机名再安装 Puppet,因启动Puppet 时会把主机名写入证书,客户端和服务端通信需要这个证书)。
一、 安装puppet
1)  修改服务器端主机名
#hostname server.f.com
#echo “10.0.211.5       server.f.com” >>/etc/hosts
#echo “102.168.202.80       client.f.com” >>/etc/hosts
#echo “HOSTNAME=server.f.com”>>/etc/sysconfig/netwo  rk-scripts/ifconfigeth0
2)  修改客户端主机名(这里笔者做测试所以就部署了一台agent客户机)
#hostname client.f.com
#echo “102.168.202.80       client.f.com” >>/etc/hosts
#echo “102.168.202.80       client.f.com” >>/etc/hosts
#echo “HOSTNAME=client.f.com”>>/etc/sysconfig/netwo   rk-scripts/ifconfigeth0
3)  vi /etc/resolv.conf
#search localdomain        #注释掉这行,不然造成后面无法认证
4)  Server端安装程序
a)#使用yum安装ruby运行环境
#yum install ruby ruby-libs ruby-rdoc
b)#安装epel库
rpm  –Uvh
ftp://ftp.sunet.se/pub/Linux/distributions/yellowdog/yum/6.2/extras/RPMS/epel-release-5-3.noarch.rpm
c)安装puppet相关程序
yum -y install puppet puppet-server facter
5)  客户端程序agent安装
a)     #使用yum安装ruby运行环境
#yum  install ruby ruby-libs ruby-rdoc
b)     #安装epel库
rpm  –Uvh
ftp://ftp.sunet.se/pub/Linux/distributions/yellowdog/yum/6.2/extras/RPMS/epel-release-5-3.noarch.rpm
c)     #安装puppet相关程序
yum -y install puppet  facter
二、 配置puppet
1.Server端配置
2. Agent端配置
Agent的配置主要是更改agent上的/etc/puppet/puppet.conf文件的第二部分的agent部分。
#vi /etc/puppet/puppet.conf
# 添加如下配置
server =server.f.com        
runinterval = 3600                       
listen = true
三、 启动puppet服务
在服务器和客户端进行同步时间
#/sbin/ntpdate time.nist.gov
服务端主程序的启动:
1)  第一次启动时可以使用puppet master --verbose --no-daemon命令进行启动,这样我们可以看到这个启动过程并能够准确定位故障。
在这里笔者使用service puppetmaster start命令启动puppet主服务。
客户端程序启动:
2)  service puppet start
四、 请求证书及证书授权
3)在客户端执行如下命令请求服务端颁发证书
puppetd --test –server server.f.com
报错如下(如果没有报错的同志这一部分就不要看啦,浪费时间)
/usr/lib/ruby/site_ruby/1.8/puppet/application/agent.rb:53:in `handle_serve': uninitialized constant Puppet::Network::Handler (NameError)
        from /usr/lib/ruby/site_ruby/1.8/puppet/application.rb:347:in `send'
        from /usr/lib/ruby/site_ruby/1.8/puppet/application.rb:347:in `parse_options'
        from /usr/lib/ruby/1.8/optparse.rb:1247:in `call'
        from /usr/lib/ruby/1.8/optparse.rb:1247:in `order!'
        from /usr/lib/ruby/1.8/optparse.rb:1205:in `catch'
        from /usr/lib/ruby/1.8/optparse.rb:1205:in `order!'
        from /usr/lib/ruby/1.8/optparse.rb:1279:in `permute!'
        from /usr/lib/ruby/1.8/optparse.rb:1300:in `parse!'
        from /usr/lib/ruby/site_ruby/1.8/puppet/application.rb:353:in `parse_options'
        from /usr/lib/ruby/site_ruby/1.8/puppet/application.rb:302:in `run'
        from /usr/lib/ruby/site_ruby/1.8/puppet/application.rb:420:in `hook'
        from /usr/lib/ruby/site_ruby/1.8/puppet/application.rb:302:in `run'
        from /usr/lib/ruby/site_ruby/1.8/puppet/application.rb:411:in `exit_on_fail'
        from /usr/lib/ruby/site_ruby/1.8/puppet/application.rb:302:in `run'
        from /usr/sbin/puppetd:4
博主怀疑是ruby版本的问题使用ruby –v 显示ruby目前的版本为1.8.5所以去ruby官网下载最新版本程序安装包并安装
#tar –zxvf ruby-1.9.3-p327.tar.gz
#cd ruby-1.9.3-p327
#./configure
#make && make install
问题解决再次执行puppetd --test –server server.f.com
4)服务器端查看是否有请求证书的客户端服务器
puppetca –list
client.f.com (D1:8F:72:CA:DE:4B:65:C1:3D:FB:14:90:EA:87:7F:48)
5)服务器端签名授权
puppetca –s client.f.com  //只签名指定的客户端
#puppetca –s –a       //对所有客户端全部签名
6)查看验证签名,注意前面的+号,说明已经签名
[iyunv@server ~]# puppetca -a --list
+ "client.f.com" (D1:8F:72:CA:DE:4B:65:C1:3D:FB:14:90:EA:87:7F:48)
+ "server.f.com" (B5:C6:D9:85:75:15:B9:9E:D6:60:13:D4:1D:C6:A7:65) (alt names: "DNS:puppet", "DNS:puppet.f.com", "DNS:server.f.com")
备注:也可以在puppetmaster端的puppet.conf加入这行:
autosign = true
服务端就自动签证书
7)验证证书是否正确
服务端:
md5sum /var/lib/puppet/ssl/ca/signed/client.f.com.pem
a87b73fddfce937dbfa7285b9819a8a7  /var/lib/puppet/ssl/ca/signed/client.f.com.pem
客户端:
md5sum /var/lib/puppet/ssl/certs/client.f.com.pem
a87b73fddfce937dbfa7285b9819a8a7  /var/lib/puppet/ssl/certs/client.f.com.pem
自此说明我们的puppetmaster和客户端的puppet已经建立通信啦。
8)出现修改主机名问题引起无法认证,需要重新申请证书,操作以下两个步骤:
服务端:
m -rf /var/lib/puppet/ssl/ca/signed/client1.fcom.pem
客户端:
rm -rf /var/lib/puppet/ssl/
五、 puppet统一配置管理功能测试
9)在服务端创建site模版文件
vim /etc/puppet/manifests/site.pp
node default {
file {"/tmp/fengzhanhai.txt":
content=>"good morning!\n";}
上面的代码对默认连入的puppet客户端执行一个操作,在/tmp目录生成一个txt文件,内容是good morning! 并自动回车换行
10)初次创建pp文件,需要重启puppetmaster
[iyunv@server ~]# service puppetmaster restart     
停止 puppetmaster:                                        [确定]
启动 puppetmaster:                                        [确定]
11)客户端请求新配置:
[iyunv@client1 puppet-2.7.14]# puppetd --test --server server.f.com
可以去/tmp目录下验证是否创建了 /tmp/fengzhanhai.txt文件.
六、 个人建议
博主建议使用cron或者手动运行puppet比较符合公司业务需求,因为puppet是一个配置管理工具,在当我们修改了配置时去启用该服务是比较合理的通用做法。
           


运维网声明 1、欢迎大家加入本站运维交流群:群②:261659950 群⑤:202807635 群⑦870801961 群⑧679858003
2、本站所有主题由该帖子作者发表,该帖子作者与运维网享有帖子相关版权
3、所有作品的著作权均归原作者享有,请您和我们一样尊重他人的著作权等合法权益。如果您对作品感到满意,请购买正版
4、禁止制作、复制、发布和传播具有反动、淫秽、色情、暴力、凶杀等内容的信息,一经发现立即删除。若您因此触犯法律,一切后果自负,我们对此不承担任何责任
5、所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其内容的准确性、可靠性、正当性、安全性、合法性等负责,亦不承担任何法律责任
6、所有作品仅供您个人学习、研究或欣赏,不得用于商业或者其他用途,否则,一切后果均由您自己承担,我们对此不承担任何法律责任
7、如涉及侵犯版权等问题,请您及时通知我们,我们将立即采取措施予以解决
8、联系人Email:admin@iyunv.com 网址:www.yunweiku.com

所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其承担任何法律责任,如涉及侵犯版权等问题,请您及时通知我们,我们将立即处理,联系人Email:kefu@iyunv.com,QQ:1061981298 本贴地址:https://www.yunweiku.com/thread-19754-1-1.html 上篇帖子: puppet的认识 下篇帖子: CentOS 6.4安装Puppet
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

扫码加入运维网微信交流群X

扫码加入运维网微信交流群

扫描二维码加入运维网微信交流群,最新一手资源尽在官方微信交流群!快快加入我们吧...

扫描微信二维码查看详情

客服E-mail:kefu@iyunv.com 客服QQ:1061981298


QQ群⑦:运维网交流群⑦ QQ群⑧:运维网交流群⑧ k8s群:运维网kubernetes交流群


提醒:禁止发布任何违反国家法律、法规的言论与图片等内容;本站内容均来自个人观点与网络等信息,非本站认同之观点.


本站大部分资源是网友从网上搜集分享而来,其版权均归原作者及其网站所有,我们尊重他人的合法权益,如有内容侵犯您的合法权益,请及时与我们联系进行核实删除!



合作伙伴: 青云cloud

快速回复 返回顶部 返回列表