7.6. 创建发现规则
作为为发现的主机自动执行调配流程的方法,Satellite 提供了创建发现规则的功能。这些规则定义了发现的主机如何根据分配的主机组自动调配自身。例如,您可以自动将 CPU 数高的主机调配为虚拟机监控程序。同样,您可以将具有大型硬盘的主机调配为存储服务器。
要使用 CLI 而不是 Satellite Web UI,请参阅 CLI 过程。
NIC 注意事项
自动配置目前不允许配置 NIC;所有系统都使用在发现过程中检测到的 NIC 配置来置备。但是,您可以使用脚本或在稍后阶段使用配置管理在 kickstart
scriplet 中设置 NIC。
流程
- 在 Satellite Web UI 中,进入到 Configure > Discovery rules,然后选择 Create Rule。
- 在 Name 字段中输入规则的名称。
-
在 Search 字段中输入规则来确定要置备主机的规则。此字段提供您输入的值的建议,并允许操作者用于多个规则。例如:
cpu_count > 8
。 - 从 Host Group 列表中,选择要用作此主机的模板的主机组。
在 Hostname 字段中输入模式,以确定多个主机的主机名。这使用了与置备模板相同的 ERB 语法。主机名可以将
@host
属性用于特定于主机的值,以及 rund 宏作为随机数字,或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。
-
-
在 Hosts limit 字段中,输入您可以使用规则置备的主机的最大数量。输入
0
代表无限。 - 在 Priority 字段中,输入数字来设置规则的优先级高于其他规则的优先级。较低值的规则具有更高的优先级。
- 从 Enabled 列表中,选择是否要启用该规则。
- 要为规则设置不同的调配上下文,请单击 组织和位置 选项卡,再选择要使用的上下文。
- 点 Submit 保存您的规则。
在 Satellite Web UI 中,进入到 Hosts > Discovered Host 并选择以下两个选项之一:
- 从右侧的发现主机列表中,选择 Auto-Provision 以自动调配单个主机。
- 在窗口右上角,单击 Auto-Provision All 以自动调配所有主机。
CLI 过程
使用
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"
使用
hammer discovery auto-provision
命令自动置备主机:# hammer discovery auto-provision --name "macabcdef123456"