2.5. 创建主机组
如果您创建大量主机,则许多主机都可以具有通用的设置和属性。为每个新主机添加这些设置和属性是耗时的。如果使用主机组,您可以将通用属性应用到您创建的主机。
主机组充当常见主机设置的模板,包含您提供给主机的许多相同详情。当您使用主机组创建主机时,主机会从主机组继承定义的设置。然后,您可以提供额外的详细信息来个性化主机。
主机组层次结构
您可以创建主机组的层次结构。目的是提供一个基本级别主机组,它代表您组织中的所有主机并提供常规设置,然后嵌套组来提供特定的设置。例如,您可以有一个基本级别主机组来定义操作系统,以及继承基本级别主机组的两个嵌套主机组:
hostgroup:
Base
(Red Hat Enterprise Linux 7.6)hostgroup:Web
server
(应用httpd
Puppet 类)-
主机:
webserver1.example.com
(Web 服务器) -
主机:
webserver2.example.com
(Web 服务器)
-
主机:
hostgroup:
存储
(适用于nfs
Puppet 类)-
主机:
storage1.example.com
(存储服务器) -
主机:
storage2.example.com
(存储服务器)
-
主机:
-
主机:
custom.example.com
(自定义主机)
在本例中,由于 Base
主机组的继承,所有主机都使用 Red Hat Enterprise Linux 7.6 作为其操作系统。两个 Web 服务器主机继承 Webserver
主机组中的设置,其中包括 httpd
Puppet 类以及 Base
主机组中的设置。这两个存储服务器从 Storage
主机组继承设置,其中包括 nfs
Puppet 类以及 Base
主机组中的设置。自定义主机仅继承 Base
主机组中的设置。
流程
- 在 Satellite Web UI 中,导航到 Configure > Host Groups,再点 Create Host Group。
- 如果您有一个要从中继承属性的现有主机组,您可以从 Parent 列表中选择一个主机组。如果没有,请将此字段留空。
- 输入新 主机组的名称。
- 输入您希望将来的主机继承的任何其他信息。
- 单击 Ansible Roles 选项卡,然后从 Ansible Roles 列表中选择您要添加到主机的一个或多个角色。使用 箭头图标 管理添加或删除的角色。
单击附加选项卡,并将您要属性的任何详细信息添加到主机组中。
注意Puppet 在将主机注册到与
Production
环境中创建的 Puppet 环境关联的主机组时,无法检索 Puppet CA 证书。要创建与主机组关联的适当 Puppet 环境,请手动创建目录并更改所有者:
# mkdir /etc/puppetlabs/code/environments/example_environment # chown apache /etc/puppetlabs/code/environments/example_environment
- 单击 Submit 以保存主机组。
对于 CLI 用户
使用 hammer hostgroup create
命令创建主机组。例如:
# hammer hostgroup create --name "Base" \ --lifecycle-environment "Production" --content-view "Base" \ --puppet-environment "production" --content-source-id 1 \ --puppet-ca-proxy-id 1 --puppet-proxy-id 1 --domain "example.com" \ --subnet `ACME's Internal Network` --architecture "x86_64" \ --operatingsystem "RedHat 7.2" --medium-id 9 \ --partition-table "Kickstart default" --root-pass "p@55w0rd!" \ --locations "New York" --organizations "ACME"