![Puppet 在脚本中生成变量](https://linux22.com/image/801487/Puppet%20%E5%9C%A8%E8%84%9A%E6%9C%AC%E4%B8%AD%E7%94%9F%E6%88%90%E5%8F%98%E9%87%8F.png)
我正在将一组用于部署服务器的 bash 脚本迁移到 Puppet。几乎所有功能都已移至 Puppet,但我不知道如何迁移执行以下操作的 bash 脚本的一部分:
- 安装 PHP。
- 使用 PHP 脚本生成随机密码并将其作为变量存储在 bash 脚本中。
- 在 bash 脚本的其他位置使用该变量来设置 MySQL 根密码。
我怎样才能像这样动态地设置木偶变量?
顺便说一句,我使用的是独立版 Puppet,puppet apply
因为我没有单独的服务器来充当 Puppet 主控。另外,如果有人想知道为什么这样做,这是因为 MySQL 根密码不存在于除使用它的机器之外的任何地方,并且不会写入任何(可读)文件。
答案1
您只需使用清单中的函数“generate”来调用某种随机字符串生成器(pwgen?)并将该值分配给变量:
答案2
看起来,对于在独立版本中运行的 Puppet 来说,这是不可行的。
类中的所有变量都是在 Puppet 读取脚本时计算的,因此无法建立依赖链:
- 安装 PHP。
- 调用 PHP 脚本来生成一个值。
- 使用该值。
以该顺序。
理论上可以使用它[run stages][1]
来控制这种依赖性,但如果您的类被纳入项目,这些将不可用include
,因此不建议使用。
由于我使用引导脚本来安装 Puppet,因此我还不如直接通过引导脚本来安装 PHP,而不是让 Puppet 来管理它。