7.6. 创建发现规则

作为为发现的主机自动执行调配流程的方法,卫星提供了创建发现规则的功能。这些规则定义发现的主机根据所分配的主机组自动调配自身的方式。例如,您可以自动将具有高 CPU 数量的主机置备为虚拟机监控程序。同样,您可以将具有大型硬盘的主机置备为存储服务器。

要使用 CLI 而不是 Satellite Web UI,请参阅 CLI 过程

NIC 注意事项

自动配置目前不允许配置 NIC,所有系统都使用发现过程中检测到的 NIC 配置置备。但是,您可以使用脚本在 kickstart scriplet 中设置 NIC,或者稍后使用配置管理。

流程

  1. 在 Satellite Web UI 中,导航到 Configure > Discovery rules,然后选择 Create Rule
  2. Name 字段中输入规则的名称。
  3. Search 字段中输入规则,以确定是否置备主机。此字段提供您输入的值的建议,并允许操作员获取多个规则。例如: cpu_count > 8
  4. Host Group 列表中,选择要用作此主机的模板的主机组。
  5. Hostname 字段中,输入确定多个主机的主机名的模式。这将使用与置备模板所用的同一 ERB 语法。主机名可以将 @host 属性用于特定于主机的值,并使用 run d 宏作为随机数字,或者 sequence_hostgroup_param_next 宏递增值。有关置备模板的更多信息,请参阅 第 2.11 节 “自定义模板” 和 API 文档。

    • myhost-<%= sequence_hostgroup_param_next("EL7/MyHostgroup", 10, "discovery_host") %>
    • myhost-<%= rand(99999) %>
    • abc-<%= @host.facts['bios_vendor'] %>-<%= rand(99999) %>
    • xyz-<%= @host.hostgroup.name %>
    • srv-<%= @host.discovery_rule.name %>
    • server-<%= @host.ip.gsub('.','-') + '-' + @host.hostgroup.subnet.name %>

      在创建主机名模式时,请确保生成的主机名是唯一的,不以数字开头,不包含下划线或点。好方法是使用 Facter 提供的唯一信息,如 MAC 地址、BIOS 或串行 ID。

  6. Hosts limit 字段中,输入您可以使用该规则置备的最大主机数。在无限时输入 0。
  7. Priority 字段中,输入数字来设置优先级高于规则的优先级。低值的规则具有更高的优先级。
  8. Enabled 列表中,选择是否要启用该规则。
  9. 要为规则设置不同的调配上下文,请单击 OrganizationsLocations 选项卡,再选择要使用的上下文。
  10. Submit 保存您的规则。
  11. 在 Satellite web UI 中,进入 Hosts > Discovered Host 并选择以下两个选项之一:

    • 从右侧的发现主机列表中,选择 Auto-Provision 以自动置备单个主机。
    • 在窗口的右上角,单击 Auto-Provision All 以自动置备所有主机。

CLI 过程

  1. 使用 hammer discovery-rule create 命令创建规则:

    # hammer discovery-rule create \
    --enabled true \
    --hostgroup "My_Host_Group" \
    --hostname "hypervisor-<%= rand(99999) %>" \
    --hosts-limit 5 \
    --name "My_Hypervisor" \
    --priority 5 \
    --search "cpu_count  > 8"
  2. 使用 hammer discovery auto-provision 命令自动配置主机:

    # hammer discovery auto-provision --name "macabcdef123456"