3.5. 部署 overcloud


注意

在 undercloud 安装过程中,在 undercloud.conf 文件中设置 generate_service_certificate=false。否则,必须在部署 overcloud 时注入信任定位器。有关如何注入信任定位器的更多信息,请参阅高级 Overcloud 自定义指南中的 在 Overcloud 公共端点上启用 SSL/TLS

流程

  • 创建 overcloud 需要 openstack overcloud deploy 命令的额外参数:

    $ openstack overcloud deploy --templates \
      -e /usr/share/openstack-tripleo-heat-templates/environments/ceph-ansible/ceph-ansible-external.yaml \
      -e /home/stack/templates/ceph-config.yaml \
      -e --ntp-server pool.ntp.org \

    这个示例命令使用以下选项:

  • --templates - 从默认 heat 模板集合 /usr/share/openstack-tripleo-heat-templates/ 创建 overcloud。
  • -e /usr/share/openstack-tripleo-heat-templates/environments/ceph-ansible/ceph-ansible-external.yaml - 设置 director 以将现有的 Ceph 集群整合到 overcloud。
  • -e /home/stack/templates/ceph-config.yaml - 添加自定义环境文件以覆盖 -e /usr/share/openstack-tripleo-heat-templates/environments/ceph-ansible/ceph-ansible-external.yaml 设定的默认值。在这种情况下,它是您在 第 3.1 节 “安装 ceph-ansible 软件包” 中创建的自定义环境文件。
  • --NTP-server pool.ntp.org - 设置 NTP 服务器。

3.5.1. 为 CephFS 支持的共享文件系统服务添加额外的环境文件

如果部署使用 CephFS 支持的共享文件系统服务的 overcloud,您必须添加额外的环境文件。

流程

  1. 使用以下选项之一创建并添加额外环境文件:

    • 如果部署使用原生 CephFS 后端驱动程序的 overcloud,请使用 /usr/share/openstack-tripleo-heat-templates/environments/manila-cephfsnative-config.yaml
    • 如果您通过 NFS 部署使用 CephFS 的 overcloud,请使用 /usr/share/openstack-tripleo-heat-templates/environments/manila-cephfsganesha-config.yaml

      对于通过 NFS 的 CephFS,还必须部署自定义 Controller 角色,才能将 Ganesha CephFS 运行到 NFS 网关。此角色还配置隔离的 StorageNFS 网络,以向客户端提供共享。有关 StorageNFS 网络和自定义 Controller 角色的更多信息 请参阅 CephFS via NFS Back End Guide for the Shared File Systems Service 中的 Deploying the updated environment

  2. 根据您使用的 CephFS 后端,更改 openstack overcloud deploy 命令的形式。

    • 对于原生 CephFS:

       $ openstack overcloud deploy --templates \
         -e /usr/share/openstack-tripleo-heat-templates/environments/ceph-ansible/ceph-ansible-external.yaml \
         -e /usr/share/openstack-tripleo-heat-templates/environments/manila-cephfsnative-config.yaml \
         -e /home/stack/templates/ceph-config.yaml \
         -e --ntp-server pool.ntp.org
    • 通过 NFS 使用 CephFS:

        $ openstack overcloud deploy --templates \
            -n /usr/share/openstack-tripleo-heat-templates/network_data_ganesha.yaml \
            -r /home/stack/custom_roles.yaml \
            -e /usr/share/openstack-tripleo-heat-templates/environments/ceph-ansible/ceph-ansible-external.yaml \
            -e /usr/share/openstack-tripleo-heat-templates/environments/manila-cephfsganesha-config.yaml \
            -e /home/stack/templates/ceph-config.yaml \
            -e --ntp-server pool.ntp.org
注意

自定义 ceph-config.yaml 环境文件会覆盖 ceph-ansible-external.yaml 文件中的参数,以及 manila-cephfsnative-config.yaml 文件或 manila-cephfsganesha-config.yaml 文件。因此,在 ceph-ansible-external.yamlmanila-cephfsnative-config.yamlmanila-cephfsganesha-config.yaml 后的部署命令中包含自定义 ceph-config.yaml 环境文件。

环境文件示例

parameter_defaults:
    CinderEnableIscsiBackend: false
    CinderEnableRbdBackend: true
    CinderEnableNfsBackend: false
    NovaEnableRbdBackend: true
    GlanceBackend: rbd
    CinderRbdPoolName: "volumes"
    NovaRbdPoolName: "vms"
    GlanceRbdPoolName: "images"
    CinderBackupRbdPoolName: "backups"
    GnocchiRbdPoolName: "metrics"
    CephClusterFSID: <cluster_ID>
    CephExternalMonHost: <IP_address>,<IP_address>,<IP_address>
    CephClientKey: "<client_key>"
    CephClientUserName: "openstack"
    ManilaCephFSDataPoolName: manila_data
    ManilaCephFSMetadataPoolName: manila_metadata
    ManilaCephFSCephFSAuthId: 'manila'
    CephManilaClientKey: '<client_key>'
    ExtraConfig:
        ceph::profile::params::rbd_default_features: '1'

  • 将变量 < cluster_ID& gt;、< IP_address > 和 & lt;client_key > 替换为适合您的环境的值。

