傀儡评估variables只有一次

我使用apg为新用户生成密码

简单:

$password = generate('/etc/puppet/utils/gen_password') 

这个命令唯一的问题是我只需要一次,但是每次运行木偶时都会被评估。

这个variables在一个Exec声明中使用。

有没有可能,仅在必要的时候评估可扩展性? 例如,如果它是第一次使用。

您可以使用多个选项来有条件地运行exec。 select一个适合您的需求:

  • 除非 – 如果这个参数被设置,那么这个exec将会运行,除非命令返回0。
  • 创build – 运行命令之前查找的文件。 只有在文件不存在的情况下,该命令才会运行。
  • onlyif – 如果设置了这个参数,那么这个exec只会在命令返回0时才运行。
  • refreshonly – 该命令只能作为更新依赖对象时的刷新机制运行。

如果您没有在Exec中使用密码,那么Kazimieras Aliulisbuild议的方法可能不适合您。

如果是我,我可能会修改/etc/puppet/utils/gen_password脚本,始终返回每个服务/主机相同的密码。 你将有木偶调用这个generte generate("/etc/puppet/utils/gen_password $::clientcert")

然后在脚本中查看是否为该系统生成了一个密码,如果它已经返回。 如果没有,则生成一个新的,存储并返回。

如果可能的话不要存储并返回未encryption的密码。 而是生成并返回盐渍密码哈希。

当然,如果您可以完全跳过使用密码,而是使用证书或密钥进行身份validation,那就更好了。