Puppet---配置管理工具,使用C/S架构,客户端的factor搜集客户端各种资源信息,上报服务器端master,检查服务器端配置,有改变则编译并在客户端运行。
客户端可以根据设定的runinterval的值与服务器进行一次通信,查看是否有配置变更,也可以在服务器上主动触发一次配置信息更新,强制各客户端做相应更改。客户端配置信息若被改变,则可以检查服务器返回的信息进行修正。
我们基于Centos7.4系统。
前提:
1、NTP配置成功且同步成功(Centos7.4自带chrony作为时间同步服务);
2、配置dns服务,能够对主机名解析(动态或静态解析都可以);
安装过程:
1、服务器端:
(1)服务器端安装:
服务器端软件包为puppet-server,在Centos7官方源以及epel源中都没有,需要先安装puppet-server源,以及gpg秘钥:
yum install -y http://yum.puppetlabs.com/puppetlabs-release-el-7.noarch.rpm
然后安装软件包puppet-server:
yum install -y puppet-server
(2)服务器端配置:
在【main】字段下配置:
server=puppet-server.baidu.com #配置服务器fqdn(server 也可以写作dns_alt-names)
runinterval=10 #单位s,不配置默认是30min,1800s
启动服务:
systemctl start puppetmaster
systemctl enable puppetmaster
systemctl status puppetmaster
建立puppet server(看到版本号就行,不用管无法建立PID的错误):
puppet master --verbose --no-daemonize
2、客户端
(1)客户端安装puppet包:
yum install puppet -y
(2)客户端配置:
server=puppet-server.baidu.com #服务器端的fqdn
runinterval=10 #与服务器端配置间隔相同
启动服务:
systemctl start puppet
systemctl enable puppet
systemctl status puppet
测试与主机连通性并申请ca认证:
puppet agent --test --server=puppet-server.baidu.com --no-daemonize --verbose (--no-daemonize响应内容意思是不放在后台)
可以看到很明确的证书请求过程:
Info: Caching certificate for ca
Info: csr_attributes file loading from
/etc/puppet/csr_attributes.yaml
Info: Creating a new SSL certificate request for puppet-node1.baidu.com
Info: Certificate Request fingerprint (SHA256):
FB:85:C3:0A:78:43:C8:D0:EC:F1:38:29:80:B6:AB:AF:75:76:40:B
4:92:C6:12:35:C3:0C:23:C2:09:02:F9:FC
Info: Caching certificate for ca
Exiting; no certificate found and waitforcert is disabled
3、签发证书
在服务端查看客户端的证书请求:
puppet cert --list
签署客户端证书:
puppet cert sign clientfqdnname #一个个签署
(puppet cert sign -all) #全部签署
安装篇完成。
简单做个测试,查看客户端/home目录下是否有test文件,内容是否是‘test’:
cat > /etc/puppet/manifests/site.pp <<EOF
file {'/home/test':
ensure => file,
content => 'test',
}
EOF