哪个更适合 Puppet 3.7 或更高版本?
1- Hiera 与 Yaml 定义为
ubuntu.yaml:
---
classes:
- google-chrome
- xcode
2-基本节点定义为
节点.pp:
node "ubuntu" {
include google-chrome
include xcode
}
我认为您误解了使用 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