Puppet原理

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

工作流程

服务器端的puppetmaster通过fast工具分析检测客户端的主机名,然后找到项目的主配置文件manifest里面对应的node配置,并对该部分内容进行解析,fast发送过来的信息可以作为变量处理.

注意事项

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

自动部署运维之Puppet_第1张图片

服务器名称(主机名) IP地址 需要的软件
NTPserver 192.168.10.11 NTPserver
puppetmaster 192.168.10.12 ntpdate
puppetclient1 192.168.10.16 ntpdate、puppet
puppetclient2 192.168.10.17 ntpdate、puppet
实施

修改NTP服务器主机名称

vim /etc/hostname
NTPserver
init 6 

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

systemctl stop firewalld.service
setenforce 0

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  //查看时间同步状态

自动部署运维之Puppet

修改puppetmaster服务器主机名指定hosts文件

vim /etc/hostname  # 修改主机名称
puppetmaster.localdomain 
vim /etc/hosts   #修改hosts文件

192.168.10.12   puppetmaster
192.168.10.17   puppetclient1
192.168.10.18   puppetclient2
init 6 # 重启

yum install ntpdate -y        #安装ntp客户端
ntpdate 192.168.10.11        #进行时间同步
yum install puppet-server -y #安装puppet服务端

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

puppetclient1,puppetclient2配置,步骤相同

vim /etc/hostname  # 修改主机名称
puppetmaster.localdomain 
vim /etc/hosts   #修改hosts文件

192.168.10.12   puppetmaster
192.168.10.17   puppetclient1
192.168.10.18   puppetclient2
init 6 # 重启
yum install ntpdate -y        #安装ntp客户端
ntpdate 192.168.10.11         #进行时间同步
yum -y install puppet         #安装puppet客户端
vim /etc/puppet/puppet.conf   #修改配置文件
[main]
    server = puppetmaster   #指明puppetmaster
......

自动部署运维之Puppet

自动部署运维之Puppet
自动部署运维之Puppet自动部署运维之Puppet_第2张图片

申请与注册

puppetclient端:

puppet agent --server=puppetmaster --no-daemonize --verbose #申请注册
自动部署运维之Puppet
自动部署运维之Puppet

puppetmaster端:
查看申请

puppet cert --list #查看申请
自动部署运维之Puppet

对未注册的进行注册:

puppet cert sign --all #对未注册的进行注册

通过目录查看已经注册的客户端:

ll /var/lib/puppet/ssl/ca/signed/ #通过目录查看已经注册的客户端
自动部署运维之Puppet