Puppet 确保为不同的VM名称提供单独的傀儡清单集。

Puppet 确保为不同的VM名称提供单独的傀儡清单集。,puppet,Puppet,我有一个包含多个清单的模块。我有两种类型的VM(用于不同的功能,名称中的子字符串是“APP”和“PRT”)。对于这两个虚拟机,我几乎没有共同的清单,但有些清单是特定于虚拟机的 $hostname = generate('hostname'). 我有主机名 我需要实施的是: if(hostname matches regex(APP)){ execute manifest a.pp & b.pp } else if (hostname matches regex(PRT)){

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

如何使用puppet执行此操作?

在您的
站点.pp
(主清单)中:

如果您的puppet代码库变得更复杂,那么您可以在这里进行更复杂的类包含,但是这就完成了您正在处理的案例的工作


请注意此处的相关文档:

这是否适用于所有具有APP和PRT的服务器?我不必为每个服务器分别定义,对吗?是的,它将与它们一起工作。您可以根据需要修改regexp。
node /.*APP.*/ {
  class { 'a': }
  class { 'b': }
}
node /.*PRT.*/ {
  class { 'a': }
  class { 'bc': }
}