3.3. 部署 overcloud
使用您创建的环境文件部署 overcloud。
流程
创建 overcloud 需要额外的参数来用于
openstack overcloud deploy
命令:$ openstack overcloud deploy --templates \ -e /usr/share/openstack-tripleo-heat-templates/environments/external-ceph.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/external-ceph.yaml
- 设置 director 以将现有的 Ceph Storage 集群集成到 overcloud。 -
-e /home/stack/templates/ceph-config.yaml
- 添加自定义环境文件来覆盖由-e /usr/share/openstack-tripleo-heat-templates/environments/external-ceph.yaml
设置的默认值。 -
--ntp-server pool.ntp.org
- 设置 NTP 服务器。
-
3.3.1. 使用 CephFS 为共享文件系统服务添加环境文件
如果部署使用带有 CephFS 的共享文件系统服务(manila)的 overcloud,您必须添加额外的环境文件。
流程
创建并添加额外环境文件:
-
如果您部署使用原生 CephFS 后端驱动程序的 overcloud,请添加
/usr/share/openstack-tripleo-heat-templates/environments/manila-cephfsnative-config.yaml
。 如果您部署使用 CephFS-NFS 的 overcloud,请添加
/usr/share/openstack-tripleo-heat-templates/environments/manila-cephfsganesha-config.yaml
。红帽建议您使用导出共享的隔离 StorageNFS 网络部署 CephFS-NFS 驱动程序。您必须将隔离网络部署到 overcloud Controller 节点。有关创建 StorageNFS 网络并更新角色的详情,请参考 自定义 Red Hat OpenStack Platform 部署中的可组合网络。https://access.redhat.com/documentation/zh-cn/red_hat_openstack_platform/17.1/html/customizing_your_red_hat_openstack_platform_deployment/assembly_customizing-networks-for-the-rhosp-environment#assembly_composable-networks__custom-nic-templates
-
如果您部署使用原生 CephFS 后端驱动程序的 overcloud,请添加
根据您使用的 CephFS 后端,修改
openstack overcloud deploy
命令。对于原生 CephFS:
$ openstack overcloud deploy --templates \ -e /usr/share/openstack-tripleo-heat-templates/environments/external-ceph.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 ...
对于 CephFS-NFS:
$ openstack overcloud deploy --templates \ -r /home/stack/custom_roles.yaml \ -e /usr/share/openstack-tripleo-heat-templates/environments/external-ceph.yaml \ -e /usr/share/openstack-tripleo-heat-templates/environments/manila-cephfsganesha-config.yaml \ -e /home/stack/templates/ceph-config.yaml \ -e /home/stack/templates/overcloud-networks-deployed.yaml\ -e /home/stack/templates/overcloud-vip-deployed.yaml \ -e --ntp-server pool.ntp.org ...
注意自定义
ceph-config.yaml
环境文件会覆盖external-ceph.yaml
文件中的参数,以及manila-cephfsnative-config.yaml
文件或manila-cephfsganesha-config.yaml
文件中的参数。因此,在external-ceph.yaml
和manila-cephfsnative-config.yaml
或manila-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" 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:
-
根据您的具体环境,替换
<cluster_ID>
,<IP_address>
, 和<client_key>
的值。
-
根据您的具体环境,替换
其他资源
- 有关生成自定义角色文件的更多信息,请参阅使用 CephFS-NFS 部署共享文件系统服务。
3.3.2. 为对象存储添加外部 Ceph 对象网关(RGW)的额外环境文件
如果部署使用已存在的 RGW 服务进行对象存储的 overcloud,您必须添加额外的环境文件。
流程
将以下
parameter_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_keystone_admin_password
将外部 RGW 实例配置为使用同一密码与 Identity 服务进行身份验证。
-
远程 RGW 实例的默认端口为
将以下代码添加到 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_s3_auth_use_keystone = true rgw_swift_versioning_enabled = true rgw_swift_account_in_url = true rgw_max_attr_name_len = 128 rgw_max_attrs_num_in_req = 90 rgw_max_attr_size = 256 rgw_keystone_verify_ssl = false
注意director 默认在 Identity 服务中创建以下角色和用户:
- rgw_keystone_accepted_admin_roles: ResellerAdmin, swiftoperator
- rgw_keystone_admin_domain: default
- rgw_keystone_admin_project: service
- rgw_keystone_admin_user: swift
使用与部署相关的任何其他环境文件部署 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