考虑以下两个 Puppet 模块文件:
# File modules/a/manifests/b/c.pp
class a::b::c {
include b::c
}
# File modules/b/manifests/c.pp
class b::c {
notify { "In b::c": }
}
看起来,当 Puppet 命中include b::c
类中的指令时a::b::c
,它会通过从当前类向后查找来搜索相应的 *.pp 文件,并决定找到位于的正确文件../../b/c.pp
。换句话说,它解析为语句出现的b::c
同一个 *.pp 文件:include b::c
modules/a/manifests/b/c.pp
我期望它(并且希望它)找到并加载文件modules/b/manifests/c.pp
。有没有办法让 Puppet 做到这一点?如果没有,在我看来,模块名称中可能不包含任何其他模块名称,这是一个相当令人惊讶的限制。
答案1
强制其处于顶部使用'include ::b::c'