SH1/SH2证书迁移后部分VM出现Puppet 400错误求助
Puppet 400错误排查:JSONObject["environments"] not found.
针对你在SH1、SH2证书迁移后部分VM出现的Puppet catalog获取失败问题,给出以下排查步骤:
检查节点Puppet环境配置
登录异常节点dry3ce2eleb-f1.baplc.com,执行以下操作:- 查看
/etc/puppet/puppet.conf中的environment参数,确认是否正确指向common环境 - 运行
puppet config print environment,验证当前生效的环境值是否符合预期
- 查看
验证证书迁移后的节点证书状态
在Puppet master上执行puppet cert list --all | grep dry3ce2eleb-f1,确认证书状态为valid。若证书状态异常:- 在异常节点执行
puppet agent --clean --server <你的Puppet master主机名> - 重新请求证书:
puppet agent -t
- 在异常节点执行
定位params.pp第7行的代码逻辑
打开/etc/puppet/environments/common/sip/manifests/params.pp第7行,确认代码是否在从JSON数据源(如Hiera、自定义facts)读取environments字段:- 运行
facter -p查看节点所有facts,检查是否存在environments相关数据 - 检查Hiera配置文件
/etc/puppet/hiera.yaml及对应环境的Hiera数据文件,确认该节点的配置条目中是否包含environments字段
- 运行
排查节点网络与权限
- 测试节点到Puppet master的8140端口连通性:
telnet <master-hostname> 8140或curl -k https://<master-hostname>:8140/puppet/v3/catalog/dry3ce2eleb-f1.baplc.com?environment=common - 确认Puppet agent运行用户(默认root)拥有读取本地Puppet配置、facts文件的权限
- 测试节点到Puppet master的8140端口连通性:
对比正常节点与异常节点的差异
选取同一环境下的正常节点,对比以下内容:puppet.conf的配置差异facter -p输出的facts差异- 系统层面差异(OS版本、DNS配置、时区等)
内容的提问来源于stack exchange,提问作者Mr FAZIL
相关产品推荐
相关产品推荐

