About
This article discusses building a RHEL 8.6 software image, specifically on multi-distribution clusters.
These steps were developed for Bright 9.2 and later releases on a SLES 15 SP4 / Ubuntu 20.04/22.04 headnode.
For additional information on multi-distribution support in Bright Cluster Manager, please review the appropriate section in the administration guide.
Prerequisites
We recommend confirming the cluster is running the latest cluster tools and cm-image packages, before attempting to build the software image.
For SLES 15 based headnodes:
# zypper update cluster-tools cm-image
For Ubuntu 20.04-based headnodes:
% apt update % apt install cluster-tools cm-image
The RHEL8u6 tarball may be obtained from the ISO download area of the customer portal.
https://customer.brightcomputing.com/Download.php
After downloading the Bright 9.2 ISO for RHEL8u6, mount the ISO file on the headnode.
Copy the RHEL8u6.tar.gz file in the data directory of the Bright ISO to the headnode (for example /root).
Building the software image
Extract the tarball, apply a RHEL subscription, and enable the required repositories.
On the headnode:
cd /root mkdir rhel8u6-sub tar -xvzf RHEL8u6.tar.gz -C rhel8u6-sub/ cm-chroot-sw-img rhel8u6-sub/ subscription-manager register subscription-manager repos --enable=codeready-builder-for-rhel-8-x86_64-rpms subscription-manager repos --enable=rhel-8-for-x86_64-appstream-rpms subscription-manager repos --enable=rhel-8-for-x86_64-baseos-rpms subscription-manager repos --enable=rhel-8-for-x86_64-supplementary-rpms dnf makecache exit tar -cvzf /root/RHEL8u6-sub.tar.gz rhel8u6-sub/
Create the image
# module load cm-image # cm-image --verbose create all -a x86_64 -d rhel8u6 --source /root/rhel8u6-sub.tar.gz
You may monitor the status of the software image build by running a tail of the cm-image log in another shell on the headnode.
# tail -f /var/log/cm-image.log
Once the build is complete, set a compute node to use the new category generated by cm-image.
On the headnode:
# cmsh % device use node001 % set category default-rhel8-x86_64 % commit % reboot
Example of the cm-image output.
:~ # module load cm-image :~ # cm-image --verbose create all -a x86_64 -d rhel8u6 --source rhel8u6-sub.tar.gz ArchOS is being added for the first time Please make sure no process is using /cm/shared because it will be moved to a new location. Do you want to continue?(y/n): y Do you want to continue?(y/n): Creating software image default-image-rhel8u6-x86_64... running command: 'cm-create-image -a rhel8u6-sub.tar.gz --arch x86_64 --os rhel8 -f -i /cm/images/default-image-rhel8u6-x86_64 -n default-image-rhel8u6-x86_64 --no-progress -L /var/log/cm-image.log --verbose -g public' Running validate base tar........................ [ OK ] Running sanity check............................. [ OK ] Running unpack base tar.......................... [ OK ] Finalize base distribution....................... [ OK ] Copying cm repo files............................ [ OK ] Validating repo configuration.................... [ OK ] Installing distribution packages................. [ OK ] Finalizing image services........................ [ OK ] Installing CM packages........................... [ OK ] Finalizing cluster services...................... [ OK ] Copying cluster certificate to image............. [ OK ] Adding/Updating software image................... [ OK ] Creating software image default-image-rhel8u6-x86_64..............[ OK ] Creating node installer image node-installer-rhel8-x86_64... running command: 'cm-create-image -a rhel8u6-sub.tar.gz --image-type node-installer --arch x86_64 --os rhel8 -f -i /cm/node-installer-rhel8-x86_64 -n node-installer-rhel8-x86_64 --no-progress -L /var/log/cm-image.log --verbose -g public' Running validate base tar........................ [ OK ] Running sanity check............................. [ OK ] Running unpack base tar.......................... [ OK ] Finalize base distribution....................... [ OK ] Copying cm repo files............................ [ OK ] Validating repo configuration.................... [ OK ] Installing distribution packages................. [ OK ] Installing CM packages........................... [ OK ] Finalizing node-installer........................ [ OK ] Updating fspart for node-installer Creating node installer image node-installer-rhel8-x86_64.........[ OK ] Creating cm-shared image at /cm/shared-rhel8-x86_64... running command: 'mount --bind /cm/shared-rhel8-x86_64 /cm/images/default-image-rhel8u6-x86_64/cm/shared' running command: 'cm-create-image --image-type cmshared -f -n default-image-rhel8u6-x86_64 -d /cm/images/default-image-rhel8u6-x86_64 -u -s --no-progress -L /var/log/cm-image.log --verbose -g public' Running validate image dir....................... [ OK ] Running sanity check............................. [ OK ] Copying cm repo files............................ [ OK ] Validating repo configuration.................... [ OK ] Installing CM packages........................... [ OK Unmounting /cm/images/default-image-rhel8u6-x86_64/cm/shared running command: 'umount /cm/images/default-image-rhel8u6-x86_64/cm/shared' Adding cmshared entry /cm/shared-rhel8-x86_64 Creating cm-shared image at /cm/shared-rhel8-x86_64...............[ OK ] Updating cmd entities Changing fsmount $localnfsserver:/cm/shared to $localnfsserver:$cmshared Changing fspart /cm/shared to /cm/shared-sles15-x86_64 Changing fspart /cm/node-installer to /cm/node-installer-sles15-x86_64 Creating ramdisk..................................................[ OK ] Finished first_run_setup: Added new category: default-rhel8-x86_64 Use this category for adding nodes Creating ramdisk..................................................[ OK ]