3.3. 配置智能类参数
以下步骤配置类中的参数。包含参数的类被称为参数化类。
智能类参数对所有机构都很常见。具有 edit_external_parameters
权限的用户都可以编辑这些参数。如果要限制权限编辑智能类参数,请参阅 KCS 解决方案 Restrict 权限来编辑 puppet 类及其智能类参数,它们在多个机构之间常见。
配置智能类参数
- 单击 Configure > Puppet Classes。
- 从具有 参数 列中指示的参数列表中选择一个类。
- 单击 Smart Class Parameter 选项卡。这将显示一个新屏幕。left 部分包含类支持的可能参数列表。right 部分包含选择的参数的配置选项。
- 从左侧列表中选择参数。
- 编辑 Description 文本框,以添加任何纯文本注释。
- 选择 Override 以允许 Satellite 对此变量进行控制。如果没有选中复选框,卫星不会将新变量传递给 Puppet。
- 选择要传递的数据类型。这是最常见的字符串,但支持其他数据类型。
- 如果发生主机匹配,则输入要发送到 Puppet master 的参数的 Default Value。
- 可选: 选择 Omit 来 不向 Puppet 宿主发送值,除非发生覆盖匹配项。
- 可选: 如果该字段包含您不想在操作时显示的数据,请选择 Hidden 值。
- 使用 Optional Input Validator 部分来限制参数允许的值。在 Validator 规则字段中,选择 Validator 类型 (以逗号分隔的值或正则表达式、regexp) 的列表,并在 Validator 规则 字段中输入允许的值或正则表达式代码。
- 如果选择了 Override 选项,则会出现 Prioritize Attribute Order 部分。这提供了根据条件参数为特定主机覆盖值的选项。属性类型及其值称为 matcher。
在 Order 字段中,设置优先级顺序,其中将主机属性或事实的评估为根据匹配者进行评估,具体由列表中条目的排列。您可以添加一个属性,该属性在 Facter 中存在,且无法与默认列表混淆。
如果要在匹配者间创建逻辑
AND
条件,并使用多个属性作为匹配程序键,将它们放在一行中,格式为用逗号分开的列表:location,environment
注意在 BZ#1772381 被解决前,请注意,Order tooltip 显示使用多个属性作为匹配程序键的不正确的示例配置。
- 单击 Add Matcher 以添加条件参数。要匹配的属性对应于 Order 列表中的条目。如果没有配置 matcher,则只有默认值可用于覆盖功能。
- 从 Attribute type 列表,选择 属性。
- 在属性旁边的字段中,输入属性字符串。
在 Value 字段中输入您想要的值。
可以使用嵌入式 Ruby(ERB)模板语法中的 Value 字段中的参数和 Puppet 事实实现动态数据。例如,要将 Puppet 事实用作值的一部分:
<%= @host.facts['network_eth0'] %>
若要列出可用的 Puppet 事实,可导航到 Monitor > Facts。
如需有关 ERB 语法的更多信息,请参阅 管理主机 中的模板编写参考。
- 点 Submit。
将单个属性设置为 matcher 键
您可以将单个属性设置为 matcher 键。
例如,若要为 Default_Location
位置的任何主机的 Puppet master 提供 test
值,请完成以下步骤:
-
在 Order 字段中,附加
位置
。 -
单击 Add Matcher,再从 Attribute 类型 列表中选择
位置
。 -
在属性旁边的字段中,输入
Default_Location
。 -
在 Value 字段中输入
test
。 - 点 Submit。
将多个属性设置为 matcher 键
您可以将多个属性设置为匹配器。
例如,若要为 Default_Location
位置和 开发环境中
任何主机的 Puppet master 提供参数值,请完成以下步骤:
-
在 Order 字段中,附加
location,environment
。 -
单击 Add Matcher,再从 Attribute 类型 列表选择
location,environment
。 -
在属性旁边的字段中,输入
Default_Location,development
。 -
在 Value 字段中输入
test
。 - 点 Submit。
匹配概述的优先级
在匹配的主机时,Satellite 会使用以下优先级:
- 卫星在主机属性中搜索匹配者。
- 如果主机属性中没有匹配项,卫星将搜索主机参数中的匹配程序,这会根据参数层次结构进行继承。
- 如果主机参数中没有匹配项,卫星会在主机事实中搜索匹配程序。