Puppet 与 8140 端口
8140 是 Puppet 服务端的默认端口,工作方式以 agent 主动拉取为主:被管节点定期连上服务端的 8140,提交自身信息并取回本节点的目录清单,再按清单执行配置;证书签发等流程也经由该端口代理。基于证书互认的设计让身份验证成为排障重点,不少 agent 报错其实是证书没签发,而不是端口不通。
基本信息
| 服务 | Puppet Server |
|---|---|
| 端口/协议 | TCP 8140,HTTPS 并基于证书互认 |
| 工作机制 | agent 定时拉取目录清单并按清单执行 |
| 配套能力 | 证书签发与管理、报告上传 |
| 权限要求 | 需要节点证书与相应权限 |
| 安全等级 | 仅管理网段可达 |
典型使用场景
- 配置统一管理:批量下发系统配置与软件包状态
- 基线落地:把安全基线写成清单并持续收敛
- 证书管理:为新节点签发证书并撤销下线节点
- 报告采集:收集节点执行报告用于合规验证
- 排障:区分证书问题与网络连通问题
状态与证书检查
状态与证书检查
curl -k https://puppet.example.com:8140/status/v1/simple # 服务端状态接口
timeout 5 openssl s_client -connect puppet.example.com:8140 </dev/null 2>&1 | head -5
puppet cert list --all | head -20 # 查看证书签发情况
sudo ss -lntp | grep 8140 # 服务端监听核对
# 客户端排障:运行一次带详细输出的拉取,观察证书与清单阶段常见报错与方向
| 报错线索 | 含义 | 排查方向 |
|---|---|---|
| SSL 连接失败 | 证书未签发或域名不匹配 | 先查证书签发状态 |
| 证书已撤销 | 节点被移除或重签 | 重新签发并核对节点名 |
| 连接超时 | 网络或防火墙阻断 | 核对 8140 放行与路由 |
| 清单编译失败 | 模块或参数问题 | 查看服务端编译日志 |
运维要点
- 节点名与证书名保持一致,改名后及时重签
- 证书签发的审批与清理流程固化,避免长期堆积待签记录
- 服务端升级前在测试节点验证 agent 行为
- 把清单编译耗时与失败率纳入监控,提前发现模块问题
- 定期清理已下线节点的证书,控制信任范围
节点身份依赖证书中的名称,节点名与证书名不一致时会直接拒绝连接。改名或克隆虚拟机后要先清理旧证书再重新签发。
服务端私钥与签发权限一旦泄露,就能签发任意节点的证书并接管配置下发通道。应严格控制访问权限并定期审计签发记录。