如何将 Windows 服务器配置为 Puppet 代理服务器?
我在 CentOS 7 上运行 Puppet Enterprise 4.x,在 Windows Server 2012 上运行 Puppet Agent 3.7.4。我第一次尝试设置它。我知道从 Puppet Master 服务器到 Puppet Agent 服务器没有被阻止的端口。
当我运行puppet agent -t x.x.x.x
命令时(从以管理员身份打开的 Windows PowerShell 窗口),我收到此错误:
警告:无法获取我的节点定义... xxxx 与服务器证书不匹配...无法使用“eval_generate”生成其他资源...与服务器证书不匹配:预期其中之一...
puppet.conf 文件看起来不错。在 Puppet Master 服务器上,我运行“puppet cert list --all”显示 Puppet 代理服务器已签名。
我可以从 Puppet Master ping Puppet Agent 服务器。我可以从 Puppet Agent ping Puppet Master 服务器。Puppet 的 GUI 显示一条消息“运行 Puppet 已被禁用,因为节点管理器无法连接到 .”。
为什么我在运行 Puppet 代理命令时会出现上述错误?
puppet 依赖于 SSL 证书。如果您通过其 IP 查询您的 puppetmaster,证书验证将失败。
在你的 puppetmaster 上,运行
hostname -f
.在您的 Windows 服务器上,确保您可以解析该名称。最后,定义一些 DNS 记录。
从那里,您应该能够针对您的 puppetmaster 的完全限定域名运行 puppet 代理。从来没有它的IP。
在没有管理上下文的情况下运行的用户将重新请求证书。始终确保您打开的是管理命令行(提升的命令行),从管理员帐户打开命令行是不够的。
请参阅https://docs.puppet.com/puppet/4.5/reference/services_agent_windows.html#running-puppet-agent-on-demand和https://docs.puppet.com/pe/latest/troubleshooting_windows.html#error -messages了解更多详情。
您可能无意中创建了没有管理员权限的原始证书,现在尝试在管理凭据下运行时遇到问题。证书只会为 FQDN 生成一次,但通常 Puppet 代理服务会在安装后立即生成,前提是它可以连接到正确的 Puppet 主服务器。