使用puppet来pipe理ntpd证书

我的公司要求我用autokey在ntpd中实现签名时间。 自动密钥工作的一个要求是在每个主机上生成密钥。 所有的客户端都是同一个组的一部分,所以他们都使用相同的密码。 如果可能的话,我不想在每个主机上手动生成密钥。 如果puppet检测到它不存在,是否有文件types执行命令的方法? 还是有一些其他的select,我可以用来通过木偶pipe理密钥?

在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", } 

这两个例子都取自PuppetCookBook 。

说实话,我不知道这是为NTP生成密钥的最好方法。 你也可以在一台机器上生成所有的密钥,把它们放在puppet repo中,并通过file资源分发。 这可能会更安全一些,因为这样你就不需要公开密码。