搜索

3.6. 配置智能变量

download PDF

以下流程配置智能变量以覆盖 Puppet 类中的值。

配置智能变量

  1. 单击 Configure > Puppet Classes
  2. 从列表中选择一个类。
  3. Smart Variables 选项卡。这将显示一个新屏幕。left 部分包含类支持的可能参数列表。right 部分包含选择的参数的配置选项。点 Add Variable 添加新参数。否则,从左侧列表中选择参数。
  4. Key 字段中输入参数的名称。
  5. 编辑 Description 文本框,以添加任何纯文本注释。
  6. 选择要 传递的数据的参数类型。这是最常见的字符串,但支持其他数据类型。
  7. 如果发生主机匹配,则输入要发送到 Puppet master 的参数的 Default Value
  8. 可选: 如果该字段包含您不想在操作时显示的数据,请选择 Hidden Value
  9. 使用 Optional Input Validator 部分来限制参数允许的值。在 Validator 规则字段中,选择以逗号分隔的值或正则表达式列表( regexp)并在 Validator 规则 字段中输入允许的值或正则表达式代码。
  10. Prioritize Attribute Order 部分提供了根据条件参数覆盖特定主机的值的选项。属性类型及其值称为 匹配程序

    1. 设置 要针对 匹配人员评估主机属性或事实(fact)顺序排列排列列表中的条目的优先顺序。您可以添加到默认列表中。要在匹配者间创建一个逻辑 AND 条件,将它们放在一行中,以逗号分隔列表。
    2. 单击 Add Matcher 以添加条件参数。要匹配的属性应当对应于 Order 列表中的条目。如果没有配置 matcher,则只有默认值可用于覆盖功能。

      例如,如果提供给 Puppet master 所需的参数值是 测试 任何具有全限定域名 server1.example.com 的主机,则将 matcher 指定为 fqdn=server1.example.com值为 test

      匹配的优先级如下:

      1. 如果 matcher 是主机属性,请使用:
      2. 如果没有具有该名称的属性,请查找匹配的 host 参数(这会根据参数层次结构进行继承)。
      3. 如果仍没有匹配项,请检查主机事实。

        建议您使用一个在 Facter 中存在的属性,且无法与 host 属性混淆。主机属性可以是主机参数,也可以是与主机关联,如主机组、域和组织。matcher 只能是主机 中的一个内容,例如 config 组不能被使用,因为主机可以有多个配置组,但主机只能有一个位置,因此位置是有效的匹配器。

        可以使用 嵌入式 Ruby (ERB)模板语法中的 Value 字段中的参数和 Puppet 事实实现动态数据。例如,要将 Puppet 事实用作值的一部分:

        <%= @host.facts['network_eth0'] %>

        若要列出可用的 Puppet 事实,可导航到 Monitor > Facts

  11. Submit 保存您的更改。

如需有关 ERB 语法的更多信息,请参阅 管理主机 中的模板编写参考

Red Hat logoGithubRedditYoutubeTwitter

学习

尝试、购买和销售

社区

关于红帽文档

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

让开源更具包容性

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

關於紅帽

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

© 2024 Red Hat, Inc.