5 Using RHEL as a Compute Node #
This section outlines how to install a RHEL Compute Node as a member of a new or existing cloud created with SUSE OpenStack Cloud.
5.1 Setting Up a Deployer for RHEL #
Ensure that your environment includes a Subscription Management Tool (SMT) server. Run the following steps on that server to configure an RPM repository for use by RHEL clients.
Enable SMT mirroring of the external CentOS 7.5 repository to distribute RHEL-compatible packages to nodes in the cloud.
tux >
sudo smt-setup-custom-repos --name CentOS --description "CentOS 7.5" --productid 100682 \ --exturl https://download.opensuse.org/repositories/systemsmanagement:/Ardana:/9:/CentOS:/7.5/CentOS_7.5/tux >
sudo smt-repos -e CentOStux >
sudo smt-synctux >
sudo smt-mirrorCentOS RPM packages will now be stored on the SMT server in
/srv/www/htdocs/repo/RPMMD/CentOS
. If your deployer node also operates as your SMT server, publish this content to other nodes with the following command:tux >
sudo ln -s /srv/www/htdocs/repo/RPMMD/CentOS /opt/ardana_packager/ardana/rhel7/yum/centosOr, if your SMT server is hosted separately from your deployer, follow the same steps for this repository as you are doing to mirror other repos, ensuring that it results in hosting the repo on the deployer at
/opt/ardana_packager/ardana/rhel7/yum/centos
.Add this new repo as a yum package source to cloud nodes by populating
/etc/yum.repos.d/ardana-centos.repo
in each RHEL system with the following contents:[ardana-centos] name=Ardana CentOS Repository baseurl=http://DEPLOYER-IP:79/ardana/rhel7/yum/centos enabled=1 gpgcheck=0
Add the new repository to the deployer node as well (and accept its certificate), but with lower priority than other repositories. This ensures that packages present in both repos are preferably installed from the SUSE Linux Enterprise Server repositories.
tux >
sudo zypper ar -p 100 file:/opt/ardana_packager/ardana/rhel7/yum/centos centostux >
sudo zypper ref
OpenStack components are installed on Red Hat Enterprise Linux Compute Nodes
via virtualenv (venv). To facilitate this, certain packages
must be installed from the ardana-centos
repository on the deployer node:
for i in nova neutron monasca_agent do sudo zypper in -y venv-openstack-$i-rhel-x86_64 done
Once these packages are installed, they will populate a new package directory which must be prepared to serve as a RHEL yum repository:
tux >
sudo create_index --dir=/opt/ardana_packager/ardana-9/rhel_venv/x86_64
5.2 Package Dependencies for RHEL Compute Nodes #
The original release of RHEL 7.5 requires bug fix advisory
RHBA-2018:2198
to be installed for proper DVR
functionality. (If this is not done, attempts to create Floating IP
resources for VMs on RHEL Compute Nodes will fail, as documented in the
Red Hat
Knowledge Base.) This update can be downloaded via an active RHEL
license, and should be applied after the node's operating system is
installed. If this results in a change to the kernel version (to the
target of 3.10.0-862), a reboot will be required.
To use the OpenStack Rocky version of
nova-compute
and qemu-kvm
,
virtualization packages with versions of at least 2.10.0 must be installed
on RHEL nodes.
The RPM files needed for these packages must be
provided before executing site.yml
. It is expected
that a Red Hat Virtualization product subscription will be used to provide
these RPM packages, ensuring that the latest version is installed and
that continuous updates will be available.
qemu-img-rhev
qemu-kvm-common-rhev
qemu-kvm-rhev
qemu-kvm-tools-rhev
5.3 Deploying RHEL Compute Nodes #
SELinux policy updates are needed for
nova-compute
to work properly. SELinux policy updates can be
enabled by changing a flag in default configuration. This needs to be
done on the Cloud Lifecycle Manager before nova-compute
is installed on RHEL nodes.
On the Cloud Lifecycle Manager node, edit the following file:
cd ~/openstack/ardana/ansible vi roles/NOV-CMP-KVM/defaults/main.yml
Set the SELinux flag to
true
:nova_rhel_compute_apply_selinux_policy_updates: true
Save and close the file.
Commit the change to Git:
git commit -a --allow-empty -m "Enable SELinux policy updates for compute nodes"
Publish the changes so that they are included in playbook runs:
ansible-playbook -i hosts/localhost ready-deployment.yml
If your existing cloud is fully installed and the new RHEL compute node is
being added to it, update the /etc/hosts
table on
existing nodes to include the new compute node.
cd ~/scratch/ansible/next/ardana/ansible ansible-playbook -i hosts/verb_hosts site.yml --tag "generate_hosts_file"
Continue to deploy OpenStack services on RHEL nodes by providing the
names of each RHEL node (as defined in hosts/verb_hosts
)
in the following command:
cd ~/scratch/ansible/next/ardana/ansible ansible-playbook -i hosts/verb_hosts site.yml -l "NODE1_NAME,NODE2_NAME"
If you have used an encryption password when running the configuration
processor, include the additional parameter --ask-vault-pass
to the end of the above command.