【问题标题】:puppet client reporting to wrong host in Foremanpuppet 客户端向 Foreman 中的错误主机报告
【发布时间】:2022-01-08 19:16:49
【问题描述】:

这是我的第一篇文章!

我有 100 个由 puppet/foreman 管理的节点。一切顺利。 我做了一些我过去已经没有问题的事情: 更改服务器的主机名。

这次我更改了 2 个主机名:

最初我有“gate02”和“gate03”。

我将 gate02 移至“gate02old”(使用虚拟 IP,并关闭了服务器)

然后我将gate03移到gate02 ...

现在(新的)gate02 报告正在更新工头中名为 gate02old 的主机。

我确实清理了 puppetserver 中的证书。我在(新)gate02 中管理 ssl 目录并运行 puppet 代理。我没有在 /var/lib/puppet 中找到任何对“门”的引用。我在 puppet.conf 和主机名以及 sysconfig/network-script/ifcfg-xxxx 中更改了证书名称。

puppet agent 运行平稳,发送给 puppetserver。但它更新了错误的主机!

有人知道如何解决这个问题吗?

谢谢!

工头 2.0.3 傀儡6

【问题讨论】:

  • 为了完整性,'hostname' 和 'hostanme -f' 都返回了 gate02.right-domain.com
  • Puppet 节点通过 certname 向其服务器标识自己,而不是(直接)通过主机名。服务器对它们进行分类并通过 certname 报告它们。如果针对名称 xyz 记录给定节点的报告,那是因为该节点提供了一个将其标识为 xyz 的证书,并且服务器正在成功验证该证书。

标签: report puppet hostname foreman


【解决方案1】:

我不接受所描述的事件序列导致所描述的行为。如果以前的gate03(现在名为gate02)的报告正在以名称gate02old 记录在服务器上,那是因为该机器正在向服务器提供一个将其标识为gate02old 的证书(以及服务器正在接受该证书)。所呈现的事件序列并未解释这可能是如何发生的,但我的第一个猜测是它实际上是(新的)gate02old 正在运行并从服务器请求目录,而不是(新的)gate02

修复它

  1. 确保您要运行的机器实际上是正在运行的机器,并且它的主机名实际上是您想要的。

  2. 关闭(新)gate02 上的代理。如果它在守护程序模式下运行,则关闭守护程序并禁用它。如果它是由外部调度程序调度的,则在此处停止并禁用它。也可以考虑使用puppet agent --disable

  3. 停用服务器上的节点并清除其数据,包括证书:

    puppet node deactivate gate02
    puppet node deactivate gate02old
    puppet node deactivate gate03
    

    此时您可能需要稍等片刻,然后...

    puppet node clean gate02
    puppet node clean gate02old
    puppet node clean gate03
    
  4. 清除节点的证书。为了安全起见,我会在 both 节点上执行此操作。删除/opt/puppetlabs/puppet/ssl(在节点上,而不是服务器上!)应该可以解决这个问题,或者您可以完全删除 puppet-agent 包,删除所有遗留的文件,然后重新安装。

  5. 酌情更新新 gate02 上的 puppet 配置。

  6. gate02 上重新启用代理,并以--test 模式启动或运行它。

  7. 签署新的 CSR(除非您启用了自动签名),这应该是为 gate02 或在该节点的 puppet 配置中明确指定的任何证书名称。

【讨论】:

  • @SoFe,情况似乎很可能与您所介绍的和您认为的不同。我建议您返回并检查您的假设,尤其是关于哪些机器正在实际运行和发出目录请求、它们实际呈现的证书名称以及记录报告的位置。
  • 您好 John,首先,感谢您解决我的问题。我做了你给的步骤,但为了简短起见,它没有用。我虽然可以附加一个包含所有详细信息的文件,但我不知道如何。我会把它放在“答案”中。
  • @SoFe 不要发布不回答问题的答案。如果您有其他详细信息要呈现,请将它们编辑到问题中。另请注意,在问题得到解答后,我们通常不赞成对问题进行实质性修改,但我保证在这种情况下不会反对。
【解决方案2】:

感谢您的回答,虽然它不是正确的。 通过再次将旧的gateold02 的主机名更改为另一个现有的用于测试的主机名,我确实找到了正确的点,启动服务器并将其取回Foreman。一旦完成,删除(再次!)新 gate02 的证书就可以了,它的报告现在更新了 Foreman 中的正确条目。

我仍然相信有一些东西(数据库?)没有正确更新,所以工头确定名为“gate02”的主机在 GUI“gateold02”中。

如果你不相信我,我很抱歉。

不是说很失望。

干杯。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2021-05-20
    • 1970-01-01
    • 2015-04-23
    • 1970-01-01
    • 2011-03-18
    • 2021-06-07
    • 1970-01-01
    相关资源
    最近更新 更多