第 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
Copy to Clipboard Toggle word wrap

rhsm able 服务接受 RhsmVars 参数,您可以使用它来定义与注册相关的多个子参数:

parameter_defaults:
  RhsmVars:
    rhsm_repos:
      - rhel-9-for-x86_64-baseos-e4s-rpms
      - rhel-9-for-x86_64-appstream-e4s-rpms
      - rhel-9-for-x86_64-highavailability-e4s-rpms
      …​
    rhsm_username: "myusername"
    rhsm_password: "p@55w0rd!"
    rhsm_org_id: "1234567"
    rhsm_release: 9.2
Copy to Clipboard Toggle word wrap

您还可以将 RhsmVars 参数与特定于角色的参数结合使用,如 ControllerParameters,在为不同的节点类型启用特定的存储库时提供灵活性。

RhsmVars sub-parameters

在配置 rhsm 可组合服务时,使用以下子参数作为 RhsmVars 参数的一部分。有关可用的 Ansible 参数的更多信息,请参阅 角色文档

Expand
rhsm描述

rhsm_method

选择注册方法。门户satellite禁用

rhsm_org_id

要用于注册的组织。要找到此 ID,请从 undercloud 节点运行 sudo subscription-manager 组织。在提示符处输入您的红帽凭证,并使用生成的 Key 值。有关您的机构 ID 的更多信息,请参阅了解红帽订阅管理机构 ID

rhsm_pool_ids

要使用的订阅池 ID。如果您不想自动附加订阅,请使用此参数。要找到此 ID,请从 undercloud 节点运行 sudo subscription-manager list --available --all --matches="*Red Hat OpenStack*",并使用生成的 Pool ID 值。

rhsm_activation_key

要用于注册的激活码。

rhsm_autosubscribe

使用此参数自动将兼容订阅附加到这个系统中。将值设为 true 以启用此功能。

rhsm_baseurl

获取内容的基本 URL。默认 URL 是 Red Hat Content Delivery Network。如果使用 Satellite 服务器,请将此值更改为 Satellite 服务器内容存储库的基本 URL。

rhsm_server_hostname

用于注册的订阅管理服务的主机名。默认为 Red Hat Subscription Management 主机名。如果使用 Satellite 服务器,请将此值改为您的 Satellite 服务器主机名。

rhsm_repos

要启用的存储库列表。

rhsm_username

注册的用户名。如果可能,使用激活码进行注册。

rhsm_password

注册密码。如果可能,使用激活码进行注册。

rhsm_release

用于固定存储库的 Red Hat Enterprise Linux 版本。对于 Red Hat OpenStack Platform,这设置为 9.2

rhsm_rhsm_proxy_hostname

HTTP 代理的主机名。例如: proxy.example.com

rhsm_rhsm_proxy_port

HTTP 代理通信的端口。例如:8080

rhsm_rhsm_proxy_user

用于访问 HTTP 代理的用户名。

rhsm_rhsm_proxy_password

用于访问 HTTP 代理的密码。

重要

只有在 rhsm_method 设置为 portal 时,才能一起使用 rhsm_activation_keyrhsm_repos。如果将 rhsm_method 设置为 satellite,则只能使用 rhsm_activation_keyrhsm_repos

9.1.2. RhsmVars sub-parameters

在配置 rhsm 可组合服务时,使用以下子参数作为 RhsmVars 参数的一部分。有关可用的 Ansible 参数的更多信息,请参阅 角色文档

Expand
rhsm描述

rhsm_method

选择注册方法。门户satellite禁用

rhsm_org_id

要用于注册的组织。要找到此 ID,请从 undercloud 节点运行 sudo subscription-manager 组织。在提示符处输入您的红帽凭证,并使用生成的 Key 值。有关您的机构 ID 的更多信息,请参阅了解红帽订阅管理机构 ID

rhsm_pool_ids

要使用的订阅池 ID。如果您不想自动附加订阅,请使用此参数。要找到此 ID,请从 undercloud 节点运行 sudo subscription-manager list --available --all --matches="*Red Hat OpenStack*",并使用生成的 Pool ID 值。

rhsm_activation_key

要用于注册的激活码。

