Puppet 在脚本中生成变量

Puppet 在脚本中生成变量

我正在将一组用于部署服务器的 bash 脚本迁移到 Puppet。几乎所有功能都已移至 Puppet,但我不知道如何迁移执行以下操作的 bash 脚本的一部分:

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

我怎样才能像这样动态地设置木偶变量?

顺便说一句,我使用的是独立版 Puppet,puppet apply因为我没有单独的服务器来充当 Puppet 主控。另外,如果有人想知道为什么这样做,这是因为 MySQL 根密码不存在于除使用它的机器之外的任何地方,并且不会写入任何(可读)文件。

答案1

您只需使用清单中的函数“generate”来调用某种随机字符串生成器(pwgen?)并将该值分配给变量:

https://puppet.com/docs/puppet/3.8/function.html#generate

答案2

看起来,对于在独立版本中运行的 Puppet 来说,这是不可行的。

类中的所有变量都是在 Puppet 读取脚本时计算的,因此无法建立依赖链:

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

以该顺序。

理论上可以使用它[run stages][1]来控制这种依赖性,但如果您的类被纳入项目,这些将不可用include,因此不建议使用。

由于我使用引导脚本来安装 Puppet,因此我还不如直接通过引导脚本来安装 PHP,而不是让 Puppet 来管理它。

相关内容