如何为现有运行环境搭建新Puppet Master及解决客户端连接故障
2. 故障场景:EC2实例上的Puppet Master被终止,新Master已搭建但客户端无法连接(使用同一Route 53 VIP),如何引导客户端连接新Master并强制生成新证书?
这个问题的核心原因很明确:旧客户端的证书是由原来的Master CA签发的,新Master是全新的CA根证书,客户端根本不信任这个新CA,所以哪怕VIP没变,也没法建立安全连接。得在客户端和新Master两边配合操作:
客户端端操作(每台客户端都要执行)
- 先停掉Puppet Agent服务:
systemctl stop puppet - 彻底清理旧的证书、CA信任文件和缓存,这一步是关键:
rm -rf /etc/puppetlabs/puppet/ssl/* - 确认客户端配置里的Master地址是VIP(如果之前已经配过可以跳过,保险起见再设一遍):
puppet config set server your-vip-address --section agent - 发起新的证书请求并等待Master签署:
puppet agent -t --waitforcert 60--waitforcert 60表示客户端会等60秒,给你留时间去Master端签署证书。
新Master端操作
- 先看看有哪些待签署的客户端证书请求:
puppetserver ca list - 签署单个客户端证书(把
client-hostname换成实际的客户端主机名):
如果客户端数量多,直接批量签署所有请求:puppetserver ca sign --certname client-hostnamepuppetserver ca sign --all - 签署完成后,客户端会自动完成后续的连接和配置同步,你可以在客户端再跑一遍
puppet agent -t确认是否成功。
额外小贴士
- 如果客户端数量多,写个批量脚本执行清理和请求操作,省得手动一台台折腾。
- 确认新Master的8140端口在安全组/防火墙里是开放的,允许客户端访问。
- 检查下Route 53的VIP是不是已经正确指向新的Master实例,客户端那边用
nslookup your-vip-domain确认DNS解析生效了没。
内容的提问来源于stack exchange,提问作者aannjose
相关产品推荐
相关产品推荐