rhsm_autosubscribe

使用此参数自动将兼容订阅附加到这个系统中。将值设为 true 以启用此功能。

rhsm_baseurl

获取内容的基本 URL。默认 URL 是 Red Hat Content Delivery Network。如果使用 Satellite 服务器,请将此值更改为 Satellite 服务器内容存储库的基本 URL。

rhsm_server_hostname

用于注册的订阅管理服务的主机名。默认为 Red Hat Subscription Management 主机名。如果使用 Satellite 服务器,请将此值改为您的 Satellite 服务器主机名。

rhsm_repos

要启用的存储库列表。

rhsm_username

注册的用户名。如果可能,使用激活码进行注册。

rhsm_password

注册密码。如果可能,使用激活码进行注册。

rhsm_release

用于固定存储库的 Red Hat Enterprise Linux 版本。对于 Red Hat OpenStack Platform,这设置为 9.2

rhsm_rhsm_proxy_hostname

HTTP 代理的主机名。例如: proxy.example.com

rhsm_rhsm_proxy_port

HTTP 代理通信的端口。例如:8080

rhsm_rhsm_proxy_user

用于访问 HTTP 代理的用户名。

rhsm_rhsm_proxy_password

用于访问 HTTP 代理的密码。

重要

只有在 rhsm_method 设置为 portal 时,才能一起使用 rhsm_activation_keyrhsm_repos。如果将 rhsm_method 设置为 satellite,则只能使用 rhsm_activation_keyrhsm_repos

9.1.3. 使用 rhsm 可组合服务注册 overcloud

创建一个启用和配置 rhsm 可组合服务的环境文件。director 使用这个环境文件来注册和订阅您的节点。

流程

  1. 创建名为 templates/rhsm.yml 的环境文件,以存储配置。
  2. 在环境文件中包含您的配置。例如:

    resource_registry:
      OS::TripleO::Services::Rhsm: /usr/share/openstack-tripleo-heat-templates/deployment/rhsm/rhsm-baremetal-ansible.yaml
    parameter_defaults:
      RhsmVars:
        rhsm_repos:
          - rhel-9-for-x86_64-baseos-e4s-rpms
          - rhel-9-for-x86_64-appstream-e4s-rpms
          - rhel-9-for-x86_64-highavailability-e4s-rpms
          …​
        rhsm_username: "myusername"
        rhsm_password: "p@55w0rd!"
        rhsm_org_id: "1234567"
        rhsm_pool_ids: "1a85f9223e3d5e43013e3d6e8ff506fd"
        rhsm_method: "portal"
        rhsm_release: 9.2
    Copy to Clipboard Toggle word wrap
    • resource_registry 部分将 rhsm 可组合服务与 OS::TripleO::Services::Rhsm 资源相关联,该资源可在每个角色上可用。
    • RhsmVars 变量向 Ansible 传递参数来配置红帽注册。
  3. 要基于每个角色应用 rhsm 可组合服务,请在环境文件中包含您的配置。例如,您可以将不同的配置应用到 Controller 节点、Compute 节点和 Ceph Storage 节点:

    parameter_defaults:
      ControllerParameters:
        RhsmVars:
          rhsm_repos:
            - rhel-9-for-x86_64-baseos-e4s-rpms
            - rhel-9-for-x86_64-appstream-e4s-rpms
            - rhel-9-for-x86_64-highavailability-e4s-rpms
            - openstack-17.1-for-rhel-9-x86_64-rpms
            - fast-datapath-for-rhel-9-x86_64-rpms
            - rhceph-6-tools-for-rhel-9-x86_64-rpms
          rhsm_username: "myusername"
          rhsm_password: "p@55w0rd!"
          rhsm_org_id: "1234567"
          rhsm_pool_ids: "55d251f1490556f3e75aa37e89e10ce5"
          rhsm_method: "portal"
          rhsm_release: 9.2
      ComputeParameters:
        RhsmVars:
          rhsm_repos:
            - rhel-9-for-x86_64-baseos-e4s-rpms
            - rhel-9-for-x86_64-appstream-e4s-rpms
            - rhel-9-for-x86_64-highavailability-e4s-rpms
            - openstack-17.1-for-rhel-9-x86_64-rpms
            - rhceph-6-tools-for-rhel-9-x86_64-rpms
            - fast-datapath-for-rhel-9-x86_64-rpms
          rhsm_username: "myusername"
          rhsm_password: "p@55w0rd!"
          rhsm_org_id: "1234567"
          rhsm_pool_ids: "55d251f1490556f3e75aa37e89e10ce5"
          rhsm_method: "portal"
          rhsm_release: 9.2
      CephStorageParameters:
        RhsmVars:
          rhsm_repos:
            - rhel-9-for-x86_64-baseos-rpms
            - rhel-9-for-x86_64-appstream-rpms
            - rhel-9-for-x86_64-highavailability-rpms
            - openstack-17.1-deployment-tools-for-rhel-9-x86_64-rpms
          rhsm_username: "myusername"
          rhsm_password: "p@55w0rd!"
          rhsm_org_id: "1234567"
          rhsm_pool_ids: "68790a7aa2dc9dc50a9bc39fabc55e0d"
          rhsm_method: "portal"
          rhsm_release: 9.2
    Copy to Clipboard Toggle word wrap

    ControllerParametersComputeParametersCephStorageParameters 参数各自使用单独的 RhsmVars 参数,将订阅详情传递给对应的角色。

    注意

    CephStorageParameters 参数中设置 RhsmVars 参数,以使用特定于 Ceph Storage 的 Red Hat Ceph Storage 订阅和存储库。确保 rhsm_repos 参数包含标准 Red Hat Enterprise Linux 存储库,而不是 Controller 和 Compute 节点所需的增强扩展更新服务(EEUS)存储库。

  4. 保存环境文件。

