木偶pipe理puppet_client.conf

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

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

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

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

我如何在Puppet中解决这个问题? 有没有办法强制这个,依赖关系等?

我认为你的三个select是这样的:

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