Puppet 管理 puppet_client.conf

Tim*_*ham 0 puppet

我的 Puppet 安装中有一个依赖循环,我需要帮助解决。

我有一个更新 /etc/puppet/puppet_client.conf 文件的 Puppet 服务器。这是通过 erb 模板部署的。该模板包括设置 'pluginsync=true' 选项。

我还在不同的模板中使用自定义事实。这两个(以及更多)都作为我的核心 Linux 模板的一部分应用。

在新添加的服务器上,我收到一个不存在的事实的失败,并且在对 puppet 配置进行更改之前停止执行。如果我手动添加 pluginsync 选项,一切都是犹太洁食。

我如何在 Puppet 中解决这个问题?有什么方法可以强制执行此操作、依赖项等吗?

Dom*_*eal 10

我认为您的三个选择是:

  1. 在运行之前配置 Puppet:通常您会编辑或安装 puppet.conf 文件作为操作系统安装的一部分(kickstart %post 等),启用 Puppet 运行所需的最低限度的选项。这可能是 pluginsync、服务器地址和环境。作为运行的一部分,Puppet 可以稍后完全管理该文件。
  2. 引导环境:使用特殊环境 ( docs ) 进行引导过程,该环境仅配置 Puppet 客户端(启用插件同步)。作为其中的一部分,在 puppet.conf 中设置环境以指向正常的生产环境。
  3. 处理缺失的事实:在 Puppet ERB 模板中,您可以使用 来检查变量是否存在has_variable?('foo'),因此您可以对其进行测试,否则使用默认值,例如<%= has_variable?('foo') ? foo : 'default value' %>