9.1.4. 将 rhsm 可组合服务应用到不同的角色

您可以基于每个角色应用 rhsm 可组合服务。例如,您可以将不同的配置应用到 Controller 节点、Compute 节点和 Ceph Storage 节点。

流程

  1. 创建名为 templates/rhsm.yml 的环境文件,以存储配置。
  2. 在环境文件中包含您的配置。例如:

    resource_registry:
      OS::TripleO::Services::Rhsm: /usr/share/openstack-tripleo-heat-templates/deployment/rhsm/rhsm-baremetal-ansible.yaml
    parameter_defaults:
      ControllerParameters:
        RhsmVars:
          rhsm_repos:
            - rhel-9-for-x86_64-baseos-e4s-rpms
            - rhel-9-for-x86_64-appstream-e4s-rpms
            - rhel-9-for-x86_64-highavailability-e4s-rpms
            - openstack-17.1-for-rhel-9-x86_64-rpms
            - fast-datapath-for-rhel-9-x86_64-rpms
            - rhceph-6-tools-for-rhel-9-x86_64-rpms
          rhsm_username: "myusername"
          rhsm_password: "p@55w0rd!"
          rhsm_org_id: "1234567"
          rhsm_pool_ids: "55d251f1490556f3e75aa37e89e10ce5"
          rhsm_method: "portal"
          rhsm_release: 9.2
      ComputeParameters:
        RhsmVars:
          rhsm_repos:
            - rhel-9-for-x86_64-baseos-e4s-rpms
            - rhel-9-for-x86_64-appstream-e4s-rpms
            - rhel-9-for-x86_64-highavailability-e4s-rpms
            - openstack-17.1-for-rhel-9-x86_64-rpms
            - rhceph-6-tools-for-rhel-9-x86_64-rpms
            - fast-datapath-for-rhel-9-x86_64-rpms
          rhsm_username: "myusername"
          rhsm_password: "p@55w0rd!"
          rhsm_org_id: "1234567"
          rhsm_pool_ids: "55d251f1490556f3e75aa37e89e10ce5"
          rhsm_method: "portal"
          rhsm_release: 9.2
      CephStorageParameters:
        RhsmVars:
          rhsm_repos:
            - rhel-9-for-x86_64-baseos-rpms
            - rhel-9-for-x86_64-appstream-rpms
            - rhel-9-for-x86_64-highavailability-rpms
            - openstack-17.1-deployment-tools-for-rhel-9-x86_64-rpms
          rhsm_username: "myusername"
          rhsm_password: "p@55w0rd!"
          rhsm_org_id: "1234567"
          rhsm_pool_ids: "68790a7aa2dc9dc50a9bc39fabc55e0d"
          rhsm_method: "portal"
          rhsm_release: 9.2
    Copy to Clipboard Toggle word wrap

    resource_registryrhsm 可组合服务与 OS::TripleO::Services::Rhsm 资源相关联,该资源可在每个角色上可用。

    ControllerParametersComputeParametersCephStorageParameters 参数各自使用单独的 RhsmVars 参数,将订阅详情传递给对应的角色。

    注意

    CephStorageParameters 参数中设置 RhsmVars 参数,以使用特定于 Ceph Storage 的 Red Hat Ceph Storage 订阅和存储库。确保 rhsm_repos 参数包含标准 Red Hat Enterprise Linux 存储库,而不是 Controller 和 Compute 节点所需的增强扩展更新服务(EEUS)存储库。

  3. 保存环境文件。