3.5.2. 为外部 Ceph 对象网关(RGW)添加额外的环境文件以用于对象存储

如果部署使用已存在的 RGW 服务进行 Object storage 的 overcloud,您必须添加额外的环境文件。

流程

  1. 以下参数_defaults 添加到自定义环境文件,如 swift-external-params.yaml。替换要适合您的部署的值:

    parameter_defaults:
       ExternalSwiftPublicUrl: 'http://<Public RGW endpoint or loadbalancer>:8080/swift/v1/AUTH_%(project_id)s'
       ExternalSwiftInternalUrl: 'http://<Internal RGW endpoint>:8080/swift/v1/AUTH_%(project_id)s'
       ExternalSwiftAdminUrl: 'http://<Admin RGW endpoint>:8080/swift/v1/AUTH_%(project_id)s'
       ExternalSwiftUserTenant: 'service'
       SwiftPassword: 'choose_a_random_password'
    注意

    示例代码片段包含的参数值,可能与您在环境中使用的值不同:

    • 远程 RGW 实例侦听的默认端口为 8080。端口可能会因配置外部 RGW 的配置而有所不同。
    • overcloud 中创建的 swift 用户使用 SwiftPassword 参数所定义的密码。您必须将外部 RGW 实例配置为使用同密码相同的密码,以便使用 rgw_keystone_admin_password 进行身份服务进行身份验证。
  2. 将以下代码添加到 Ceph 配置文件中,将 RGW 配置为使用 Identity 服务。替换变量值以适合您的环境:

        rgw_keystone_api_version = 3
        rgw_keystone_url = http://<public Keystone endpoint>:5000/
        rgw_keystone_accepted_roles = member, Member, admin
        rgw_keystone_accepted_admin_roles = ResellerAdmin, swiftoperator
        rgw_keystone_admin_domain = default
        rgw_keystone_admin_project = service
        rgw_keystone_admin_user = swift
        rgw_keystone_admin_password = <password_as_defined_in_the_environment_parameters>
        rgw_keystone_implicit_tenants = true
        rgw_keystone_revocation_interval = 0
        rgw_s3_auth_use_keystone = true
        rgw_swift_versioning_enabled = true
        rgw_swift_account_in_url = true
    注意

    director 默认在身份服务中创建以下角色和用户:

    • rgw_keystone_accepted_admin_roles: ResellerAdmin, swiftoperator
    • rgw_keystone_admin_domain: default
    • rgw_keystone_admin_project: service
    • rgw_keystone_admin_user: swift
  3. 使用与部署相关的任何其他环境文件部署 overcloud:

    openstack overcloud deploy --templates \
    -e <your_environment_files>
    -e /usr/share/openstack-tripleo-heat-templates/environments/swift-external.yaml
    -e swift-external-params.yaml

3.5.3. 调用模板和环境文件

您还可以使用回答文件来调用所有模板和环境文件。例如,您可以使用以下命令部署相同的 overcloud:

$ openstack overcloud deploy \
  --answers-file /home/stack/templates/answers.yaml \
  --ntp-server pool.ntp.org

在这种情况下,该文件 /home/stack/templates/answers.yaml 包含:

templates: /usr/share/openstack-tripleo-heat-templates/
environments:
  - /usr/share/openstack-tripleo-heat-templates/environments/ceph-ansible/ceph-ansible-external.yaml \
  - /home/stack/templates/ceph-config.yaml \

如需更多信息,请参阅 Director 安装和使用指南中的将 overcloud 部署包含环境文件

3.5.4. OpenStack overcloud 部署命令选项

您可以输入以下命令查看可与 openstack overcloud deploy 命令一起使用的完整选项列表:

$ openstack help overcloud deploy

如需更多信息,请参阅 Director 安装和使用指南中的使用 CLI 工具配置基本的 overcloud

3.5.5. 查看 overcloud 创建的状态

overcloud 创建过程开始,director 置备您的节点。完成此过程需要一些时间。

流程

要查看 overcloud 创建的状态,请以 stack 用户身份打开一个单独的终端并输入以下命令:

$ source ~/stackrc
$ openstack stack list --nested
Red Hat logoGithubRedditYoutubeTwitter

学习

尝试、购买和销售

社区

关于红帽文档

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

让开源更具包容性

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

關於紅帽

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

© 2024 Red Hat, Inc.