9.2. 参数


Red Hat Satellite 参数定义在置备主机时要使用的键值对。它们与 Puppet 的默认范围参数概念类似。您可以使用 Puppet 设置主机时定义参数。

参数类型

Red Hat Satellite 有两种类型的参数:
简单参数
定义键值对之间的关系的字符串参数。它们不能被用户配置覆盖,但它们会根据 Satellite 的参数层次结构覆盖。以下参数是 Red Hat Satellite 中的简单参数: Global, organization-level, location-level, domain-level, operating system level, host group, 和 host 参数。
智能参数
为键定义值但允许条件参数、验证和覆盖特定对象类型的复杂参数。智能参数使 Puppet 类能够获取外部数据。它们在 Puppet 术语中称为 参数化类的 Puppet 类中 使用。这些参数的层次结构可以在 Web UI 中配置。
以下参数层次结构适用于简单参数:
全局参数
应用到 Satellite 中每一主机的默认参数。在 Configure Global parameters 中配置。
机构级别参数
影响给定机构中所有主机的参数。机构级参数会覆盖全局参数。在管理 组织编辑参数 中配置
位置级别参数
影响给定位置中的所有主机的参数。位置级别参数覆盖机构级别和全局参数。在管理 位置 编辑参数 中配置
域参数
影响给定域中的所有主机的参数。域参数覆盖位置级别及更高的参数。在 基础架构 [choose_a_domain] 参数.
操作系统级别参数
影响给定操作系统的所有主机的参数。操作系统级别参数覆盖域和更高的参数。在主机操作系统中配置 [choose_an_operating_system] 参数.
主机组参数
影响给定主机组中的所有主机的参数。主机组参数覆盖操作系统级别及更高的参数。在 Configure Host Groups [choose_a_host_group] Parameters 中配置。
主机参数
影响特定主机的参数。所有之前继承的参数都会在参数子选项卡上可见,并可覆盖。在 主机中配置 所有主机编辑参数

在 Puppet 类中使用参数

Red Hat Satellite 有两种方法为 Puppet Master 提供值,供主机用于 Puppet 类:
智能变量
对于没有智能参数的类,一种向 Puppet Master 提供全局参数的工具,以键值形式提供。它们在 Puppet 清单中启用覆盖参数值。当类没有智能参数或需要全局参数时,它们会被用来使用。它们可以有多个可能的值,它们都取决于用户可以应用的分层上下文或各种条件。在 Puppet 具有参数化类之前,它们就存在,以便实现向后兼容性,或使用您想要验证的全局参数,仅与特定 Puppet 类一起使用,以及字符串以外的类型(因为您也可以使用简单参数)。
参数化类
包含智能参数的 Puppet 类.类从 Puppet Master 和参数名称导入,如 $::name (首选)或 $名称,由编写该类且无法更改的人员定义。它们允许您决定特定类的 变量的值,而不是全局设置。
配置的参数包含在每个主机对应的 YAML 文件中,并发送到 Puppet Master。可以在特定主机页面的 Web UI 中查看 YAML 文件。您不应该手动更改 /etc/foreman/settings.yaml 配置文件,因为它们在下次运行 satellite-installer 命令时会覆盖。
重要
Satellite 6 中默认启用参数化类支持。如果需要确保它为,请导航到 Administer Settings,选择 Puppet 选项卡,然后确保 Parametrized_Classes_in_ENC es 设置为 True

9.2.1. 创建全局简单参数

此流程演示了如何在 Satellite 中添加新的 global 参数。

过程 9.2. 要创建全局简单参数:

  1. 单击 Configure Global Parameters
  2. 单击新建参数
  3. 输入参数 密钥的名称。
  4. 为参数输入 Value
  5. (可选)如果您希望在 web UI 中隐藏该值,请选择此项。
  6. 单击 Submit

9.2.2. 配置智能变量

以下流程将 Smart Variables 配置为覆盖 Puppet 类中的值。

过程 9.3. 配置智能变量:

  1. 单击 Configure Puppet Classes
  2. 从列表中选择一个类。
  3. Smart Variables 选项卡。这将显示一个新屏幕。left 部分包含类支持的可能参数列表。right 部分包含所选参数的配置选项。单击 Add Variable 以添加新参数。否则,从左侧列表中选择一个参数。
  4. Key 字段中,输入参数的名称。
  5. 编辑 Description 文本框,以添加任何纯文本注释。
  6. 选择 要传递的 Key 类型。这通常是字符串,但支持其他数据类型。
  7. 如果没有主机匹配,输入要发送到 Puppet Master 的参数的 Default Value
  8. 如果字段包含您正在使用的数据,可以选择 Hidden 值
  9. 使用 Optional Input Validator 部分限制 参数允许的值。选择一个 Validator 类型 (以逗号分隔的 值列表 或正则表达式、regexp),并在 Validator 规则 字段中输入允许的值或正则表达式代码。
  10. Prioritize attribute order 部分提供了根据条件参数覆盖特定主机的值的选项。属性类型和其值称为 匹配器
    1. 通过安排列表中的条目,设置要针对匹配者评估主机属性或事实的优先顺序。您可以添加到默认列表中。要在匹配器之间创建逻辑 AND 条件,请将它们放在一行中以逗号分隔的列表。
    2. Add Matcher 添加条件参数。要匹配的属性应与 Order 列表中的条目对应。如果没有配置 matcher,则只有默认值可用于覆盖功能。
      例如,如果要向 Puppet Master 提供所需的参数值,则针对完全限定域名为 server1.example.com 的任何主机进行测试,然后将匹配器指定为 fqdn=server1.example.com,并将 Value 指定为 test
      匹配的优先级如下:
      1. 如果匹配器是主机属性,则使用它。
      2. 如果没有具有该名称的属性,请查找匹配的主机参数(根据参数层次结构继承)。
      3. 如果仍没有匹配项,请检查主机事实。
      建议您使用 Facter 中存在的属性,且无法与主机属性混淆。主机属性可以是主机参数,也可以是与主机(如主机组、域和组织)关联。匹配器只能是主机中的一个内容,如配置组无法使用,因为主机可以有多个配置组,但主机只有一个位置,因此位置是有效的匹配者。
      通过在 嵌入式 Ruby (ERB)模板语法中的 Value 字段中使用参数和 Puppet Facts,可以动态数据。例如,要使用 Puppet Facts 作为值的一部分:要列出可用的 Puppet 事实,请导航到 Monitor Facts
  11. Submit 保存您的更改。
