确保为不同的VM名称单独设置Puppet集。

时间:2016-08-23 07:11:28

标签: puppet

我有一个包含多个清单的模块。我有两种类型的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
}

我怎么能用木偶做到这一点?

1 个答案:

答案 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