标签:.com 日志 dom ecb 主机名 一个 运行 维护 原理
介 绍作为一名系统管理员,维护服务器正常运行是最基本的职责,在管理几台到几十台服务器时,大部分管理员喜欢自己写小工具来维护,但随着服务器的数量曾多,任务量也逐渐增多,这时就需要简洁的、强大的框架来完成系统管理的任务,为了实现这一目的,我们引入了一些工具,这些工具是可编程的,系统管理员只需要为这个工具写上几行代码,它便会自动的完成所有的工作,这批工具就是运维自动化puppet,它可以针对多台服务器进行统一操作,如部署统一的软件、进行统一上线维护等,而且能快速完成上线部署,减少人力及人力误操作风险。
Puppet的目录是让管理员只集中于要管理的目标,而忽略实现的细节。Puppet即可以运行在单机上,也可以以C/S结构使用。在大规模使用puppet的情况下,通常使用C/S结构,在这种结构中puppet客户端只运行puppeclient,puppet服务端只运行puppemaster。
1、客户端puppet调用fast探测出主机的一些变量,如主机名、内存大小、IP地址等。Puppet把这些信息使用SSL连接发送给服务器端;
2、服务器端的puppetmaster通过fast工具分析检测客户端的主机名,然后找到项目的主配置文件manifest里面对应的node配置,并对该部分内容进行解析,fast发送过来的信息可以作为变量处理,node牵扯到的代码才被解析,没牵扯到的不解析,解析分为语法检查,如果语法没错,继续解析,解析结果生成一个结果‘伪代码’,然后把‘伪代码’发给客户端;
3、客户端收到‘伪代码’并且执行,客户端把执行结果发给服务器;
4、服务器端把客户端的执行结果写入日志.
1、为了保证安全,Client和Master之间是基于SSL和证书的,只有经Master证书认证的Client可以与Master通信
2、Puppet会让系统保持在人们所期望的某种状态并一直维持下去,如检测某个文件并保证其一直存在,保证SSH服务始终开启,如果文件被删除了或者ssh服务关闭了,puppet下次执行时(默认30分钟)会重新创建该文件或者启动SSH服务
主机名 | 操作系统 | IP地址 | 软件包 |
---|---|---|---|
NTP-Server | Centos 7.3 x86_64 | 192.168.96.27 | ntp-4.2.6p5-28.el7.centos.x86_64 |
puppetmaster | Centos 7.3 x86_64 | 192.168.96.28 | Puppet-master-3.6.2.noarch、ntpdate-4.2.6p5-28.el7.centos.x86_64 |
puppetclient1 | Centos 7.3 x86_64 | 192.168.96.29 | puppet-3.6.2-3.el7.noarch、ntpdate-4.2.6p5-28.el7.centos.x86_64 |
puppetclient2 | Centos 7.3 x86_64 | 192.168.96.30 | puppet-3.6.2-3.el7.noarch、ntpdate-4.2.6p5-28.el7.centos.x86_64 |
setenforce 0
systemctl stop firewalld
vim /etc/hostname
NTP-Server
vim /etc/hosts
192.168.96.28 puppetmaster
192.168.96.29 puppetclient1
192.168.96.30 puppetclient2
yum -y install ntp
vim /etc/ntp.conf
server 127.127.1.0 //24行后新增记录
fudge 127.127.1.0 stratum 8
systemctl enable ntpd
systemctl start ntpd
ntpstat
setenforce 0
systemctl stop firewalld
vim /etc/hostname
puppetmaster
vim /etc/hosts
192.168.96.28 puppetmaster
192.168.96.29 puppetclient1
192.168.96.30 puppetclient2
yum -y install ntpdate
ntpdate 192.168.96.27
yum -y install puppet-server
systemctl enable puppetmaster.service
systemctl start puppetmaster.service
setenforce 0
systemctl stop firewalld
vim /etc/hostname
puppetclient1
vim /etc/hostname
puppetclient2
vim /etc/hosts
192.168.96.28 puppetmaster
192.168.96.29 puppetclient1
192.168.96.30 puppetclient2
yum -y install ntpdate
ntpdate 192.168.96.27
yum -y install puppet
vim /etc/puppet/puppet.conf
[main]
server = puppetmaster
......
puppet agent --server=puppetmaster --no-daemonize --verbose
Info: Creating a new SSL key for puppetclient1.localdomain
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.localdomain
Info: Certificate Request fingerprint (SHA256): 74:CA:CB:8A:2B:B6:BB:04:39:BF:4A:D3:0A:C0:2D:E4:8D:84:31:B2:D4:F6:26:26:71:5C:66:17:DE:6C:FD:A0
Info: Caching certificate for ca
等待一会出现以上信息后,可以ctrl+c中断退出,需通过puppetmaster服务器查看到申请信息
[root@puppetmaster ~]# puppet cert --list
"puppetclient1.localdomain" (SHA256) 74:CA:CB:8A:2B:B6:BB:04:39:BF:4A:D3:0A:C0:2D:E4:8D:84:31:B2:D4:F6:26:26:71:5C:66:17:DE:6C:FD:A0
"puppetclient2.localdomain" (SHA256) 07:5E:40:56:7E:19:23:1A:D5:58:E3:D1:CD:B9:0C:5A:E3:7C:EB:60:5A:5E:A6:26:3D:FB:12:B3:99:05:F4:DD
[root@puppetmaster ~]# puppet cert sign --all
Notice: Signed certificate request for puppetclient1.localdomain
Notice: Removing file Puppet::SSL::CertificateRequest puppetclient1.localdomain at ‘/var/lib/puppet/ssl/ca/requests/puppetclient1.localdomain.pem‘
Notice: Signed certificate request for puppetclient2.localdomain
Notice: Removing file Puppet::SSL::CertificateRequest puppetclient2.localdomain at ‘/var/lib/puppet/ssl/ca/requests/puppetclient2.localdomain.pem‘
ll /var/lib/puppet/ssl/ca/signed/
-rw-r--r--. 1 puppet puppet 1980 8月 3 21:32 puppetclient1.localdomain.pem
-rw-r--r--. 1 puppet puppet 1980 8月 3 21:32 puppetclient2.localdomain.pem
-rw-r--r--. 1 puppet puppet 2065 8月 3 21:15 puppetmaster.localdomain.pem
至此已经完成了证书的请求与签名,以后便可以使用puppetserver进行统一部署等操作了。
标签:.com 日志 dom ecb 主机名 一个 运行 维护 原理
原文地址:http://blog.51cto.com/10316297/2154284