我正在使用 Foreman (1.4) 和 Puppet (3.4.3)。我大约 4 周前才开始使用 Foreman 和 Puppet,所以我还很新。
我想要做的是设置 exec 资源的默认路径。根据许多指南如果您使用没有 Foreman 的 Puppet,这不是问题,因为您可以将其放入您的site.pp
.
我的site.pp
解读如下:
# Empty site.pp required (puppet #15106, foreman #1708)
我尝试过一些事情,比如把它放在课堂上
- 在我使用 exec 资源的任何类中包含该类
- 将该类包含在最顶层主机组中
- 将类包含在宿主中(显式)
什么都没起作用。
有效的方法是将定义放在我想要使用一些 exec 资源的类中,但这基本上与为每个 exec 定义路径相同。
此外,这也适用于文件资源,它们应该有默认忽略,例如ignore => '.svn'
所以我的问题是,有没有办法用 Foreman 做这样的事情?我很乐意用 Foreman 和 Puppet“按原样”解决这个问题。
答案1
正如我们在评论中讨论的那样。只需将您的Exec
默认设置放入您的 site.pp 中即可。
Foreman 创建的任何空的 site.pp 都是因为它必须存在,否则会出现错误。只有当文件不存在时才会创建该文件。否则不会修改文件的内容。
https://github.com/theforeman/puppet-puppet/blob/master/manifests/server/config.pp
# make sure your site.pp exists (puppet #15106, foreman #1708)
file { "${puppet::server_manifest_path}/site.pp":
ensure => present,
replace => false,
content => "# Empty site.pp required (puppet #15106, foreman #1708)\n",
mode => '0644',
}