如何制作一个可以修复时间的 Puppet 模块?

如何制作一个可以修复时间的 Puppet 模块?

我编写了一个 Puppet 模块,可以通过 NTP 校正时间,但这仅适用于具有较小 NTP 偏移的服务器。

有时,由于各种原因,有些服务器的时间偏差会超过 10 分钟。

我想制作一个 Puppet 模块,当 ntp 偏移量太高时,运行 exec“service ntpd stop; ntpdate ntp3.domain.local; service ntpd start”,以强制纠正时间。

如何查看 NTP 偏移量是否太高,以便告诉 Puppet 运行此命令?或者有更好的解决方案吗?

答案1

service ntpd stop; ntpdate ntp3.domain.local; service ntpd start

对于这个问题来说绝对是错误的解决方案。使用该-g选项ntpd

   -g     Normally, ntpd exits with a message to the  system  log  if  the
          offset  exceeds the panic threshold, which is 1000 s by default.
          This option allows the time to  be  set  to  any  value  without
          restriction; however, this can happen only once.  If the thresh‐
          old is exceeded after that, ntpd will exit with a message to the
          system log.  This option can be used with the -q and -x options.

将其与iburstslm 建议的选项结合起来,因为如果没有这个选项,将需要ntpd很长时间才能纠正如此巨大的差异。它通常尝试仅以非常小的步骤更改系统时间,以便时间相关的应用程序不会感到困惑,但该iburst选项将改变这一点。

您仍然必须确保 Puppetntpd在发生恐慌后自动重新启动,因为根据联机帮助页,它会修复一次时间,然后它仍然会死掉。

相关内容