Red Hat Training
A Red Hat training course is available for Red Hat OpenStack Platform
Chapter 5. Overcloud Registration
The Overcloud provides a method to register nodes to either the Red Hat Content Delivery Network, Red Hat Satellite Server 5, or Red Hat Satellite Server 6.
5.1. Registering the Overcloud with an Environment File
Copy the registration files from the Heat template collection:
$ cp -r /usr/share/openstack-tripleo-heat-templates/extraconfig/pre_deploy/rhel-registration ~/templates/.
Edit the ~/templates/rhel-registration/environment-rhel-registration.yaml
file and change the values of the parameters that apply to your registration method and details.
General Parameters
- rhel_reg_method
-
Choose the registration method. Either
portal
,satellite
, ordisable
. - rhel_reg_type
-
The type of unit to register. Leave blank to register as a
system
- rhel_reg_auto_attach
-
Automatically attach compatible subscriptions to this system. Set to
true
to enable. To disable this feature, leave this parameter blank. - rhel_reg_service_level
- The service level that you want to use for auto attachment.
- rhel_reg_release
- Use this parameter to set a release version for auto attachment. Leave blank to use the default from Red Hat Subscription Manager.
- rhel_reg_pool_id
-
The subscription pool ID that you want to use. Use this if not auto-attaching subscriptions. To locate this ID, run
sudo subscription-manager list --available --all --matches="*OpenStack*"
from the undercloud node, and use the resultingPool ID
value. - rhel_reg_sat_url
-
The base URL of the Satellite Server that you want to register the Overcloud nodes with. Use the Satellite Server HTTP URL and not the HTTPS URL for this parameter. For example, use http://satellite.example.com and not https://satellite.example.com. The Overcloud creation process uses this URL to determine whether you are using Red Hat Satellite Server 5 or Red Hat Satellite Server 6. When using Red Hat Satellite Server 6, the Overcloud obtains the
katello-ca-consumer-latest.noarch.rpm
file, registers withsubscription-manager
, and installskatello-agent
. When using Red Hat Satellite Server 5, the Overcloud obtains theRHN-ORG-TRUSTED-SSL-CERT
file and registers withrhnreg_ks
. - rhel_reg_server_url
- The hostname of the subscription service that you want to use. The default is for Customer Portal Subscription Management, subscription.rhn.redhat.com. If this option is not used, the system is registered with Customer Portal Subscription Management. The subscription server URL uses the form of https://hostname:port/prefix.
- rhel_reg_base_url
- The hostname of the content delivery server that you want to use to receive updates. The default is https://cdn.redhat.com. Since Satellite 6 hosts its own content, the URL must be used for systems registered with Satellite 6. The base URL for content uses the form of https://hostname:port/prefix.
- rhel_reg_org
-
The organization that you want to use for registration. To locate this ID, run
sudo subscription-manager orgs
from the undercloud node. Enter your Red Hat credentials when prompted, and use the resultingKey
value. - rhel_reg_environment
- The environment that you want to use within the chosen organization.
- rhel_reg_repos
- A comma-separated list of repositories to enable.
- rhel_reg_activation_key
- The activation key that you want to use for registration. When using an activation key for registration, you must also specify the organization that you want to use for registration.
- rhel_reg_user; rhel_reg_password
- The username and password that you want to use for registration. If possible, use activation keys for registration.
- rhel_reg_machine_name
- The machine name that you want to use for registration. Leave this blank if you want to use the hostname of the node.
- rhel_reg_force
-
Set to
true
to force your registration options, for example, when re-registering nodes. - rhel_reg_sat_repo
-
The repository that contains Red Hat Satellite 6 Server management tools, such as
katello-agent
. Ensure that the repository name corresponds to your Satellite Server version and that the repository is synchronized on Satellite Server. For example,rhel-7-server-satellite-tools-6.2-rpms
corresponds to Red Hat Satellite 6.2.
Upgrade Parameters
- UpdateOnRHELRegistration
-
If set to
True
, this triggers an update of the overcloud packages after registration completes. Set toFalse
by default.
HTTP Proxy Parameters
- rhel_reg_http_proxy_host
-
The hostname for the HTTP proxy. For example:
proxy.example.com
. - rhel_reg_http_proxy_port
-
The port for HTTP proxy communication. For example:
8080
. - rhel_reg_http_proxy_username
- The username to access the HTTP proxy.
- rhel_reg_http_proxy_password
- The password to access the HTTP proxy.
If using a proxy server, ensure all overcloud nodes have a route to the host defined in the rhel_reg_http_proxy_host
parameter. Without a route to this host, subscription-manager
will time out and cause deployment failure.
The deployment command (openstack overcloud deploy
) uses the -e
option to add environment files. Add both ~/templates/rhel-registration/environment-rhel-registration.yaml
and ~/templates/rhel-registration/rhel-registration-resource-registry.yaml
. For example:
$ openstack overcloud deploy --templates [...] -e /home/stack/templates/rhel-registration/environment-rhel-registration.yaml -e /home/stack/templates/rhel-registration/rhel-registration-resource-registry.yaml
Registration is set as the OS::TripleO::NodeExtraConfig
Heat resource. This means you can only use this resource for registration. See Section 4.2, “Pre-Configuration: Customizing Specific Overcloud Roles” for more information.
5.2. Example 1: Registering to the Customer Portal
The following registers the overcloud nodes to the Red Hat Customer Portal using the my-openstack
activation key and subscribes to pool 1a85f9223e3d5e43013e3d6e8ff506fd
.
parameter_defaults: rhel_reg_auto_attach: "" rhel_reg_activation_key: "my-openstack" rhel_reg_org: "1234567" rhel_reg_pool_id: "1a85f9223e3d5e43013e3d6e8ff506fd" rhel_reg_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" rhel_reg_method: "portal" rhel_reg_sat_repo: "" rhel_reg_base_url: "" rhel_reg_environment: "" rhel_reg_force: "" rhel_reg_machine_name: "" rhel_reg_password: "" rhel_reg_release: "" rhel_reg_sat_url: "" rhel_reg_server_url: "" rhel_reg_service_level: "" rhel_reg_user: "" rhel_reg_type: "" rhel_reg_http_proxy_host: "" rhel_reg_http_proxy_port: "" rhel_reg_http_proxy_username: "" rhel_reg_http_proxy_password: ""
5.3. Example 2: Registering to a Red Hat Satellite 6 Server
The following registers the overcloud nodes to a Red Hat Satellite 6 Server at sat6.example.com and uses the my-openstack
activation key to subscribe to pool 1a85f9223e3d5e43013e3d6e8ff506fd
. In this situation, the activation key also provides the repositories to enable.
parameter_defaults: rhel_reg_activation_key: "my-openstack" rhel_reg_org: "1" rhel_reg_pool_id: "1a85f9223e3d5e43013e3d6e8ff506fd" rhel_reg_method: "satellite" rhel_reg_sat_url: "http://sat6.example.com" rhel_reg_sat_repo: "rhel-7-server-satellite-tools-6.2-rpms" rhel_reg_repos: "" rhel_reg_auto_attach: "" rhel_reg_base_url: "" rhel_reg_environment: "" rhel_reg_force: "" rhel_reg_machine_name: "" rhel_reg_password: "" rhel_reg_release: "" rhel_reg_server_url: "" rhel_reg_service_level: "" rhel_reg_user: "" rhel_reg_type: "" rhel_reg_http_proxy_host: "" rhel_reg_http_proxy_port: "" rhel_reg_http_proxy_username: "" rhel_reg_http_proxy_password: ""
5.4. Example 3: Registering to a Red Hat Satellite 5 Server
The following registers the overcloud nodes to a Red Hat Satellite 5 Server at sat5.example.com, uses the my-openstack
activation key, and automatically attaches subscriptions. In this situation, the activation key also provides the repositories to enable.
parameter_defaults: rhel_reg_auto_attach: "" rhel_reg_activation_key: "my-openstack" rhel_reg_org: "1" rhel_reg_method: "satellite" rhel_reg_sat_url: "http://sat5.example.com" rhel_reg_repos: "" rhel_reg_base_url: "" rhel_reg_environment: "" rhel_reg_force: "" rhel_reg_machine_name: "" rhel_reg_password: "" rhel_reg_pool_id: "" rhel_reg_release: "" rhel_reg_server_url: "" rhel_reg_service_level: "" rhel_reg_user: "" rhel_reg_type: "" rhel_reg_sat_repo: "" rhel_reg_http_proxy_host: "" rhel_reg_http_proxy_port: "" rhel_reg_http_proxy_username: "" rhel_reg_http_proxy_password: ""
5.5. Example 4: Registering through a HTTP Proxy
The following sample parameters set the HTTP proxy settings for your desired registration method:
parameter_defaults: ... rhel_reg_http_proxy_host: "proxy.example.com" rhel_reg_http_proxy_port: "8080" rhel_reg_http_proxy_username: "proxyuser" rhel_reg_http_proxy_password: "p@55w0rd!" ...
5.6. Advanced Registration Methods
In some situations, you might aim to register different roles to different subscription types. For example, you might aim to only subscribe Controller nodes to an OpenStack Platform subscription and Ceph Storage nodes to a Ceph Storage subscription. This section provides some advanced registration methods to help with assigning separate subscriptions to different roles.
Configuration Hooks
One method is to write role-specific scripts and include them with a role-specific hook. For example, the following snippet could be added to the OS::TripleO::ControllerExtraConfigPre
resource’s template, which ensures only the Controller nodes receive these subscription details.
ControllerRegistrationConfig: type: OS::Heat::SoftwareConfig properties: group: script config: | #!/bin/sh sudo subscription-manager register --org 1234567 \ --activationkey "my-openstack" sudo subscription-manager attach --pool 1a85f9223e3d5e43013e3d6e8ff506fd sudo subscription-manager repos --enable rhel-7-server-rpms \ --enable rhel-7-server-extras-rpms \ --enable rhel-7-server-rh-common-rpms \ --enable rhel-ha-for-rhel-7-server-rpms \ --enable rhel-7-server-openstack-13-rpms \ --enable rhel-7-server-rhceph-3-mon-rpms ControllerRegistrationDeployment: type: OS::Heat::SoftwareDeployment properties: server: {get_param: server} config: {get_resource: ControllerRegistrationConfig} actions: ['CREATE','UPDATE'] input_values: deploy_identifier: {get_param: DeployIdentifier}
The script uses a set of subscription-manager
commands to register the system, attach the subscription, and enable the required repositories.
For more information about hooks, see Chapter 4, Configuration Hooks.
Ansible-Based Configuration
You can perform Ansible-based registration on specific roles using the director’s dynamic inventory script. For example, you might aim to register Controller nodes using the following play:
--- - name: Register Controller nodes hosts: Controller become: yes vars: 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-mon-rpms tasks: - name: Register system redhat_subscription: activationkey: my-openstack org_id: 1234567 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 }}"
This play contains three tasks: - Register the node using an activation key - Disable any auto-enabled repositories - Enable only the repositories relevant to the Controller node. The repositories are listed with the repos
variable.
After deploying the overcloud, you can run the following command so that Ansible executes the playbook (ansible-osp-registration.yml
) against your overcloud:
$ ansible-playbook -i /usr/bin/tripleo-ansible-inventory ansible-osp-registration.yml
This command does the following: - Runs the dynamic inventory script to get a list of host and their groups - Applies the playbook tasks to the nodes in the group defined in the playbook’s hosts
parameter, which in this case is the Controller
group.
For more information on the running Ansible automation on your overcloud, see "Running Ansible Automation" in the Director Installation and Usage guide.