Chapter 3. Integrating with the existing Ceph Storage cluster The Red Hat OpenStack Platform director uses ceph-ansible to integrate with an existing Ceph Storage cluster, but ceph-ansible is not installed by default on the undercloud. 3.1. Installing the ceph-ansible package Procedure Enter the following command to install the ceph-ansible package on the undercloud: 3.2. Creating a custom environment file Director supplies parameters to ceph-ansible to integrate with an external Ceph Storage cluster through the environment file: /usr/share/openstack-tripleo-heat-templates/environments/ceph-ansible/ceph-ansible-external.yaml If you are deploying the Shared File System with CephFS through NFS, director also supplies parameters through another environment file: /usr/share/openstack-tripleo-heat-templates/environments/manila-cephfsganesha-config.yaml These environment files are invoked during deployment ( Section 3.5, "Deploying the overcloud" ) to integrate an existing Ceph Storage cluster with the overcloud being deployed. To configure integration, you must supply the details of your Ceph Storage cluster to director. To do this, use a custom environment file to override the default settings supplied by these environment files. Procedure Create a custom environment file: /home/stack/templates/ceph-config.yaml Add a parameter_defaults: header to the file: Under this header, set all of the parameters that you want to override in /usr/share/openstack-tripleo-heat-templates/environments/ceph-ansible/ceph-ansible-external.yaml . At a minimum, you must set the following: CephClientKey : the Ceph client key of your Ceph Storage cluster. This is the value of key you retrieved earlier in Section 2.1, "Configuring the existing Ceph Storage cluster" . For example, AQDLOh1VgEp6FRAAFzT7Zw+Y9V6JJExQAsRnRQ== . CephClusterFSID : the file system ID of your Ceph Storage cluster. This is the value of fsid in your Ceph Storage cluster configuration file, which you retrieved earlier in Section 2.1, "Configuring the existing Ceph Storage cluster" . For example, 4b5c8c0a-ff60-454b-a1b4-9747aa737d19 . CephExternalMonHost : a comma-delimited list of the IPs of all MON hosts in your Ceph Storage cluster. For example, 172.16.1.7, 172.16.1.8 . If necessary, override the default pool names or the name of the OpenStack Platform client user to match your Ceph Storage cluster: CephClientUserName: openstack NovaRbdPoolName: vms CinderRbdPoolName: volumes GlanceRbdPoolName: images CinderBackupRbdPoolName: backups GnocchiRbdPoolName: metrics If you are deploying the Shared File Systems (manila) service backed by CephFS, set the names of the data and metadata pools: Note Ensure that these names match the names of the pools you created earlier. Set the client key that you created for the Shared File Systems service and the name of the Ceph user for that key: Note By default this key belongs to a user called manila and is stored as the client.manila key. You can also add overcloud parameters to your custom environment file. For example, to set vxlan as the neutron network type, add the following to parameter_defaults : After you create the custom environment file, you must include it when you deploy the overcloud. For more information about deploying the overcloud, see Deploying the overcloud . 3.3. Assigning nodes and flavors to roles Planning an overcloud deployment involves specifying how many nodes and which flavors to assign to each role. Like all Heat template parameters, these role specifications are declared in the parameter_defaults section of your custom environment file (in this case, /home/stack/templates/ceph-config from Chapter 3, Integrating with the existing Ceph Storage cluster ): For this purpose, use the following parameters: Table 3.1. Roles and Flavors for Overcloud Nodes Heat Template Parameter Description ControllerCount The number of Controller nodes to scale out OvercloudControlFlavor The flavor to use for Controller nodes ( control ) ComputeCount The number of Compute nodes to scale out OvercloudComputeFlavor The flavor to use for Compute nodes ( compute ) For example, to configure the overcloud to deploy three nodes for each role (Controller and Compute), add the following to your parameter_defaults : Note See Creating the Overcloud with the CLI Tools from the Director Installation and Usage guide for a more complete list of Heat template parameters. 3.4. Ceph containers for Red Hat OpenStack Platform with Ceph Storage A Ceph container is required to configure Red Hat OpenStack Platform (RHOSP) to use Ceph, even with an external Ceph cluster. To be compatible with Red Hat Enterprise Linux 8, RHOSP 16.0 requires Red Hat Ceph Storage 4. The Ceph Storage 4 container is hosted at registry.redhat.io, a registry which requires authentication. You can use the heat environment parameter ContainerImageRegistryCredentials to authenticate at registry.redhat.io , as described in Container image preparation parameters . 3.5. Deploying the overcloud Note During undercloud installation, set generate_service_certificate=false in the undercloud.conf file. Otherwise, you must inject a trust anchor when you deploy the overcloud. For more information about how to inject a trust anchor, see Enabling SSL/TLS on Overcloud Public Endpoints in the Advanced Overcloud Customization guide. The creation of the overcloud requires additional arguments for the openstack overcloud deploy command. For example: The above command uses the following options: --templates - Creates the overcloud from the default Heat template collection (namely, /usr/share/openstack-tripleo-heat-templates/ ). -e /usr/share/openstack-tripleo-heat-templates/environments/ceph-ansible/ceph-ansible-external.yaml - Sets the director to integrate an existing Ceph cluster to the overcloud. -e /home/stack/templates/ceph-config.yaml - Adds a custom environment file to override the defaults set by -e /usr/share/openstack-tripleo-heat-templates/environments/ceph-ansible/ceph-ansible-external.yaml . In this case, it is the custom environment file you created in Chapter 3, Integrating with the existing Ceph Storage cluster . --ntp-server pool.ntp.org - Sets the NTP server. As noted earlier, deployment of the overcloud with the Shared File Systems backed by CephFS through NFS requires an additional manila-cephfsganesha-config.yaml environment file. Additionally, you must deploy a custom Controller role to run the Ganesha CephFS to NFS gateway and to set up an isolated StorageNFS network to deliver shares to clients. In this configuration, the openstack overcloud deploy command has the following form: Note The custom ceph-config.yaml environment file overrides parameters in the ceph-ansible-external.yaml file and the manila-cephfsganesha-config.yaml file. Therefore, include the custom ceph-config.yaml environment file in the deployment command after ceph-ansible-external.yaml and manila-cephfsganesha-config.yaml . For information about the StorageNFS network and the custom Controller role required to deploy the Shared File Systems backed by CephFS through NFS, see Deploying the updated environment . Tip You can also use an answers file to invoke all your templates and environment files. For example, you can use the following command to deploy an identical overcloud: In this case, the answers file /home/stack/templates/answers.yaml contains: See Including environment files in an overcloud deployment for more details. For a full list of options, run: For more information, see Configuring a basic overcloud with the CLI tools in the Director Installation and Usage guide. The overcloud creation process begins and the director provisions your nodes. This process takes some time to complete. To view the status of the Overcloud creation, open a separate terminal as the stack user and run: This configures the Overcloud to use your external Ceph Storage cluster. Note that you manage this cluster independently from the Overcloud. For example, you scale the Ceph Storage cluster using the Ceph management tools and not through the OpenStack Platform director.

Commands:
sudo dnf install -y ceph-ansible
parameter_defaults:
parameter_defaults: CephClientKey: AQDLOh1VgEp6FRAAFzT7Zw+Y9V6JJExQAsRnRQ== CephClusterFSID: 4b5c8c0a-ff60-454b-a1b4-9747aa737d19 CephExternalMonHost: 172.16.1.7, 172.16.1.8
ManilaCephFSDataPoolName: manila_data ManilaCephFSMetadataPoolName: manila_metadata
ManilaCephFSCephFSAuthId: 'manila' CephManilaClientKey: 'AQDQ991cAAAAABAA0aXFrTnjH9aO39P0iVvYyg=='
NeutronNetworkType: vxlan
parameter_defaults: ControllerCount: 3 ComputeCount: 3 OvercloudControlFlavor: control OvercloudComputeFlavor: compute
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 \
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
openstack overcloud deploy --answers-file /home/stack/templates/answers.yaml --ntp-server pool.ntp.org
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 \
openstack help overcloud deploy
source ~/stackrc openstack stack list --nested