9.1.5. 将 overcloud 注册到 Red Hat Satellite 服务器

创建一个环境文件,启用并配置 rhsm 可组合服务,以将节点注册到 Red Hat Satellite,而不是红帽客户门户。

流程

  1. 创建名为 templates/rhsm.yml 的环境文件,以存储配置。
  2. 在环境文件中包含您的配置。例如:

    resource_registry:
      OS::TripleO::Services::Rhsm: /usr/share/openstack-tripleo-heat-templates/deployment/rhsm/rhsm-baremetal-ansible.yaml
    parameter_defaults:
      RhsmVars:
        rhsm_activation_key: "myactivationkey"
        rhsm_method: "satellite"
        rhsm_org_id: "ACME"
        rhsm_server_hostname: "satellite.example.com"
        rhsm_baseurl: "https://satellite.example.com/pulp/repos"
        rhsm_release: 9.2
    Copy to Clipboard Toggle word wrap

    resource_registryrhsm 可组合服务与 OS::TripleO::Services::Rhsm 资源相关联,该资源可在每个角色上可用。

    RhsmVars 变量向 Ansible 传递参数来配置红帽注册。

  3. 保存环境文件。

9.1.6. 切换到 rhsm 可组合服务

前面的 rhel-registration 方法运行 bash 脚本来处理 overcloud 注册。此方法的脚本和环境文件位于位于 /usr/share/openstack-tripleo-heat-templates/extraconfig/pre_deploy/rhel-registration/ 的核心 heat 模板集合中。

完成以下步骤,从 rhel-registration 方法切换到 rhsm 可组合服务。

流程

  1. 从将来的部署操作中排除 rhel-registration 环境文件。在大多数情况下,排除以下文件:

    • rhel-registration/environment-rhel-registration.yaml
    • rhel-registration/rhel-registration-resource-registry.yaml
  2. 如果您使用自定义 roles_data 文件,请确保 roles_data 文件中的每个角色都包含 OS::TripleO::Services::Rhsm 可组合服务。例如:

    - name: Controller
      description: |
        Controller role that has all the controller services loaded and handles
        Database, Messaging and Network functions.
      CountDefault: 1
      ...
      ServicesDefault:
        ...
        - OS::TripleO::Services::Rhsm
        ...
    Copy to Clipboard Toggle word wrap
  3. rhsm 可组合服务参数添加环境文件,以备将来部署操作。

此方法将 rhel-registration 参数替换为 rhsm 服务参数,并更改启用该服务的 heat 资源:

resource_registry:
  OS::TripleO::NodeExtraConfig: rhel-registration.yaml
Copy to Clipboard Toggle word wrap

至:

resource_registry:
  OS::TripleO::Services::Rhsm: /usr/share/openstack-tripleo-heat-templates/deployment/rhsm/rhsm-baremetal-ansible.yaml
Copy to Clipboard Toggle word wrap

您还可以在部署中包含 /usr/share/openstack-tripleo-heat-templates/environments/rhsm.yaml 环境文件以启用该服务。

9.1.7. rhel-registration 到 rhsm 映射

