Puppet 管理 puppet_client.conf

Puppet 管理 puppet_client.conf

我的 Puppet 安装中存在依赖循环,我需要帮助解决。

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

我还在另一个模板中使用了自定义事实。这两个(以及另外十几个)都作为我的核心 Linux 模板的一部分应用。

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

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

答案1

我认为您的三个选择如下:

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

相关内容