我有一个包含多个清单的模块。我有两种类型的VM(用于" APP"和" PRT"作为其名称中的子字符串的不同功能)。我的两个虚拟机都没有共同的清单,但有些清单是特定于虚拟机的。
$hostname = generate('hostname').
我有主机名。
我需要实现的是:
if(hostname matches regex(APP)){
execute manifest a.pp & b.pp
}
else if (hostname matches regex(PRT)){
execute manifest a.pp & bc.pp
}
我怎么能用木偶做到这一点?
答案 0 :(得分:1)
在site.pp
(主要清单)中:
node /.*APP.*/ {
class { 'a': }
class { 'b': }
}
node /.*PRT.*/ {
class { 'a': }
class { 'bc': }
}
如果您的puppet代码库变得更复杂,那么您可以在此处执行更复杂的类包含,但这可以完成您正在使用的案例的工作。
请在此处注明相关文档:https://docs.puppet.com/puppet/latest/reference/lang_node_definitions.html