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

[经验分享] PUPPET集中配置(一)

[复制链接]

尚未签到

发表于 2018-8-1 13:40:26 | 显示全部楼层 |阅读模式
  PUPPET集中配置管理系统较之于其他管理工具具有稳定性,能够管理服务器的整个管理周期,并使其配置有条不紊,会让你的系统同配置要求保持一致。本次通过 C/S 架构的配置使用Puppet 自带的语言来配置 Server 上的文件系统,Cron任务等,然后在各个服务器实现配置。通过对 Manifests 内 Nodes 与 Site.pp 等配置的编辑和修改,只需在 Server 端进行简单的编辑就可以实现集中配置管理。在 Nginx配置时, Nginx 会在启动时直接调用Puppet,而默认每半个小时的 Client 从 Server 的更新让配置更加紧密同步,成功配置完成之后 Client 会向 Server 端反馈一个消息,若配置失败,也会反馈一个消息。
  原理图:
DSC0000.png

  系统环境:rhel 6.5 (selinux&iptables disabled)
  Puppet master : 192.168.122.101 server1.example.com
  Puppet client :192.168.122.102 server2.example.com
  192.168.122.103 server3.example.com
  *******DATE一定要同步,否则验证会失败*******
  一,安装puppet
  YUM 源及其所需安装包
  [puppet]
  name=puppet
  baseurl=http://yum.puppetlabs.com/el/6Server/products/x86_64/
  gpgcheck=0
  [ruby]
  name=ruby
  baseurl=http://yum.puppetlabs.com/el/6Server/dependencies/x86_64/
  gpgcheck=0
  #Yum install
  rubygems-1.3.7-5.el6.noarch.rpm
  facter-2.4.4-1.el6.x86_64.rpm
  hiera-1.3.4-1.el6.noarch.rpm
  rubygem-json-1.5.5-3.el6.x86_64.rpm
  ruby-shadow-2.2.0-2.el6.x86_64.rpm
  ruby-augeas-0.4.1-3.el6.x86_64.rpm
  puppet-3.8.1-1.el6.noarch.rpm
  puppet-server-3.8.1-1.el6.noarch.rpm(只有SERVER1服务端才安装SERVER,Client不安装此包)
DSC0001.png

  #Date 命令检查各个服务器的时间是否一致
DSC0002.png

  二.客户端请求认证
  puppet cert list
  puppet cert list-all
  puppet cert sign server2.example.com(许可server2 向 server1建立连接)
DSC0003.png

  ERROR 说明server2并没有向server1请求认证,当然,因为我们还没有发送过请求信息。
  处理步骤:
  1..)  在 agent端执行  puppet agent server server1.example.com--no-daemonize -vt 来给master发送认证请求。
  client 向 master 发出证书验证请求,然后等待 master 签名并返回证书。
  参数 --server 指定了需要连接的 puppet master 的名字或是地址,默认连接名为                                 “puppet”的主机,如要修改默认连接主机可以修改/etc/sysconfig/puppet 文件中的                               PUPPET_SERVER=puppet 选项
  参数 --no-daemonize 是 puppet 客户端运行在前台
  参数 -vt指test与 verbose(使客户端输出详细的日志)
  2.) 然后在master执行    puppet cert sign server2.example.com 来签名认证agent上的请求。
  3.)  最后agent 端再次执行 puppet agent server server1.example.com就能获取认证。
DSC0004.png

  agent端得到上述图的结果就证明认证成功。
  那么如何删除认证重新认证呢?如下图所示:
DSC0005.png

  系统给定了它的处理方法,我就不再赘述了。
  但是要记住,masteragent 都要删除认证信息并刷新的。
  重新认证步骤跟之前的步骤相同的。
  如要同时签名所有证书,执行以下命令:
  # puppet cert sign--all
  # puppet certclean desktop2.example.com
  #删除签名证书
  
  自动验证:
  在 server 端, 编辑 puppet.conf 文件:
  [main]
  autosign =true #允许所有客户端的认证
  在/etc/puppet目录下创建 autosign.conf 文件,内容如下:
  *.example.com      #表示允许所有 example.com 域的主机

  # service puppetmaster>  在 client 端只需执行:
  server puppetstart即可。
  三,对puppet内资源编辑定义
  Master:
  [root@server1puppet]# pwd
  /etc/puppet/
  [root@server1puppet]# vim /etc/puppet/manifests/site.pp
  file {
          "/mnt/ADORU":
          content => "ADORU.COM\n";
  #       source =>"puppet:///files/passwd"
  }
DSC0006.png

  [root@server1puppet]# vim /etc/puppet/fileserver.conf
  在最后一行加上
   [files]
   path /etc/puppet/files
   allow *
   DSC0007.png
  
  AGENT:
  [root@server3puppet]# puppet agent --server server1.example.com --no-daemonize -vt
  [root@server3puppet]# cat /mnt/ADORU
  ADORU.COM  可以看到server3的内容与我们的MASTER规定的内容相同。
   DSC0008.png
  于是我们在MASTERsite.pp所写的内容就被传至了AGENT/mnt/ADORU
  MASTER
  这次我们换作直接将/etc/puppet/files/passwd 文件同步到AGENT上面
  [root@server1puppet]# mkdir /etc/puppet/files/
  [root@server1puppet]# cp /etc/passwd /etc/puppet/files/
  [root@server1puppet]# md5sum files/passwd(用来与AGENT作比对,确定内容一致)
  ce995678da5101eee20bfb6f2425e9b9  files/passwd
  [root@server1puppet]# vim ./manifests/site.pp
  file {
          "/mnt/ADORU":
  #       content => "ADORU.COM\n";
          source =>"puppet:///files/passwd"
  }
   DSC0009.png
  AGENT上执行puppetagent --server server1.example.com --no-daemonize -vt
   DSC00010.png
  可以看到我们的内容确实得到更新,md5发生了改变
  而且/mnt/ADORU的内容发生变化,其md5值与上面的passwd文件md5值相等为ce995678da5101eee20bfb6f2425e9b9
  那么内容呢,我们在AGENTcat /mnt/ADORU
   DSC00011.png
  没错呢,内容也是一样的,除此之外,puppet默认半小时同步一次(手动也可以),即使你不小心把AGENT的内容改了,它也能依靠这种原理自动还原回去,这充分体现了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-544864-1-1.html 上篇帖子: Puppet module命令参数介绍(六) 下篇帖子: puppet自动化技术基础分析及实例部署详解
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

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

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

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

扫描微信二维码查看详情

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


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


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


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



合作伙伴: 青云cloud

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