Chapter 2. Installing RHEL AI on bare metal For installing Red Hat Enterprise Linux AI on bare metal, you can use various methods provided in the following procedure to boot and deploy your machine and start interacting with Red Hat Enterprise Linux AI. 2.1. Deploying RHEL AI on bare metal You can deploy Red Hat Enterprise Linux AI with the RHEL AI ISO image in the following ways: * Kickstart * RHEL Graphical User Interface (GUI) This image is bootable on various hardware accelerators. For more information about supported hardware, see "Red Hat Enterprise Linux AI hardware requirements" in "Getting Started" Prerequisites You have downloaded the Red Hat Enterprise Linux AI ISO image from https://access.redhat.com/ . Important Red Hat Enterprise Linux AI currently is only bootable on NVIDIA bare metal hardware. Important Red Hat Enterprise Linux AI requires additional storage for the RHEL AI data as well as the update of image-mode Red Hat Enterprise Linux. The default location for the InstructLab data is in the home/<user> directory. The minimum recommendation for data storage in the /home directory is 1 TB. During updates, the bootc command needs extra space to store temporary data. The minimum storage recommendation for the / path is 120 GB. You need to consider your machine's storage when partitioning the schemes of your disks. Procedure Interactive GUI You can use the interactive Red Hat Enterprise Linux graphical installer and the RHEL AI ISO image to deploy RHEL AI on your machine. For more information about booting RHEL using an ISO file using the GUI, see the Interactively installing RHEL from installation media . Kickstart with embedded container image You can customize the RHEL AI installation by using your own Kickstart file. Create your own Kickstart file with your preferred parameters. For more information about creating Kickstart files, see the Creating Kickstart files in the RHEL documentation. Sample Kickstart file for RHEL AI called rhelai-bootc.ks # use the embedded container image 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/rhelai1/bootc-nvidia-rhel9:1.1 touch /etc/cloud/cloud-init.disabled %end ## user customizations follow # customize this for your target system network environment network --bootproto=dhcp --device=link --activate # customize this for your target system desired disk partitioning clearpart --all --initlabel --disklabel=gpt reqpart --add-boot part / --grow --fstype xfs # services can also be customized via Kickstart firewall --disabled services --enabled=sshd # optionally add a user user --name=cloud-user --groups=wheel --plaintext --password <password> sshkey --username cloud-user "ssh-ed25519 AAAAC3Nza....." # if desired, inject an SSH key for root rootpw --iscrypted locked sshkey --username root "ssh-ed25519 AAAAC3Nza..." reboot The sample Kickstart uses the embedded container image in the ISO file, signaled by the ostreecontainer command with the --url=/run/install/repo/container parameter. The bootc switch parameter points to the Red Hat registry for future updates and then you can add your own customizations. You need to embed the Kickstart into the RHEL AI ISO so your machine can restart and deploy RHEL AI. In the following example, rhelai-bootc.ks is the name of the Kickstart file you're embedding into the boot ISO. The mkksiso utility is found in the lorax rpm package. USD mkksiso rhelai-bootc.ks <downloaded-iso-image> rhelai-bootc-ks.iso where <downloaded-iso-image> Specify the ISO image you downloaded from access.redhat.com . You can then boot your machine using this boot ISO and the installation starts automatically. After the installation is complete, the host reboots and you can login to the new system using the credentials used in the Kickstart file. Important Be aware that having a custom Kickstart in your ISO will automatically start the installation, and disk partitioning, without prompting the user. Based on configuration, the local storage may be completely wiped or overwritten. Kickstart with custom container image You can customize a Kickstart file with your preferred parameters to boot Red Hat Enterprise Linux AI on your machine Create your own Kickstart file with your preferred parameters. For more information on creating Kickstart files, see the Creating Kickstart files in the RHEL documentation. Sample Kickstart file for RHEL AI called rhelai-bootc.ks # customize this for your target system network environment network --bootproto=dhcp --device=link --activate # customize this for your target system desired disk partitioning clearpart --all --initlabel --disklabel=gpt reqpart --add-boot part / --grow --fstype xfs # customize this to include your own bootc container ostreecontainer --url quay.io/<your-user-name>/nvidia-bootc:latest # services can also be customized via Kickstart firewall --disabled services --enabled=sshd # optionally add a user user --name=cloud-user --groups=wheel --plaintext --password <password> sshkey --username cloud-user "ssh-ed25519 AAAAC3Nza....." # if desired, inject an SSH key for root rootpw --iscrypted locked sshkey --username root "ssh-ed25519 AAAAC3Nza..." reboot You need to embed the Kickstart into the RHEL AI ISO so your machine can restart and deploy RHEL AI. In the following example, rhelai-bootc.ks is the name of the Kickstart file you're embedding into the boot ISO. The mkksiso utility is found in the lorax rpm package. USD mkksiso rhelai-bootc.ks <downloaded-iso-image> rhelai-bootc-ks.iso where <downloaded-iso-image> Specify the ISO image you downloaded from access.redhat.com . You can then boot your machine using this boot ISO and the installation starts automatically. After the installation is complete, the host reboots and you can login to the new system using the credentials used in the Kickstart file. Important Be aware that having a custom Kickstart in your ISO will automatically start the installation, and disk partitioning, without prompting the user. Based on configuration, the local storage may be completely wiped or overwritten. Verification To verify that your Red Hat Enterprise Linux AI tools installed correctly, you need to run the ilab command: USD ilab Example output USD ilab Usage: ilab [OPTIONS] COMMAND [ARGS]... CLI for interacting with InstructLab. If this is your first time running ilab, it's best to start with `ilab config init` to create the environment. Options: --config PATH Path to a configuration file. [default: /home/auser/.config/instructlab/config.yaml] -v, --verbose Enable debug logging (repeat for even more verbosity) --version Show the version and exit. --help Show this message and exit. Commands: config Command Group for Interacting with the Config of InstructLab. data Command Group for Interacting with the Data generated by... model Command Group for Interacting with the Models in InstructLab. system Command group for all system-related command calls taxonomy Command Group for Interacting with the Taxonomy of InstructLab. Aliases: chat model chat convert model convert diff taxonomy diff download model download evaluate model evaluate generate data generate init config init list model list serve model serve sysinfo system info test model test train model train

