使用 puppet 管理 ntpd 证书

使用 puppet 管理 ntpd 证书

我的公司要求我使用 autokey 在 ntpd 中实现签名时间。autokey 工作的要求之一是在每台主机上生成密钥。所有客户端都属于同一组,因此它们都使用相同的密码。如果可能的话,我希望不必在每台主机上手动生成密钥。如果 puppet 检测到文件类型不存在,是否有办法执行命令?或者我可以使用其他替代方法来通过 puppet 管理密钥?

答案1

在 Puppet 中,要执行命令,请使用exec资源。要确保仅当特定文件不存在时才执行命令,请指定creates选项。

例如:

exec { "create_needed_directory":
    command => "/bin/mkdir -p /tmp/needed/directory",
    creates => "/tmp/needed/directory"
}

如果需要执行一些更复杂的检查,可以使用onlyif选项:

exec { "run_account_purger":
    command => "/usr/local/sbin/account_purger",
    onlyif => "grep -c old_account /etc/passwd",
}

两个例子都取自木偶食谱

说实话,我不知道这是否是生成 NTP 密钥的最佳方式。您也可以在一台机器上生成所有密钥,将它们放在 puppet repo 中,然后通过资源分发它们file。这可能更安全一些,因为这样您就不需要暴露密码了。

相关内容