Chapter 1. Installing RHEL AI on bare metal
You can deploy Red Hat Enterprise Linux AI with the RHEL AI ISO image by using any of the following installation methods:
- RHEL GUI
- Kickstart with embedded container image
- Kickstart with custom container image
Prerequisites
-
You have downloaded and unzipped the
x86_64oraarch64Red Hat Enterprise Linux AI ISO image from the RHEL AI download page. - You have access to a bare-metal host with compatible NVIDIA CUDA, AMD ROCm, or Intel Gaudi 3 AI accelerators installed.
Red Hat Enterprise Linux AI requires additional storage for the RHEL AI data.
-
The minimum recommendation for data storage in the
/homedirectory is 1 TB. -
During updates, the
bootccommand needs extra space to store temporary data. -
The minimum storage recommendation for the root
/partition is 120 GB.
Procedure
Optional: Install using the graphical installer
You can use the interactive RHEL graphical installer and the RHEL AI ISO image to deploy RHEL AI on your machine. For more information about booting a RHEL ISO by using the RHEL installation program, see Interactively installing RHEL from installation media.
Optional: Install using Kickstart with an embedded container image. You customize the RHEL AI installation by using your own Kickstart file.
Create the Kickstart file with your preferred parameters. For more information, see Creating a Kickstart file with the Kickstart configuration tool.
Sample rhelai-bootc.ks Kickstart file with embedded container image for NVIDIA CUDA AI accelerators
ostreecontainer --url=/run/install/repo/container --transport=oci --no-signature-verification # Switch bootc to point to Red Hat container image for upgrades %post bootc switch --mutate-in-place --transport registry registry.redhat.io/rhelai3/bootc-cuda-rhel9:3.4.0 touch /etc/cloud/cloud-init.disabled %end # Customize target system network environment network --bootproto=dhcp --device=link --activate # Customize target system disk partitioning clearpart --all --initlabel --disklabel=gpt reqpart --add-boot part / --grow --fstype xfs # Optional: customize services firewall --disabled services --enabled=sshd # Optional: add a user user --name=cloud-user --groups=wheel --plaintext --password <YOUR_PASSWORD> sshkey --username cloud-user "<SSH_PUB_KEY>" # Optional: add a root user SSH public key rootpw --iscrypted locked sshkey --username root <SSH_ROOT_PUB_KEY>" rebootSample rhelai-bootc.ks Kickstart file with embedded container image for AMD ROCm AI accelerators
ostreecontainer --url=/run/install/repo/container --transport=oci --no-signature-verification # Switch bootc to point to Red Hat container image for upgrades %post bootc switch --mutate-in-place --transport registry registry.redhat.io/rhelai3/bootc-rocm-rhel9:3.4.0 touch /etc/cloud/cloud-init.disabled %end # Customize target system network environment network --bootproto=dhcp --device=link --activate # Customize target system disk partitioning clearpart --all --initlabel --disklabel=gpt reqpart --add-boot part / --grow --fstype xfs # Optional: customize services firewall --disabled services --enabled=sshd # Optional: add a user user --name=cloud-user --groups=wheel --plaintext --password <YOUR_PASSWORD> sshkey --username cloud-user "<SSH_PUB_KEY>" # Optional: add a root user SSH public key rootpw --iscrypted locked sshkey --username root <SSH_ROOT_PUB_KEY>" rebootSample rhelai-bootc.ks Kickstart file with embedded container image for Intel Gaudi 3 AI accelerators
ostreecontainer --url=/run/install/repo/container --transport=oci --no-signature-verification # Switch bootc to point to Red Hat container image for upgrades %post bootc switch --mutate-in-place --transport registry registry.redhat.io/rhelai3/bootc-gaudi-rhel9:3.4.0 touch /etc/cloud/cloud-init.disabled %end # Customize target system network environment network --bootproto=dhcp --device=link --activate # Customize target system disk partitioning clearpart --all --initlabel --disklabel=gpt reqpart --add-boot part / --grow --fstype xfs # Optional: customize services firewall --disabled services --enabled=sshd # Optional: add a user user --name=cloud-user --groups=wheel --plaintext --password <YOUR_PASSWORD> sshkey --username cloud-user "<SSH_PUB_KEY>" # Optional: add a root user SSH public key rootpw --iscrypted locked sshkey --username root <SSH_ROOT_PUB_KEY>" rebootThe sample Kickstart uses the embedded container image in the ISO file, signaled by the
ostreecontainercommand with the--url=/run/install/repo/containerparameter. Thebootc switchparameter points to the Red Hat registry for future updates and then you can add your own customizations.Embed the Kickstart into the RHEL AI ISO so your machine can restart and deploy RHEL AI. Use the
mkksisoutility to embed therhelai-bootc.ksKickstart file in the boot ISO. Themkksisoutility is in theloraxrpm package.$ mkksiso rhelai-bootc.ks <DOWNLOADED-RHELAI-ISO> rhelai-bootc-ks.isoBoot the machine using the updated ISO. After the installation is complete, the host reboots and you can login to the system using the credentials you added in the Kickstart file.
ImportantBe aware that having a custom Kickstart in your ISO will automatically start the installation, and disk partitioning, without prompting the user. Based on the disk configuration, local storage might be completely wiped or overwritten.
Optional: Install using Kickstart with custom container image
Follow the procedure as above for embedding the container image, but instead customize the Kickstart file to include your custom container image, for example:
Sample rhelai-bootc.ks Kickstart file with custom container image
# Customize target system network environment network --bootproto=dhcp --device=link --activate # Customize target system disk partitioning clearpart --all --initlabel --disklabel=gpt reqpart --add-boot part / --grow --fstype xfs # Apply the custom bootc container ostreecontainer --url <CUSTOM_CONTAINER_IMAGE_REGISTRY_URL> # Optional: customize services firewall --disabled services --enabled=sshd # Optional: add a user user --name=cloud-user --groups=wheel --plaintext --password <YOUR_PASSWORD> sshkey --username cloud-user "<SSH_PUB_KEY>" # Optional: add a root user SSH public key rootpw --iscrypted locked sshkey --username root <SSH_ROOT_PUB_KEY>" reboot