Commands:
use the embedded container image 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/rhelai1/bootc-nvidia-rhel9:1.1 touch /etc/cloud/cloud-init.disabled %end ## user customizations follow customize this for your target system network environment network --bootproto=dhcp --device=link --activate customize this for your target system desired disk partitioning clearpart --all --initlabel --disklabel=gpt reqpart --add-boot part / --grow --fstype xfs services can also be customized via Kickstart firewall --disabled services --enabled=sshd optionally add a user user --name=cloud-user --groups=wheel --plaintext --password <password> sshkey --username cloud-user "ssh-ed25519 AAAAC3Nza....." if desired, inject an SSH key for root rootpw --iscrypted locked sshkey --username root "ssh-ed25519 AAAAC3Nza..." reboot
mkksiso rhelai-bootc.ks <downloaded-iso-image> rhelai-bootc-ks.iso
customize this for your target system network environment network --bootproto=dhcp --device=link --activate customize this for your target system desired disk partitioning clearpart --all --initlabel --disklabel=gpt reqpart --add-boot part / --grow --fstype xfs customize this to include your own bootc container ostreecontainer --url quay.io/<your-user-name>/nvidia-bootc:latest services can also be customized via Kickstart firewall --disabled services --enabled=sshd optionally add a user user --name=cloud-user --groups=wheel --plaintext --password <password> sshkey --username cloud-user "ssh-ed25519 AAAAC3Nza....." if desired, inject an SSH key for root rootpw --iscrypted locked sshkey --username root "ssh-ed25519 AAAAC3Nza..." reboot
mkksiso rhelai-bootc.ks <downloaded-iso-image> rhelai-bootc-ks.iso
ilab
ilab Usage: ilab [OPTIONS] COMMAND [ARGS] CLI for interacting with InstructLab. If this is your first time running ilab, it's best to start with `ilab config init` to create the environment. Options: --config PATH Path to a configuration file. [default: /home/auser/.config/instructlab/config.yaml] -v, --verbose Enable debug logging (repeat for even more verbosity) --version Show the version and exit. --help Show this message and exit. Commands: config Command Group for Interacting with the Config of InstructLab. data Command Group for Interacting with the Data generated by model Command Group for Interacting with the Models in InstructLab. system Command group for all system-related command calls taxonomy Command Group for Interacting with the Taxonomy of InstructLab. Aliases: chat model chat convert model convert diff taxonomy diff download model download evaluate model evaluate generate data generate init config init list model list serve model serve sysinfo system info test model test train model train