第 9 章 使用 Ansible 配置和管理 Red Hat OpenStack Platform
您可以使用 Ansible 配置和管理 overcloud,以及管理容器。
9.1. 基于 Ansible 的 overcloud 注册 复制链接链接已复制到粘贴板!
director 使用基于 Ansible 的方法将 overcloud 节点注册到红帽客户门户网站或 Red Hat Satellite Server。
i:f 您使用了之前 Red Hat OpenStack Platform 版本中的 rhel-registration 方法,您必须禁用它并切换到基于 Ansible 的方法。如需更多信息,请参阅 第 9.1.6 节 “切换到 rhsm 可组合服务” 和 第 9.1.7 节 “rhel-registration 到 rhsm 映射”。
除了基于 director 的注册方法外,您还可以在部署后手动注册。如需更多信息,请参阅 第 9.1.9 节 “手动运行基于 Ansible 的注册”。
9.1.1. Red Hat Subscription Manager (RHSM)可组合服务 复制链接链接已复制到粘贴板!
您可以使用 rhsm 可组合服务通过 Ansible 注册 overcloud 节点。默认 roles_data 文件中的每个角色都包含一个 OS::TripleO::Services::Rhsm 资源,默认情况下是禁用的。要启用该服务,将资源注册到 rhsm 可组合服务文件中:
resource_registry: OS::TripleO::Services::Rhsm: /usr/share/openstack-tripleo-heat-templates/deployment/rhsm/rhsm-baremetal-ansible.yaml
resource_registry:
OS::TripleO::Services::Rhsm: /usr/share/openstack-tripleo-heat-templates/deployment/rhsm/rhsm-baremetal-ansible.yaml
rhsm able 服务接受 RhsmVars 参数,您可以使用它来定义与注册相关的多个子参数:
您还可以将 RhsmVars 参数与特定于角色的参数结合使用,如 ControllerParameters,在为不同的节点类型启用特定的存储库时提供灵活性。
RhsmVars sub-parameters
在配置 rhsm 可组合服务时,使用以下子参数作为 RhsmVars 参数的一部分。有关可用的 Ansible 参数的更多信息,请参阅 角色文档。
rhsm | 描述 |
|---|---|
|
|
选择注册方法。 |
|
|
要用于注册的组织。要找到此 ID,请从 undercloud 节点运行 |
|
|
要使用的订阅池 ID。如果您不想自动附加订阅,请使用此参数。要找到此 ID,请从 undercloud 节点运行 |
|
| 要用于注册的激活码。 |
|
|
使用此参数自动将兼容订阅附加到这个系统中。将值设为 |
|
| 获取内容的基本 URL。默认 URL 是 Red Hat Content Delivery Network。如果使用 Satellite 服务器,请将此值更改为 Satellite 服务器内容存储库的基本 URL。 |
|
| 用于注册的订阅管理服务的主机名。默认为 Red Hat Subscription Management 主机名。如果使用 Satellite 服务器,请将此值改为您的 Satellite 服务器主机名。 |
|
| 要启用的存储库列表。 |
|
| 注册的用户名。如果可能,使用激活码进行注册。 |
|
| 注册密码。如果可能,使用激活码进行注册。 |
|
| 用于固定存储库的 Red Hat Enterprise Linux 版本。对于 Red Hat OpenStack Platform,这设置为 9.2 |
|
|
HTTP 代理的主机名。例如: |
|
|
HTTP 代理通信的端口。例如: |
|
| 用于访问 HTTP 代理的用户名。 |
|
| 用于访问 HTTP 代理的密码。 |
只有在 rhsm_method 设置为 portal 时,才能一起使用 rhsm_activation_key 和 rhsm_repos。如果将 rhsm_method 设置为 satellite,则只能使用 rhsm_activation_key 或 rhsm_repos。
9.1.2. RhsmVars sub-parameters 复制链接链接已复制到粘贴板!
在配置 rhsm 可组合服务时,使用以下子参数作为 RhsmVars 参数的一部分。有关可用的 Ansible 参数的更多信息,请参阅 角色文档。
rhsm | 描述 |
|---|---|
|
|
选择注册方法。 |
|
|
要用于注册的组织。要找到此 ID,请从 undercloud 节点运行 |
|
|
要使用的订阅池 ID。如果您不想自动附加订阅,请使用此参数。要找到此 ID,请从 undercloud 节点运行 |
|
| 要用于注册的激活码。 |
|
|
使用此参数自动将兼容订阅附加到这个系统中。将值设为 |
|
| 获取内容的基本 URL。默认 URL 是 Red Hat Content Delivery Network。如果使用 Satellite 服务器,请将此值更改为 Satellite 服务器内容存储库的基本 URL。 |
|
| 用于注册的订阅管理服务的主机名。默认为 Red Hat Subscription Management 主机名。如果使用 Satellite 服务器,请将此值改为您的 Satellite 服务器主机名。 |
|
| 要启用的存储库列表。 |
|
| 注册的用户名。如果可能,使用激活码进行注册。 |
|
| 注册密码。如果可能,使用激活码进行注册。 |
|
| 用于固定存储库的 Red Hat Enterprise Linux 版本。对于 Red Hat OpenStack Platform,这设置为 9.2 |
|
|
HTTP 代理的主机名。例如: |
|
|
HTTP 代理通信的端口。例如: |
|
| 用于访问 HTTP 代理的用户名。 |
|
| 用于访问 HTTP 代理的密码。 |
只有在 rhsm_method 设置为 portal 时,才能一起使用 rhsm_activation_key 和 rhsm_repos。如果将 rhsm_method 设置为 satellite,则只能使用 rhsm_activation_key 或 rhsm_repos。
9.1.3. 使用 rhsm 可组合服务注册 overcloud 复制链接链接已复制到粘贴板!
创建一个启用和配置 rhsm 可组合服务的环境文件。director 使用这个环境文件来注册和订阅您的节点。
流程
-
创建名为
templates/rhsm.yml的环境文件,以存储配置。 在环境文件中包含您的配置。例如:
Copy to Clipboard Copied! Toggle word wrap Toggle overflow -
resource_registry部分将rhsm可组合服务与OS::TripleO::Services::Rhsm资源相关联,该资源可在每个角色上可用。 -
RhsmVars变量向 Ansible 传递参数来配置红帽注册。
-
要基于每个角色应用
rhsm可组合服务,请在环境文件中包含您的配置。例如,您可以将不同的配置应用到 Controller 节点、Compute 节点和 Ceph Storage 节点:Copy to Clipboard Copied! Toggle word wrap Toggle overflow ControllerParameters、ComputeParameters和CephStorageParameters参数各自使用单独的RhsmVars参数,将订阅详情传递给对应的角色。注意在
CephStorageParameters参数中设置RhsmVars参数,以使用特定于 Ceph Storage 的 Red Hat Ceph Storage 订阅和存储库。确保rhsm_repos参数包含标准 Red Hat Enterprise Linux 存储库,而不是 Controller 和 Compute 节点所需的增强扩展更新服务(EEUS)存储库。- 保存环境文件。
9.1.4. 将 rhsm 可组合服务应用到不同的角色 复制链接链接已复制到粘贴板!
您可以基于每个角色应用 rhsm 可组合服务。例如,您可以将不同的配置应用到 Controller 节点、Compute 节点和 Ceph Storage 节点。
流程
-
创建名为
templates/rhsm.yml的环境文件,以存储配置。 在环境文件中包含您的配置。例如:
Copy to Clipboard Copied! Toggle word wrap Toggle overflow resource_registry将rhsm可组合服务与OS::TripleO::Services::Rhsm资源相关联,该资源可在每个角色上可用。ControllerParameters、ComputeParameters和CephStorageParameters参数各自使用单独的RhsmVars参数,将订阅详情传递给对应的角色。注意在
CephStorageParameters参数中设置RhsmVars参数,以使用特定于 Ceph Storage 的 Red Hat Ceph Storage 订阅和存储库。确保rhsm_repos参数包含标准 Red Hat Enterprise Linux 存储库,而不是 Controller 和 Compute 节点所需的增强扩展更新服务(EEUS)存储库。- 保存环境文件。
9.1.5. 将 overcloud 注册到 Red Hat Satellite 服务器 复制链接链接已复制到粘贴板!
创建一个环境文件,启用并配置 rhsm 可组合服务,以将节点注册到 Red Hat Satellite,而不是红帽客户门户。
流程
-
创建名为
templates/rhsm.yml的环境文件,以存储配置。 在环境文件中包含您的配置。例如:
Copy to Clipboard Copied! Toggle word wrap Toggle overflow resource_registry将rhsm可组合服务与OS::TripleO::Services::Rhsm资源相关联,该资源可在每个角色上可用。RhsmVars变量向 Ansible 传递参数来配置红帽注册。- 保存环境文件。
9.1.6. 切换到 rhsm 可组合服务 复制链接链接已复制到粘贴板!
前面的 rhel-registration 方法运行 bash 脚本来处理 overcloud 注册。此方法的脚本和环境文件位于位于 /usr/share/openstack-tripleo-heat-templates/extraconfig/pre_deploy/rhel-registration/ 的核心 heat 模板集合中。
完成以下步骤,从 rhel-registration 方法切换到 rhsm 可组合服务。
流程
从将来的部署操作中排除
rhel-registration环境文件。在大多数情况下,排除以下文件:-
rhel-registration/environment-rhel-registration.yaml -
rhel-registration/rhel-registration-resource-registry.yaml
-
如果您使用自定义
roles_data文件,请确保roles_data文件中的每个角色都包含OS::TripleO::Services::Rhsm可组合服务。例如:Copy to Clipboard Copied! Toggle word wrap Toggle overflow -
为
rhsm可组合服务参数添加环境文件,以备将来部署操作。
此方法将 rhel-registration 参数替换为 rhsm 服务参数,并更改启用该服务的 heat 资源:
resource_registry: OS::TripleO::NodeExtraConfig: rhel-registration.yaml
resource_registry:
OS::TripleO::NodeExtraConfig: rhel-registration.yaml
至:
resource_registry: OS::TripleO::Services::Rhsm: /usr/share/openstack-tripleo-heat-templates/deployment/rhsm/rhsm-baremetal-ansible.yaml
resource_registry:
OS::TripleO::Services::Rhsm: /usr/share/openstack-tripleo-heat-templates/deployment/rhsm/rhsm-baremetal-ansible.yaml
您还可以在部署中包含 /usr/share/openstack-tripleo-heat-templates/environments/rhsm.yaml 环境文件以启用该服务。
9.1.7. rhel-registration 到 rhsm 映射 复制链接链接已复制到粘贴板!
要帮助将您的详情从 rhel-registration 方法转换为 rhsm 方法,请使用下表来映射您的参数和值。
rhel-registration | rhsm / RhsmVars |
|---|---|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
9.1.8. 使用 rhsm 可组合服务部署 overcloud 复制链接链接已复制到粘贴板!
使用 rhsm 可组合服务部署 overcloud,以便 Ansible 控制 overcloud 节点的注册过程。
流程
使用
openstack overcloud deploy命令包含rhsm.yml环境文件:openstack overcloud deploy \ <other cli args> \ -e ~/templates/rhsm.yamlopenstack overcloud deploy \ <other cli args> \ -e ~/templates/rhsm.yamlCopy to Clipboard Copied! Toggle word wrap Toggle overflow 这将启用 overcloud 和基于 Ansible 的注册的 Ansible 配置。
- 等待 overcloud 部署完成。
检查 overcloud 节点上的订阅详情。例如,登录到 Controller 节点并运行以下命令:
sudo subscription-manager status sudo subscription-manager list --consumed
$ sudo subscription-manager status $ sudo subscription-manager list --consumedCopy to Clipboard Copied! Toggle word wrap Toggle overflow
9.1.9. 手动运行基于 Ansible 的注册 复制链接链接已复制到粘贴板!
您可以使用 director 节点上的动态清单脚本对部署的 overcloud 执行基于 Ansible 的手动注册。使用此脚本将节点角色定义为主机组,然后使用 ansible-playbook 对它们运行 playbook。使用以下示例 playbook 来手动注册 Controller 节点。
流程
创建一个使用
redhat_subscription模块注册节点的 playbook。例如,以下 playbook 适用于 Controller 节点:Copy to Clipboard Copied! Toggle word wrap Toggle overflow 此 play 包含三个任务:
- 注册节点。
- 禁用任何启用了自动的仓库。
-
仅启用与 Controller 节点相关的存储库。存储库通过
repos变量列出。
部署 overcloud 后,您可以运行以下命令,以便 Ansible 对您的 overcloud 执行 playbook (
ansible-osp-registration.yml):ansible-playbook -i /usr/bin/tripleo-ansible-inventory ansible-osp-registration.yml
$ ansible-playbook -i /usr/bin/tripleo-ansible-inventory ansible-osp-registration.ymlCopy to Clipboard Copied! Toggle word wrap Toggle overflow 这个命令执行以下操作:
- 运行动态清单脚本以获取主机及其组的列表。
-
将 playbook 任务应用到 playbook 的
hosts参数中定义的组中的节点,本例中为 Controller 组。