如何防止 Puppet 干扰手动服务器更改

如何防止 Puppet 干扰手动服务器更改

我们的许多服务器配置都是通过 puppet 管理的。Puppet 每 15 分钟通过 cron 运行一次并应用配置更改。

如果服务器出现问题,我有时需要在服务器上手动更改配置(例如尝试不同的设置,启用更多日志记录)。问题是,每当 cron 作业运行时,puppet 都会覆盖我的手动更改。

您建议怎样解决这个问题?

也许在服务器上工作时停用 Puppet?可能会有风险,我忘记重新启用它,然后导致一台服务器不同步。

答案1

我通常会这样做

  • 手动停止该机器上的 Puppet
  • 有一个 nagios 或您选择的监控工具警报,当 puppet 超过 2 小时没有运行时会警告我
  • 如果你想格外小心,还可以制作一个 pupet 看门狗,它会检查 /var/run 文件是否到位,如果你正确停止 puppet,它会删除它,如果文件在那里,但没有进程,它就会死机,所以它会重新启动

使用 #1 和 #2,你将覆盖 99% 的案例场景,如果你愿意,当木偶行为不端时,也许 #3 会帮助你(有时它对我有用)

祝你好运!

答案2

我所做的只是将其作为日常工作的一部分,检查 Puppet 仪表板上最近没有发送新报告的主机,并在工作时禁用 Puppet。仪表板有一个专门针对这些主机的部分,这使得识别它们非常容易。

或者,您可以注释掉该节点的配置,或者添加一个schedule排除您将在该节点上工作的时间的配置。在这两种情况下,您仍然可以忘记它,尽管后一种情况问题得到了缓解。

答案3

lynxman 的回答很好。我会听从他的建议。

此外,我会看看什么你在要求傀儡做。

例如,如果你要求 Puppet 复制一个文件/etc/hosts,你可以编辑文件,添加/设置您需要的定义(通过puppet-augeas)?如果您需要对文件进行其他更改以便在主机上进行调试,只要您的更改与 puppet 所做的更改无关,puppet 就不会再覆盖您的工作。

相关内容