有关使用 Puppet 模块的更多信息,请参阅 将 Puppet 模块添加到红帽卫星 6 中。有关 ERB 语法的详情请参考 附录 A, 模板编写参考

9.2.3. 从 Puppet Master 导入参数类

以下流程从您的 Puppet Master 导入参数化类。
注意
如果您的 Puppet 模块通过产品和内容视图管理,则会自动进行参数化类导入。

过程 9.4. 要导入参数类:

  1. 在卫星 Web UI 中,从上下文菜单中选择 Any OrganizationAny Location
  2. 单击 Configure Puppet Classes
  3. 单击 Import from Host Name,以从您的 Puppet Master 导入参数化类。
  4. Puppet Classes 页面显示有列出的新类。

9.2.4. 配置智能类参数

以下流程在类中配置参数。包含参数的类称为 参数化类

过程 9.5. 配置智能类参数:

  1. 单击 Configure Puppet Classes
  2. 从列表中选择一个具有参数的类,如 Parameters 列所示。
  3. 单击 Smart Class Parameter 选项卡。这将显示一个新屏幕。left 部分包含类支持的可能参数列表。right 部分包含所选参数的配置选项。
  4. 从左侧列表中选择一个参数。
  5. 编辑 Description 文本框,以添加任何纯文本注释。
  6. 选择 Override 以允许 Satellite 控制此变量。如果未选中复选框,卫星不会将新变量传递给 Puppet。
  7. 选择 要传递的 Key 类型。这通常是字符串,但支持其他数据类型。
  8. 如果没有主机匹配,输入要发送到 Puppet Master 的参数的 Default Value
  9. (可选)选择 Use Puppet Default 不向 Puppet Master 发送值,除非发生覆盖匹配。
  10. 如果字段包含您正在使用的数据,可以选择 Hidden 值
  11. 使用 Optional input validator 部分限制 参数允许的值。选择一个 Validator 类型 (以逗号分隔的 值列表 或正则表达式、regexp),并在 Validator 规则 字段中输入允许的值或正则表达式代码。
  12. 如果选择了 Override 选项,则会显示 Prioritize attribute order 部分。这提供了根据条件参数覆盖特定主机的值的选项。属性类型和其值称为 匹配器
    1. 通过安排列表中的条目,设置要针对匹配者评估主机属性或事实的优先顺序。您可以添加到默认列表中。要在匹配器之间创建逻辑 AND 条件,请将它们放在一行中以逗号分隔的列表。
    2. Add Matcher 添加条件参数。要匹配的属性应与 Order 列表中的条目对应。如果没有配置 matcher,则只有默认值可用于覆盖功能。
      例如,如果要向 Puppet Master 提供所需的参数值,则针对完全限定域名为 server1.example.com 的任何主机进行测试,然后将匹配器指定为 fqdn=server1.example.com,并将 Value 指定为 test
      匹配的优先级如下:
      1. 如果匹配器是主机属性,则使用它。
      2. 如果没有具有该名称的属性,请查找匹配的主机参数(根据参数层次结构继承)。
      3. 如果仍没有匹配项,请检查主机事实。
      建议您使用 Facter 中存在的属性,且无法与主机属性混淆。
      通过在 嵌入式 Ruby (ERB)模板语法中的 Value 字段中使用参数和 Puppet Facts,可以动态数据。例如,要使用 Puppet Facts 作为值的一部分:要列出可用的 Puppet 事实,请导航到 Monitor Facts
  13. Submit 保存您的更改。
有关使用 Puppet 模块的更多信息,请参阅 将 Puppet 模块添加到红帽卫星 6 中。有关 ERB 语法的详情请参考 附录 A, 模板编写参考
返回顶部
Red Hat logoGithubredditYoutubeTwitter

学习

尝试、购买和销售

社区

关于红帽文档

通过我们的产品和服务,以及可以信赖的内容,帮助红帽用户创新并实现他们的目标。 了解我们当前的更新.

让开源更具包容性

红帽致力于替换我们的代码、文档和 Web 属性中存在问题的语言。欲了解更多详情,请参阅红帽博客.

關於紅帽

我们提供强化的解决方案,使企业能够更轻松地跨平台和环境(从核心数据中心到网络边缘)工作。

Theme

© 2025 Red Hat