0

哪个更适合 Puppet 3.7 或更高版本?

1- Hiera 与 Yaml 定义为

ubuntu.yaml:

---
classes:
  - google-chrome
  - xcode

2-基本节点定义为

节点.pp:

node "ubuntu" {
   include google-chrome
   include xcode
}
4

1 回答 1

0

我认为您误解了使用 hiera 的目的。根据文件

Hiera 是一个用于配置数据的键/值查找工具,旨在使 Puppet 变得更好,并让您设置特定于节点的数据而无需重复自己。

Hiera 为您提供了一种提供配置参数的通用方式。因此,在我看来,将 hiera 作为配置提供程序的“2-基本节点定义”是在 hiera 中使用 puppet 的正确方法。

例如:而不是定义:

node node1 {
   class { 'some_class_1' :
     param_1 => value1,
     param_2 => value2,
   }

   class { 'some_class_2' :
     param_1 => value3,
     param_2 => value4,
   }
}

node node2 {
   class { 'some_class_1' :
     param_1 => value11,
     param_2 => value22,
   }

   class { 'some_class_2' :
     param_1 => value33,
     param_2 => value44,
   }
}

使用 hiera 作为配置提供者。在 puppet 中仅定义:

node some_regexp { #or just provide node names
   include some_class_1
   include some_class_2
}

而不是定义适当的hiera文件:

node1.yaml

some_class_1::param_1: value1
some_class_1::param_2: value2
some_class_2::param_1: value3
some_class_2::param_2: value4

node2.yaml

some_class_1::param_1: value11
some_class_1::param_2: value22
some_class_2::param_1: value33
some_class_2::param_2: value44
于 2015-01-23T09:13:14.510 回答