码迷,mamicode.com
首页 > 其他好文 > 详细

自动化运维之Puppet

时间:2018-08-05 20:21:55      阅读:163      评论:0      收藏:0      [点我收藏+]

标签:自动化运维   注意   关闭   serve   客户端   管理员   tin   时间   erb   

Puppet原理

Puppet的目录是让管理员只集中于要管理的目标,而忽略实现的细节。Puppet即可以运行在单机上,也可以以C/S结构使用。在大规模使用puppet的情况下,通常使用C/S结构,在这种结构中puppet客户端只运行puppeclient,puppet服务端只运行puppemaster。

工作流程

  • 客户端puppet调用fast探测出主机的一些变量,如主机名、内存大小、IP地址等。Puppet把这些信息使用SSL连接发送给服务器端;
  • 服务器端的puppetmaster通过fast工具分析检测客户端的主机名,然后找到项目的主配置文件manifest里面对应的node配置,并对该部分内容进行解析,fast发送过来的信息可以作为变量处理,node牵扯到的代码才被解析,没牵扯到的不解析,解析分为语法检查,如果语法没错,继续解析,解析结果生成一个结果‘伪代码’,然后把‘伪代码’发给客户端;
  • 客户端收到‘伪代码’并且执行,客户端把执行结果发给服务器;
  • 服务器端把客户端的执行结果写入日志.

注意事项

  • 为了保证安全,Client和Master之间是基于SSL和证书的,只有经Master证书认证的Client可以与Master通信
  • Puppet会让系统保持在人们所期望的某种状态并一直维持下去,如检测某个文件并保证其一直存在,保证SSH服务始终开启,如果文件被删除了或者ssh服务关闭了,puppet下次执行时(默认30分钟)会重新创建该文件或者启动SSH服务

案例环境

使用四台服务器模拟搭建Puppet环境
技术分享图片

NTPserver:192.168.1.25
puppetmaster:192.168.1.26
puppetclient1:192.168.1.27
puppetclient2:192.168.1.28

实施

所有服务器修改主机名,重启生效

vim /etc/hostname

NTPserver(puppetmaster,puppetclient1,puppetclient2)

init 6

所有服务器关闭防火墙和安全功能

systemctl stop firewalld.service
setenforce 0

puppet三台服务器修改/etc/hosts文件

vim /etc/hosts

192.168.1.26   puppetmaster
192.168.1.27   puppetclient1
192.168.1.28   puppetclient2

NTPserver配置

yum install ntp -y      //安装NTP

vim /etc/ntp.conf         //编辑配置文件

server 127.127.1.0
fudge 127.127.1.0 stratum 8

systemctl enable ntpd.service
systemctl start ntpd.service    //开启ntpd服务

ntpstat  //查看时间同步状态

技术分享图片

puppetmaster配置


yum install ntpdate -y        //安装ntp客户端
ntpdate 192.168.1.25        //进行时间同步

技术分享图片

yum install puppet-server -y      //安装puppet服务端

systemctl enable puppetmaster.service 
systemctl start puppetmaster.service        //启动puppet主程序

puppetclient1,puppetclient2配置,步骤相同

yum install ntpdate -y        //安装ntp客户端
ntpdate 192.168.1.25        //进行时间同步

技术分享图片
技术分享图片

yum -y install puppet         //安装puppet客户端
vim /etc/puppet/puppet.conf        //修改配置文件

[main]
    server = puppetmaster        //指明puppetmaster
......

技术分享图片

申请与注册

puppetclient端:
puppet agent --server=puppetmaster --no-daemonize --verbose     //申请注册

Info: Creating a new SSL key for puppetclient1
Info: Caching certificate for ca
Info: csr_attributes file loading from /etc/puppet/csr_attributes.yaml
Info: Creating a new SSL certificate request for puppetclient1
Info: Certificate Request fingerprint (SHA256): 24:94:14:43:80:93:D4:A1:71:5E:3F:2D:0B:5A:3E:69:44:02:03:0F:0D:FC:09:C8:9A:65:6E:F8:21:CC:50:50
Info: Caching certificate for ca
#出现以上信息,等待一会即可使用Ctrl+c组合键结束

技术分享图片

puppetmaster端:
查看申请
puppet cert --list      //查看申请
  "puppetclient1" (SHA256) 24:94:14:43:80:93:D4:A1:71:5E:3F:2D:0B:5A:3E:69:44:02:03:0F:0D:FC:09:C8:9A:65:6E:F8:21:CC:50:50
  "puppetclient2" (SHA256) 6B:22:44:3B:13:51:56:A7:80:59:46:74:B5:01:99:AC:27:5F:75:B1:46:0D:2F:7A:72:62:0D:C9:34:22:DE:47

技术分享图片

对未注册的进行注册
puppet cert sign --all      //对未注册的进行注册
Notice: Signed certificate request for puppetclient1
Notice: Removing file Puppet::SSL::CertificateRequest puppetclient1 at ‘/var/lib/puppet/ssl/ca/requests/puppetclient1.pem‘
Notice: Signed certificate request for puppetclient2
Notice: Removing file Puppet::SSL::CertificateRequest puppetclient2 at ‘/var/lib/puppet/ssl/ca/requests/puppetclient2.pem‘

技术分享图片

通过目录查看已经注册的客户端
ll /var/lib/puppet/ssl/ca/signed/      //通过目录查看已经注册的客户端
-rw-r--r--. 1 puppet puppet 1948 8月   5 19:20 puppetclient1.pem
-rw-r--r--. 1 puppet puppet 1948 8月   5 19:20 puppetclient2.pem
-rw-r--r--. 1 puppet puppet 1944 8月   5 19:01 puppetmaster.pem

技术分享图片
此时客户端已经完成证书的请求与签名。

自动化运维之Puppet

标签:自动化运维   注意   关闭   serve   客户端   管理员   tin   时间   erb   

原文地址:http://blog.51cto.com/13641879/2154991

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!