要帮助将您的详情从 rhel-registration 方法转换为 rhsm 方法,请使用下表来映射您的参数和值。

Expand
rhel-registrationrhsm / RhsmVars

rhel_reg_method

rhsm_method

rhel_reg_org

rhsm_org_id

rhel_reg_pool_id

rhsm_pool_ids

rhel_reg_activation_key

rhsm_activation_key

rhel_reg_auto_attach

rhsm_autosubscribe

rhel_reg_sat_url

rhsm_satellite_url

rhel_reg_repos

rhsm_repos

rhel_reg_user

rhsm_username

rhel_reg_password

rhsm_password

rhel_reg_release

rhsm_release

rhel_reg_http_proxy_host

rhsm_rhsm_proxy_hostname

rhel_reg_http_proxy_port

rhsm_rhsm_proxy_port

rhel_reg_http_proxy_username

rhsm_rhsm_proxy_user

rhel_reg_http_proxy_password

rhsm_rhsm_proxy_password

9.1.8. 使用 rhsm 可组合服务部署 overcloud

使用 rhsm 可组合服务部署 overcloud,以便 Ansible 控制 overcloud 节点的注册过程。

流程

  1. 使用 openstack overcloud deploy 命令包含 rhsm.yml 环境文件:

    openstack overcloud deploy \
        <other cli args> \
        -e ~/templates/rhsm.yaml
    Copy to Clipboard Toggle word wrap

    这将启用 overcloud 和基于 Ansible 的注册的 Ansible 配置。

  2. 等待 overcloud 部署完成。
  3. 检查 overcloud 节点上的订阅详情。例如,登录到 Controller 节点并运行以下命令:

    $ sudo subscription-manager status
    $ sudo subscription-manager list --consumed
    Copy to Clipboard Toggle word wrap

9.1.9. 手动运行基于 Ansible 的注册

您可以使用 director 节点上的动态清单脚本对部署的 overcloud 执行基于 Ansible 的手动注册。使用此脚本将节点角色定义为主机组,然后使用 ansible-playbook 对它们运行 playbook。使用以下示例 playbook 来手动注册 Controller 节点。

流程

  1. 创建一个使用 redhat_subscription 模块注册节点的 playbook。例如,以下 playbook 适用于 Controller 节点:

    ---
    - name: Register Controller nodes
      hosts: Controller
      become: yes
      vars:
        repos:
          - rhel-9-for-x86_64-baseos-e4s-rpms
          - rhel-9-for-x86_64-appstream-e4s-rpms
          - rhel-9-for-x86_64-highavailability-e4s-rpms
          - openstack-17.1-for-rhel-9-x86_64-rpms
          - fast-datapath-for-rhel-9-x86_64-rpms
      tasks:
        - name: Register system
          redhat_subscription:
            username: myusername
            password: p@55w0rd!
            org_id: 1234567
            release: 9.2
            pool_ids: 1a85f9223e3d5e43013e3d6e8ff506fd
        - name: Disable all repos
          command: "subscription-manager repos --disable *"
        - name: Enable Controller node repos
          command: "subscription-manager repos --enable {{ item }}"
          with_items: "{{ repos }}"
    Copy to Clipboard Toggle word wrap
    • 此 play 包含三个任务:

      • 注册节点。
      • 禁用任何启用了自动的仓库。
      • 仅启用与 Controller 节点相关的存储库。存储库通过 repos 变量列出。
  2. 部署 overcloud 后,您可以运行以下命令,以便 Ansible 对您的 overcloud 执行 playbook (ansible-osp-registration.yml):

    $ ansible-playbook -i /usr/bin/tripleo-ansible-inventory ansible-osp-registration.yml
    Copy to Clipboard Toggle word wrap

    这个命令执行以下操作:

    • 运行动态清单脚本以获取主机及其组的列表。
    • 将 playbook 任务应用到 playbook 的 hosts 参数中定义的组中的节点,本例中为 Controller 组。
返回顶部
Red Hat logoGithubredditYoutubeTwitter

学习

尝试、购买和销售

社区

关于红帽文档

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

让开源更具包容性

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

關於紅帽

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

Theme

© 2026 Red Hat