Puppet Server主控节点需关闭SELinux、禁用防火墙、配置NTP同步、添加YUM源并安装启动;Agent节点配置server地址、发起SSL引导;Master手动或自动签发证书后,通过site.pp定义nginx安装与运行的配置清单实现自动化部署。

一、安装Puppet Server(主控节点)
在Linux系统中,Puppet Server作为配置管理的中心节点,负责接收Agent请求、编译配置清单并分发证书。需确保主机名已设为FQDN且时间同步准确,否则SSL证书签发将失败。
1、关闭SELinux并禁用防火墙:setenforce 0 && sed -i 's/SELINUX=enforcing/SELINUX=disabled/' /etc/selinux/config
2、配置NTP时间同步:systemctl stop firewalld && systemctl disable firewalld && chronyd -q 'server time.nist.gov iburst'
3、添加官方YUM仓库(以CentOS/RHEL 8为例):dnf install -y https://yum.puppet.com/puppet8-release-el-8.noarch.rpm
4、安装Puppet Server:dnf install -y puppetserver
5、启动服务并设置开机自启:systemctl daemon-reload && systemctl enable --now puppetserver
二、安装并配置Puppet Agent(受管节点)
Puppet Agent运行于被管理主机,通过SSL安全连接向Server拉取配置,其身份由唯一证书标识。首次连接需经Server手动签名或启用自动签名策略。
1、同样添加Puppet官方仓库:dnf install -y https://yum.puppet.com/puppet8-release-el-8.noarch.rpm
2、安装Agent软件包:dnf install -y puppet-agent
3、编辑Agent配置文件:echo '[main]\nserver = puppetmaster.example.com\nenvironment = production\ncertname = node01.example.com' > /etc/puppetlabs/puppet/puppet.conf
4、启动Agent服务:systemctl enable --now puppet
5、发起首次证书请求:/opt/puppetlabs/bin/puppet ssl bootstrap
三、证书签发与信任建立
Puppet依赖双向SSL认证,所有通信均基于X.509证书。Master必须显式签发Agent证书,方可建立可信连接;未签名证书将被拒绝响应。
1、在Master上列出待签名证书:/opt/puppetlabs/bin/puppet cert list
2、为指定节点签名:/opt/puppetlabs/bin/puppet cert sign node01.example.com
3、验证证书状态:/opt/puppetlabs/bin/puppet cert list --all | grep node01
4、强制Agent首次运行并应用默认配置:/opt/puppetlabs/bin/puppet agent -t
四、部署首个配置清单(Manifest)
配置清单定义系统资源的期望状态,采用Puppet DSL编写,存放于Master的环境代码目录中。默认production环境路径为/etc/puppetlabs/code/environments/production/manifests。
1、创建site.pp主清单文件:mkdir -p /etc/puppetlabs/code/environments/production/manifests && touch /etc/puppetlabs/code/environments/production/manifests/site.pp
2、写入基础节点定义:echo "node 'node01.example.com' { package { 'nginx': ensure => installed } service { 'nginx': ensure => running, enable => true } }" > /etc/puppetlabs/code/environments/production/manifests/site.pp
3、确认目录权限归属puppet用户:chown -R puppet:puppet /etc/puppetlabs/code/environments
4、在Agent端触发一次完整同步:/opt/puppetlabs/bin/puppet agent -t
五、启用自动证书签名(可选策略)
当节点数量庞大时,手动签发证书效率低下。可通过配置autosign策略实现可信域名范围内的证书自动批准,但须严格限定域名白名单以保障安全性。
1、创建autosign.conf文件:echo "*.example.com" > /etc/puppetlabs/puppet/autosign.conf
2、重启Puppet Server服务:systemctl restart puppetserver
3、在Agent端清除旧证书并重试引导:rm -rf /etc/puppetlabs/puppet/ssl && /opt/puppetlabs/bin/puppet ssl bootstrap
4、观察Master日志确认自动签名行为:tail -f /var/log/puppetlabs/puppetserver/puppetserver.log | grep autosign

















