Puppet 资源管理:类、角色与配置文件的深度解析
1. Enum 参数声明
当类期望一个字符串参数,且该参数只能取少数几个值时,可以在 Enum 参数声明中列出所有允许的值。Puppet 会确保传递给该参数的值必须在这个列表中。例如,尝试声明pbg_ntp_params2类并将bogus值传递给$service_state参数时,会得到如下错误:
Error: Evaluation Error: Error while evaluating a Resource Statement, Class[Pbg_ntp_params2]: parameter 'service_state' expects a match for Enum['running', 'stopped'], got String at /examples/class_params2. pp:22:1 on node ubuntu-xenial和其他参数一样,Enum 参数也可以有默认值。
2. 从 Hiera 数据自动查找参数
可以使用 Hiera 数据将参数传递给类。例如,包含一个名为ntp的类,该类接受一个version参数,若 Hiera 中存在名为ntp::version的键,其值将在声明ntp类时自动传递给该类。如 Hiera 数