Puppet在脚本里面生成variables

我正在迁移一系列将服务器部署到Puppet的bash脚本。 几乎所有的function都被移植到了Puppet中,但是我看不到如何迁移bash脚本的一部分:

  1. 安装PHP。
  2. 使用PHP脚本,生成随机密码并将其作为variables存储在bash脚本中。
  3. 在bash脚本的其他地方使用该variables来设置MySQL根密码。

我怎样才能像这样dynamic设置puppetvariables?

顺便说一句,我正在使用傀儡独立版本使用puppet apply因为我没有一个单独的服务器充当傀儡主。 此外,如果有人想知道为什么这样做,这是MySQL的根密码是不存在的地方除了使用它的框,并没有写入任何(可读)的文件。

你可以在清单中使用函数“generate”来调用某种随机string生成器(pwgen?)并将该值赋给一个variables:

http://docs.puppetlabs.com/references/latest/function.html#generate

看起来这是不可行的与独立版本的Puppet运行。

所有类中的variables都是在Puppet读取脚本时计算出来的,因此无法使依赖关系链:

  • 安装PHP。
  • 调用一个PHP脚本来生成一个值。
  • 使用该值。

以该顺序。

从理论上讲,使用[run stages][1]来控制这个依赖关系是可能的,但是如果你的类被include在项目中,这些是不可用的,所以不build议使用。

由于我使用引导脚本来安装Puppet,所以我可能只是通过引导脚本安装PHP,而不是让Puppetpipe理它。