Chapter 6. Ansible-based overcloud registration
This feature is available in this release as a Technology Preview, and therefore is not fully supported by Red Hat. It should only be used for testing, and should not be deployed in a production environment. For more information about Technology Preview features, see Scope of Coverage Details.
As an alternative to the rhel-registration
method from Chapter 5, Overcloud Registration, the director can use an Ansible-based method to register overcloud nodes to the Red Hat Customer Portal or a Red Hat Satellite 6 server. This method relies on enabling Ansible-based configuration (config-download
) in the overcloud.
6.1. Red Hat Subscription Manager (RHSM) composable service
The rhsm
composable service provides a method to register overcloud nodes through Ansible. Each role in the default roles_data
file contains a OS::TripleO::Services::Rhsm
resource, which is disabled by default. To enable the service, you register the resource to the rhsm
composable service file. For example:
resource_registry: OS::TripleO::Services::Rhsm: /usr/share/openstack-tripleo-heat-templates/extraconfig/services/rhsm.yaml
The rhsm
composable service accepts a RhsmVars
parameter, which allows you to define multiple sub-parameters relevant to your registration. For example:
parameter_defaults: RhsmVars: rhsm_repos: - rhel-7-server-rpms - rhel-7-server-extras-rpms - rhel-7-server-rh-common-rpms - rhel-ha-for-rhel-7-server-rpms - rhel-7-server-openstack-13-rpms - rhel-7-server-rhceph-3-osd-rpms - rhel-7-server-rhceph-3-mon-rpms - rhel-7-server-rhceph-3-tools-rpms rhsm_activation_key: "my-openstack" rhsm_org_id: "1234567"
You can also use the RhsmVars
parameter in combination with role-specific parameters (e.g. ControllerParameters
) to provide flexibility when enabling specific repositories for different nodes types.
The next section is a list of sub-parameters available to use with the RhsmVars
parameter for use with the rhsm
composable service.
6.2. RhsmVars sub-parameters
rhsm | Description |
---|---|
|
Choose the registration method. Either |
|
The organization to use for registration. To locate this ID, run |
|
The subscription pool ID to use. Use this if not auto-attaching subscriptions. To locate this ID, run |
| The activation key to use for registration. |
|
Automatically attach compatible subscriptions to this system. Set to |
| The base URL of the Satellite server to register Overcloud nodes. |
| A list of repositories to enable. |
| The username for registration. If possible, use activation keys for registration. |
| The password for registration. If possible, use activation keys for registration. |
|
The hostname for the HTTP proxy. For example: |
|
The port for HTTP proxy communication. For example: |
| The username to access the HTTP proxy. |
| The password to access the HTTP proxy. |
Now that you have an understanding of how the rhsm
composable service works and how to configure it, you can use the following procedures to configure your own registration details.
6.3. Registering the overcloud with the rhsm composable service
Use the following procedure to create an environment file that enables and configures the rhsm
composable service. The director uses this environment file to register and subscribe your nodes.
Procedure
-
Create an environment file (
templates/rhsm.yml
) to store the configuration. Include your configuration in the environment file. For example:
resource_registry: OS::TripleO::Services::Rhsm: /usr/share/openstack-tripleo-heat-templates/extraconfig/services/rhsm.yaml parameter_defaults: RhsmVars: rhsm_repos: - rhel-7-server-rpms - rhel-7-server-extras-rpms - rhel-7-server-rh-common-rpms - rhel-ha-for-rhel-7-server-rpms - rhel-7-server-openstack-13-rpms - rhel-7-server-rhceph-3-osd-rpms - rhel-7-server-rhceph-3-mon-rpms - rhel-7-server-rhceph-3-tools-rpms rhsm_activation_key: "my-openstack" rhsm_org_id: "1234567" rhsm_pool_ids: "1a85f9223e3d5e43013e3d6e8ff506fd" rhsm_method: "portal"
The
resource_registry
associates therhsm
composable service with theOS::TripleO::Services::Rhsm
resource, which is available on each role.The
RhsmVars
variable passes parameters to Ansible for configuring your Red Hat registration.- Save the environment file
You can also provide registration details to specific overcloud roles. The next section provides an example of this.
6.4. Applying the rhsm composable service to different roles
You can apply the rhsm
composable service on a per-role basis. For example, you can apply one set of configuration to Controller nodes and a different set of configuration to Compute nodes.
Procedure
-
Create an environment file (
templates/rhsm.yml
) to store the configuration. Include your configuration in the environment file. For example:
resource_registry: OS::TripleO::Services::Rhsm: /usr/share/openstack-tripleo-heat-templates/extraconfig/services/rhsm.yaml parameter_defaults: ControllerParameters: RhsmVars: rhsm_repos: - rhel-7-server-rpms - rhel-7-server-extras-rpms - rhel-7-server-rh-common-rpms - rhel-ha-for-rhel-7-server-rpms - rhel-7-server-openstack-13-rpms - rhel-7-server-rhceph-3-osd-rpms - rhel-7-server-rhceph-3-mon-rpms - rhel-7-server-rhceph-3-tools-rpms rhsm_activation_key: "my-openstack" rhsm_org_id: "1234567" rhsm_pool_ids: "1a85f9223e3d5e43013e3d6e8ff506fd" rhsm_method: "portal" ComputeParameters: RhsmVars: rhsm_repos: - rhel-7-server-rpms - rhel-7-server-extras-rpms - rhel-7-server-rh-common-rpms - rhel-ha-for-rhel-7-server-rpms - rhel-7-server-openstack-13-rpms - rhel-7-server-rhceph-3-tools-rpms rhsm_activation_key: "my-openstack" rhsm_org_id: "1234567" rhsm_pool_ids: "1a85f9223e3d5e43013e3d6e8ff506fd" rhsm_method: "portal"
The
resource_registry
associates therhsm
composable service with theOS::TripleO::Services::Rhsm
resource, which is available on each role.Both
ControllerParameters
andComputeParameters
use their ownRhsmVars
parameter to pass subscription details to their respective roles.- Save the environment file
6.5. Registering the overcloud to Red Hat Satellite Server
Create an environment file that enables and configures the rhsm
composable service to register nodes to Red Hat Satellite instead of the Red Hat Customer Portal.
Procedure
-
Create an environment file named
templates/rhsm.yml
to store the configuration. Include your configuration in the environment file. For example:
resource_registry: OS::TripleO::Services::Rhsm: /usr/share/openstack-tripleo-heat-templates/extraconfig/services/rhsm.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: 7.9
The
resource_registry
associates therhsm
composable service with theOS::TripleO::Services::Rhsm
resource, which is available on each role.The
RhsmVars
variable passes parameters to Ansible for configuring your Red Hat registration.- Save the environment file.
These procedures enable and configure rhsm
on the overcloud. However, if you are using the rhel-registration
method from Chapter 5, Overcloud Registration, you must disable it to switch to the Ansible-based method. Use the following procedure to switch from the rhel-registration
method to the Ansible-based method.
6.6. Switching to the rhsm composable service
The rhel-registration
method which runs a bash script to handle the overcloud registration. The scripts and environment files for this method are located in the core Heat template collection at /usr/share/openstack-tripleo-heat-templates/extraconfig/pre_deploy/rhel-registration/
.
This procedure shows how to switch from the rhel-registration
method to the rhsm
composable service.
Procedure
Exclude the
rhel-registration
environment files from future deployments operations. In most cases, this will be the following files:-
rhel-registration/environment-rhel-registration.yaml
-
rhel-registration/rhel-registration-resource-registry.yaml
-
-
Add the environment file for
rhsm
composable service parameters to future deployment operations.
This method replaces the rhel-registration
parameters with the rhsm
service parameters and changes the Heat resource that enables the service from:
resource_registry: OS::TripleO::NodeExtraConfig: rhel-registration.yaml
To:
resource_registry: OS::TripleO::Services::Rhsm: /usr/share/openstack-tripleo-heat-templates/extraconfig/services/rhsm.yaml
To help transition your details from the rhel-registration
method to the rhsm
method, use the following table to map the your parameters and their values.
6.7. rhel-registration to rhsm mappings
rhel-registration | rhsm / RhsmVars |
---|---|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Now that you have configured the environment file for the rhsm
service, you can include it with your next overcloud deployment operation.
6.8. Deploying the overcloud with the rhsm composable service
This process shows how to apply your rhsm
configuration to the overcloud.
Procedure
When running the
openstack overcloud deploy
command, include theconfig-download
option and environment file and therhsm.yml
environment file:openstack overcloud deploy \ <other cli args> \ -e /usr/share/openstack-tripleo-heat-templates/environments/config-download-environment.yaml \ --config-download \ -e ~/templates/rhsm.yaml
This enables the Ansible configuration of the overcloud and the Ansible-based registration.
- Wait until the overcloud deployment completes.
Check the subscription details on your overcloud nodes. For example, log into a Controller node and run the following commands:
$ sudo subscription-manager status $ sudo subscription-manager list --consumed