Installing
Installation documentation on various platforms
Abstract
Chapter 1. Installation overview Copy linkLink copied to clipboard!
Red Hat Enterprise Linux AI is distributed and installable as a bootable image. This bootable image includes a container that hold various software and tools for RHEL AI. Each image is compiled to support specific hardware vendors. Each RHEL AI image includes:
- Red Hat Enterprise Linux 9.4: A RHEL version 9.4 operating system (OS) for your machine.
The InstructLab container: Contains InstructLab and various other tools required for RHEL AI. This includes:
- Python version 3.11: A Python 3.11 installation used internally by InstructLab.
The InstructLab tools:
- The InstructLab command line interface (CLI).
- The LAB enhanced method of synthetic data generation (SDG).
- The LAB enhanced method of multi-phase training.
- InstructLab with vLLM: A high-input inference and serving engine for Large Language models (LLMs).
- InstructLab with DeepSpeed: A hardware optimization software that speeds up the training process. Similar functionalities of FSDP.
- InstructLab with FSDP: A training framework that makes training faster and more efficient. Similar functionalities of DeepSpeed
Red Hat Enterprise Linux AI version 1.5 also includes a sample taxonomy tree with example skills and knowledge that you can download and use for training a model.
For general availability, there are three options for installing and deploying Red Hat Enterprise Linux AI.
After installation with Red Hat Enterprise Linux AI general availability, you can manually download open source Granite LLMs that you can chat and interact with. For more information about downloading these models, see Downloading additional models.
Chapter 2. Installing RHEL AI on bare metal Copy linkLink copied to clipboard!
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 Copy linkLink copied to clipboard!
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 and unziped the Red Hat Enterprise Linux AI ISO image from the RHEL AI download page.
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.5 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..." 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.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.ksis the name of the Kickstart file you’re embedding into the boot ISO. Themkksisoutility is found in theloraxrpm package.$ mkksiso rhelai-bootc.ks <downloaded-iso-image> rhelai-bootc-ks.isowhere
- <downloaded-iso-image>
- Specify the ISO image you downloaded from the RHEL AI download page.
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.
ImportantBe 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..." rebootYou 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.ksis the name of the Kickstart file you’re embedding into the boot ISO. Themkksisoutility is found in theloraxrpm package.$ mkksiso rhelai-bootc.ks <downloaded-iso-image> rhelai-bootc-ks.isowhere
- <downloaded-iso-image>
- Specify the ISO image you downloaded from the RHEL AI download page.
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.
ImportantBe 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
ilabcommand:$ ilabExample output
$ 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: /Users/kellybrown/.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 generate data generate serve model serve train model train
Updating Red Hat Enterprise Linux AI
To update to the latest z-stream version of RHEL AI, follow the procedures in the Updating Red Hat Enterprise Linux AI documentation.
Chapter 3. Installing RHEL AI on AWS Copy linkLink copied to clipboard!
There are multiple ways you can install and deploy Red Hat Enterprise Linux AI on AWS.
- You can purchase RHEL AI from the AWS marketplace.
- You can download the RHEL AI RAW file on the RHEL AI download page and convert it to an AWS image.
For installing and deploying RHEL AI using the RAW file, you must first convert the RHEL AI image into an Amazon Machine Image (AMI).
3.1. Converting the RHEL AI image to an AWS AMI Copy linkLink copied to clipboard!
Before deploying RHEL AI on an AWS machine, you must set up a S3 bucket and convert the RHEL AI image to a AWS AMI.
In the following process, you create the following resources:
- An S3 bucket with the RHEL AI image
- AWS EC2 snapshots
- An AWS AMI
- An AWS instance
Prerequisites
- You have an Access Key ID configured in the AWS IAM account manager.
Procedure
- Install the AWS command-line tool by following the AWS documentation
You need to create a S3 bucket and set the permissions to allow image file conversion to AWS snapshots.
Create the necessary environment variables by running the following commands:
$ export BUCKET=<custom_bucket_name> $ export RAW_AMI=nvidia-bootc.ami $ export AMI_NAME="rhel-ai" $ export DEFAULT_VOLUME_SIZE=1000NoteOn AWS, the
DEFAULT_VOLUME_SIZEis measured GBs.You can create an S3 bucket by running the following command:
$ aws s3 mb s3://$BUCKETYou must create a
trust-policy.jsonfile with the necessary configurations for generating a S3 role for your bucket:$ printf '{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Principal": { "Service": "vmie.amazonaws.com" }, "Action": "sts:AssumeRole", "Condition": { "StringEquals":{ "sts:Externalid": "vmimport" } } } ] }' > trust-policy.jsonCreate an S3 role for your bucket that you can name. In the following example command,
vmiportis the name of the role.$ aws iam create-role --role-name vmimport --assume-role-policy-document file://trust-policy.jsonYou must create a
role-policy.jsonfile with the necessary configurations for generating a policy for your bucket:$ printf '{ "Version":"2012-10-17", "Statement":[ { "Effect":"Allow", "Action":[ "s3:GetBucketLocation", "s3:GetObject", "s3:ListBucket" ], "Resource":[ "arn:aws:s3:::%s", "arn:aws:s3:::%s/*" ] }, { "Effect":"Allow", "Action":[ "ec2:ModifySnapshotAttribute", "ec2:CopySnapshot", "ec2:RegisterImage", "ec2:Describe*" ], "Resource":"*" } ] }' $BUCKET $BUCKET > role-policy.jsonCreate a policy for your bucket by running the following command:
$ aws iam put-role-policy --role-name vmimport --policy-name vmimport-$BUCKET --policy-document file://role-policy.json
- Now that your S3 bucket is set up, you need to download the RAW image from Red Hat Enterprise Linux AI download page
Copy the RAW image link and add it to the following command:
$ curl -Lo disk.raw.gz <link-to-raw-file>Unzip the
raw.gzfile with the following command:$ gunzip disk.raw.gzUpload the image to the S3 bucket with the following command:
$ aws s3 cp disk.raw s3://$BUCKET/$RAW_AMIConvert the image to a snapshot and store it in the
task_idvariable name by running the following commands:$ printf '{ "Description": "my-image", "Format": "raw", "UserBucket": { "S3Bucket": "%s", "S3Key": "%s" } }' $BUCKET $RAW_AMI > containers.json$ task_id=$(aws ec2 import-snapshot --disk-container file://containers.json | jq -r .ImportTaskId)You can check the progress of the disk image to snapshot conversion job with the following command:
$ aws ec2 describe-import-snapshot-tasks --filters Name=task-state,Values=activeOnce the conversion job is complete, you can get the snapshot ID and store it in a variable called
snapshot_idby running the following command:$ snapshot_id=$(aws ec2 describe-import-snapshot-tasks | jq -r '.ImportSnapshotTasks[] | select(.ImportTaskId=="'${task_id}'") | .SnapshotTaskDetail.SnapshotId')Add a tag name to the snapshot, so it’s easier to identify, by running the following command:
$ aws ec2 create-tags --resources $snapshot_id --tags Key=Name,Value="$AMI_NAME"Register an AMI from the snapshot with the following command:
$ ami_id=$(aws ec2 register-image \ --name "$AMI_NAME" \ --description "$AMI_NAME" \ --architecture x86_64 \ --root-device-name /dev/sda1 \ --block-device-mappings "DeviceName=/dev/sda1,Ebs={VolumeSize=${DEFAULT_VOLUME_SIZE},SnapshotId=${snapshot_id}}" \ --virtualization-type hvm \ --ena-support \ | jq -r .ImageId)You can add another tag name to identify the AMI by running the following command:
$ aws ec2 create-tags --resources $ami_id --tags Key=Name,Value="$AMI_NAME"
3.2. Deploying your instance on AWS using the CLI Copy linkLink copied to clipboard!
You can launch the AWS instance with your new RHEL AI AMI from the AWS web console or the CLI. You can use whichever method of deployment you want to launch your instance. The following procedure displays how you can use the CLI to launch your AWS instance with the custom AMI.
If you choose to use the CLI as a deployment option, there are several configurations you have to create, as shown in "Prerequisites".
Prerequisites
- You created your RHEL AI AMI. For more information, see "Converting the RHEL AI image to an AWS AMI".
- You have the AWS command-line tool installed and is properly configured with your aws_access_key_id and aws_secret_access_key.
- You configured your Virtual Private Cloud (VPC).
- You created a subnet for your instance.
- You created a SSH key-pair.
- You created a security group on AWS.
Procedure
For various parameters, you need to gather the ID of the variable.
To access the image ID, run the following command:
$ aws ec2 describe-images --owners selfTo access the security group ID, run the following command:
$ aws ec2 describe-security-groupsTo access the subnet ID, run the following command:
$ aws ec2 describe-subnets
Populate environment variables for when you create the instance
$ instance_name=rhel-ai-instance $ ami=<ami-id> $ instance_type=<instance-type-size> $ key_name=<key-pair-name> $ security_group=<sg-id> $ disk_size=<size-of-disk>Create your instance using the variables by running the following command:
$ aws ec2 run-instances \ --image-id $ami \ --instance-type $instance_type \ --key-name $key_name \ --security-group-ids $security_group \ --subnet-id $subnet \ --block-device-mappings DeviceName=/dev/sda1,Ebs='{VolumeSize='$disk_size'}' \ --tag-specifications 'ResourceType=instance,Tags=[{Key=Name,Value='$instance_name'}]'
User account
The default user account in the RHEL AI AMI is cloud-user. It has all permissions via sudo without password.
Verification
To verify that your Red Hat Enterprise Linux AI tools are installed correctly, you need to run the
ilabcommand:$ ilabExample output
$ 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/<user>/.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 generate data generate serve model serve train model train
Updating Red Hat Enterprise Linux AI
To update to the latest z-stream version of RHEL AI, follow the procedures in the Updating Red Hat Enterprise Linux AI documentation.
Chapter 4. Installing RHEL AI on IBM cloud Copy linkLink copied to clipboard!
For installing and deploying Red Hat Enterprise Linux AI on IBM Cloud, you must first convert the RHEL AI image into an IBM Cloud image. You can then launch an instance using the IBM Cloud image and deploy RHEL AI on an IBM Cloud machine.
4.1. Converting the RHEL AI image into a IBM Cloud image. Copy linkLink copied to clipboard!
To create a bootable image in IBM Cloud you must configure your IBM Cloud accounts, set up a Cloud Object Storage (COS) bucket, and create a IBM Cloud image using the RHEL AI image.
Prerequisites
- You installed the IBM CLI on your specific machine. For more information about installing IBM Cloud CLI, see Installing the stand-alone IBM Cloud CLI.
Procedure
Log in to IBM Cloud with the following command:
$ ibmcloud loginWhen prompted, select your desired account to log in to.
Example output of the login
$ ibmcloud login API endpoint: https://cloud.ibm.com Region: us-east Get a one-time code from https://identity-1.eu-central.iam.cloud.ibm.com/identity/passcode to proceed. Open the URL in the default browser? [Y/n] > One-time code > Authenticating... OK Select an account: 1. <account-name> 2. <account-name-2> API endpoint: https://cloud.ibm.com Region: us-east User: <user-name> Account: <selected-account> Resource group: No resource group targeted, use 'ibmcloud target -g RESOURCE_GROUP'You need to set up various IBM Cloud configurations and create your COS bucket before generating a QCOW2 image.
You can install the necessary IBM Cloud plugins by running the following command:
$ ibmcloud plugin install cloud-object-storage infrastructure-serviceSet your preferred resource group, the following example command sets the resource group named
Default.$ ibmcloud target -g DefaultSet your preferred region, the following example command sets the
us-eastregion.$ ibmcloud target -r us-eastYou need to select a deployment plan for your service instance. Ensure you check the properties and pricing on the IBM cloud website.
You can list the available deployment plans by running the following command:
$ ibmcloud catalog service cloud-object-storage --output json | jq -r '.[].children[] | select(.children != null) | .children[].name'The following example command uses the
premium-global-deploymentplan and puts it in the environment variablecos_deploy_plan:$ cos_deploy_plan=premium-global-deploymentCreate a Cloud Object Storage (COS) service instance and save the name in an environment variable named
cos_si_nameand create thecloud-object-storageand by running the following commands:$ cos_si_name=THE_NAME_OF_YOUR_SERVICE_INSTANCE$ ibmcloud resource service-instance-create ${cos_si_name} cloud-object-storage standard global -d ${cos_deploy_plan}
Get the Cloud Resource Name (CRN) for your Cloud Object Storage (COS) bucket in a variable named
cos_crnby running the following commands:$ cos_crn=$(ibmcloud resource service-instance ${cos_si_name} --output json| jq -r '.[] | select(.crn | contains("cloud-object-storage")) | .crn')$ ibmcloud cos config crn --crn ${cos_crn} --forceCreate your Cloud Object Storage (COS) bucket named as the environment variable
bucket_namewith the following commands:$ bucket_name=NAME_OF_MY_BUCKET$ ibmcloud cos bucket-create --bucket ${bucket_name}Allow the infrastructure service to read the buckets that are in the service instance
${cos_si_guid}variable by running the following commands:$ cos_si_guid=$(ibmcloud resource service-instance ${cos_si_name} --output json| jq -r '.[] | select(.crn | contains("cloud-object-storage")) | .guid')$ ibmcloud iam authorization-policy-create is cloud-object-storage Reader --source-resource-type image --target-service-instance-id ${cos_si_guid}
- Now that your IBM Cloud Object Storage (CoS) service instance bucket is set up, you need to download the QCOW2 image from Red Hat Enterprise Linux AI download page
Copy the QCOW2 image link and add it to the following command:
$ curl -Lo disk.qcow2 "PASTE_HERE_THE_LINK_OF_THE_QCOW2_FILE"Set the name you want to use as the RHEL AI IBM Cloud image
$ image_name=rhel-ai-20240703v0Upload the QCOW2 image to the Cloud Object Storage (COS) bucket with your selected region by running following command:
$ ibmcloud cos upload --bucket ${bucket_name} --key ${image_name}.qcow2 --file disk.qcow2 --region <region>Convert the QCOW2 you just uploaded to an IBM Cloud image with the following commands:
$ ibmcloud is image-create ${image_name} --file cos://<region>/${bucket_name}/${image_name}.qcow2 --os-name red-ai-9-amd64-nvidia-byolOnce the job launches, set the IBM Cloud image configurations into a variable called
image_idby running the following command:$ image_id=$(ibmcloud is images --visibility private --output json | jq -r '.[] | select(.name=="'$image_name'") | .id')You can view the progress of the job with the following command:
$ while ibmcloud is image --output json ${image_id} | jq -r .status | grep -xq pending; do sleep 1; doneYou can view the information of the newly created image with the following command:
$ ibmcloud is image ${image_id}
4.2. Deploying your instance on IBM Cloud using the CLI Copy linkLink copied to clipboard!
You can launch an instance with your new RHEL AI IBM Cloud image from the IBM Cloud web console or the CLI. You can use whichever method of deployment you want to launch your instance. The following procedure displays how you can use the CLI to launch an IBM Cloud instance with the custom IBM Cloud image
If you choose to use the CLI as a deployment option, there are several configurations you have to create, as shown in "Prerequisites".
Prerequisites
- You created your RHEL AI IBM Cloud image. For more information, see "Converting the RHEL AI image to an IBM Cloud image".
- You installed the IBM CLI on your specific machine, see Installing the stand-alone IBM Cloud CLI.
- You configured your Virtual private cloud (VPC).
- You created a subnet for your instance.
Procedure
Log in to your IBM Cloud account and select the Account, Region and Resource Group by running the following command:
$ ibmcloud login -c <ACCOUNT_ID> -r <REGION> -g <RESOURCE_GROUP>Before launching your IBM Cloud instance on the CLI, you need to create several configuration variables for your instance.
Install the
infrastructure-serviceplugin for IBM Cloud by running the following command$ ibmcloud plugin install infrastructure-serviceYou need to create an SSH public key for your IBM Cloud account. IBM Cloud supports RSA and ed25519 keys. The following example command uses the ed25519 key types and names it
ibmcloud.$ ssh-keygen -f ibmcloud -t ed25519You can now upload the public key to your IBM Cloud account by following the example command.
$ ibmcloud is key-create my-ssh-key @ibmcloud.pub --key-type ed25519You need to create a Floating IP for your IBM Cloud instance by following the example command. Ensure you change the region to your preferred zone.
$ ibmcloud is floating-ip-reserve my-public-ip --zone <region>
You need to select the instance profile that you want to use for the deployment. List all the profiles by running the following command:
$ ibmcloud is instance-profilesMake a note of your preferred instance profile, you will need it for your instance deployment.
You can now start creating your IBM Cloud instance. Populate environment variables for when you create the instance.
name=my-rhelai-instance vpc=my-vpc-in-us-east zone=us-east-1 subnet=my-subnet-in-us-east-1 instance_profile=gx3-64x320x4l4 image=my-custom-rhelai-image sshkey=my-ssh-key floating_ip=my-public-ip disk_size=250You can now launch your instance, by running the following command:
$ ibmcloud is instance-create \ $name \ $vpc \ $zone \ $instance_profile \ $subnet \ --image $image \ --keys $sshkey \ --boot-volume '{"name": "'${name}'-boot", "volume": {"name": "'${name}'-boot", "capacity": '${disk_size}', "profile": {"name": "general-purpose"}}}' \ --allow-ip-spoofing falseLink the Floating IP to the instance by running the following command:
$ ibmcloud is floating-ip-update $floating_ip --nic primary --in $name
User account
The default user account in the RHEL AI AMI is cloud-user. It has all permissions via sudo without password.
Verification
To verify that your Red Hat Enterprise Linux AI tools are installed correctly, run the
ilabcommand:$ ilabExample output
$ 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/<user>/.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 generate data generate serve model serve train model train
4.3. Adding more storage to your IBM Cloud instance Copy linkLink copied to clipboard!
In [ibm-c], there is a size restriction of 250 GB of storage in the main IBM Cloud disk. RHEL AI might require more storage for models and generation data.
You can add more storage by attaching an extra disk to your instance and using it to hold data for RHEL AI.
Prerequisites
- You have a IBM Cloud RHEL AI instance.
Procedure
Create an environment variable called
namethat has the name of your instance by running the following command:$ name=my-rhelai-instanceSet the size of the new volume by running the following command:
$ data_volume_size=1000Create and attach the instance volume by running the following command:
$ ibmcloud is instance-volume-attachment-add data ${name} \ --new-volume-name ${name}-data \ --profile general-purpose \ --capacity ${data_volume_size}You can list all the disks with the following command:
$ lsblkCreate a
diskvariable with the content of the disk path your using. The following example command uses the/dev/vdbpath.$ disk=/dev/vdbCreate a partition on your disk by running the following command:
$ sgdisk -n 1:0:0 $diskFormat and label the partition by running the following command:
$ mkfs.xfs -L ilab-data ${disk}1You can configure your system to auto mount to your preferred directory. The following example command uses the
/mntdirectory.$ echo LABEL=ilab-data /mnt xfs defaults 0 0 >> /etc/fstabReload the
systemdservice to acknowledge the new configuration on mounts by running the following command:$ systemctl daemon-reloadMount the disk with the following command:
$ mount -aGrant write permissions to all users in the new file system by running the following command:
$ chmod 1777 /mnt/
Updating Red Hat Enterprise Linux AI
To update to the latest z-stream version of RHEL AI, follow the procedures in the Updating Red Hat Enterprise Linux AI documentation.
Chapter 5. Installing RHEL AI on Google Cloud Platform (GCP) Copy linkLink copied to clipboard!
For installing and deploying Red Hat Enterprise Linux AI on Google Cloud Platform, you must first convert the RHEL AI image into an GCP image. You can then launch an instance using the GCP image and deploy RHEL AI on a Google Cloud Platform machine.
5.1. Converting the RHEL AI image into a Google Cloud Platform image. Copy linkLink copied to clipboard!
To create a bootable image in Google Cloud Platform you must configure your Google Cloud Platform account, create an Google Cloud Storage bucket, and create an Google Cloud Platform image using the RHEL AI raw image.
Prerequisites
- You installed the Google Cloud Platform CLI on your specific machine. For more information about installing the GCP CLI, see Install the Google Cloud Platform CLI on Linux.
- You must be on a Red Hat Enterprise Linux version 9.2 - 9.4 system
- Your machine must have an additional 100 GB of disk space.
Procedure
Log in to Google Cloud Platform with the following command:
$ gcloud auth loginExample output of the login.
$ gcloud auth login Your browser has been opened to visit: https://accounts.google.com/o/oauth2/auth?XXXXXXXXXXXXXXXXXXXX You are now logged in as [user@example.com]. Your current project is [your-project]. You can change this setting by running: $ gcloud config set project PROJECT_IDYou need to set up some Google Cloud Platform configurations and create your GCP Storage Container before creating the GCP image.
Configure Google Cloud Platform CLI to use your project.
$ gcloud_project=your-gcloud-project $ gcloud config set project $gcloud_projectCreate an environment variable defining the region where you want to operate.
$ gcloud_region=us-central1Create a Google Cloud Platform Storage Container.
$ gcloud_bucket=name-for-your-bucket $ gsutil mb -l $gcloud_region gs://$gcloud_bucket
-
Now that your GCP Storage Container is set up, you need to download the GCP
tar.gzimage from the Red Hat Enterprise Linux AI download page. Unzip the
tar.gzfile with the following command:$ gunzip <downloaded-gcp-gz-image>Set the name you want to use as the RHEL AI Google Cloud Platform image.
$ image_name=rhel-ai-1-2Upload the
tar.gzfile to the Google Cloud Platform Storage Container by running the following command:$ gsutil cp rhelai_gcp.tar.gz "gs://${gcloud_bucket}/$image_name.tar.gz"Create an Google Cloud Platform image from the
tar.gzfile you just uploaded with the following command:$ gcloud compute images create \ "$image_name" \ --source-uri="gs://${gcloud_bucket}/$image_name.tar.gz" \ --family "rhel-ai" \ --guest-os-features=GVNIC
5.2. Deploying your instance on Google Cloud Platform using the CLI Copy linkLink copied to clipboard!
You can launch an instance with your new RHEL AI Google Cloud Platform image from the Google Cloud Platform web console or the CLI. You can use whichever method of deployment you want to launch your instance. The following procedure displays how you can use the CLI to launch an Google Cloud Platform instance with the custom Google Cloud Platform image
If you choose to use the CLI as a deployment option, there are several configurations you have to create, as shown in "Prerequisites".
Prerequisites
- You created your RHEL AI Google Cloud Platform image. For more information, see "Converting the RHEL AI image to a Google Cloud Platform image".
- You installed the Google Cloud Platform CLI on your specific machine, see Install the Google Cloud Platform CLI on Linux.
Procedure
Log in to your Google Cloud Platform account by running the following command:
$ gcloud auth login- Before launching your Google Cloud Platform instance on the CLI, you need to create several configuration variables for your instance.
You need to select the instance profile that you want to use for the deployment. List all the profiles in the desired region by running the following command:
$ gcloud compute machine-types list --zones=<zone>Make a note of your preferred machine type, you will need it for your instance deployment.
You can now start creating your Google Cloud Platform instance. Populate environment variables for when you create the instance.
name=my-rhelai-instance zone=us-central1-a machine_type=a3-highgpu-8g accelerator="type=nvidia-h100-80gb,count=8" image=my-custom-rhelai-image disk_size=1024 subnet=defaultConfigure the zone to be used.
$ gcloud config set compute/zone $zoneYou can now launch your instance, by running the following command:
$ gcloud compute instances create \ ${name} \ --machine-type ${machine_type} \ --image $image \ --zone $zone \ --subnet $subnet \ --boot-disk-size ${disk_size} \ --boot-disk-device-name ${name} \ --accelerator=$accelerator
Verification
To verify that your Red Hat Enterprise Linux AI tools are installed correctly, run the
ilabcommand:$ ilabExample output
$ 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/<user>/.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 generate data generate serve model serve train model train
Updating Red Hat Enterprise Linux AI
To update to the latest z-stream version of RHEL AI, follow the procedures in the Updating Red Hat Enterprise Linux AI documentation.
Chapter 6. Installing RHEL AI on Azure Copy linkLink copied to clipboard!
There are multiple ways you can install, and deploy Red Hat Enterprise Linux AI on Azure.
- You can purchase RHEL AI from the Azure marketplace.
- You can download the RHEL AI VHD on the RHEL AI download page and convert it to an Azure image.
For installing and deploying Red Hat Enterprise Linux AI on Azure using the VHD, you must first convert the RHEL AI image into an Azure image. You can then launch an instance using the Azure image and deploy RHEL AI on an Azure machine.
6.1. Converting the RHEL AI image into a Azure image Copy linkLink copied to clipboard!
To create a bootable image on Azure you must configure your Azure account, create an Azure Storage Container, and create an Azure image using the RHEL AI VHD image.
Prerequisites
- You installed the Azure CLI on your specific machine. For more information on installing the Azure CLI, see Install the Azure CLI on Linux.
- You installed the AzCopy on your specific machine. For more information on installing AzCopy, see Install AzCopy on Linux.
Procedure
Log in to Azure by running the following command:
$ az loginExample output of the login
$ az login A web browser has been opened at https://login.microsoftonline.com/organizations/oauth2/v2.0/authorize. Please continue the login in the web browser. If no web browser is available or if the web browser fails to open, use device code flow with `az login --use-device-code`. [ { "cloudName": "AzureCloud", "homeTenantId": "c7b976df-89ce-42ec-b3b2-a6b35fd9c0be", "id": "79d7df51-39ec-48b9-a15e-dcf59043c84e", "isDefault": true, "managedByTenants": [], "name": "Team Name", "state": "Enabled", "tenantId": "0a873aea-428f-47bd-9120-73ce0c5cc1da", "user": { "name": "user@example.com", "type": "user" } } ]Log in with the
azcopytool using the following commands:$ keyctl new_session $ azcopy loginYou need to set up various Azure configurations and create your Azure Storage Container before creating the Azure image.
Create an environment variable defining the location of your instance with the following command:
$ az_location=eastusCreate a resource group and save the name in an environment variable named
az_resource_group. The following example creates a resource group namedDefaultin the locationeastus. (You can omit this step if you want to use an already existing resource group).$ az_resource_group=Default $ az group create --name ${az_resource_group} --location ${az_location}Create an Azure storage account and save the name in an environment variable named
az_storage_accountby running the following commands:$ az_storage_account=THE_NAME_OF_YOUR_STORAGE_ACCOUNT$ az storage account create \ --name ${az_storage_account} \ --resource-group ${az_resource_group} \ --location ${az_location} \ --sku Standard_LRSCreate your Azure Storage Container named as the environment variable
az_storage_containerwith the following commands:$ az_storage_container=NAME_OF_MY_BUCKET $ az storage container create \ --name ${az_storage_container} \ --account-name ${az_storage_account} \ --public-access offYou can get your Subscription ID from the Azure account list by running the following command:
$ az account list --output tableCreate a variable named ` az_subscription_id` with your Subscription ID .
$ az_subscription_id=46c08fb3-83c5-4b59-8372-bf9caf15a681Grant
azcopywrite permission to user into the storage container. This example grants permission to the useruser@example.com.$ az role assignment create \ --assignee user@example.com \ --role "Storage Blob Data Contributor" \ --scope /subscriptions/${az_subscription_id}/resourceGroups/${az_resource_group}/providers/Microsoft.Storage/storageAccounts/${az_storage_account}/blobServices/default/containers/${az_storage_container}
- Now that your Azure storage container is set up, you need to download the Azure VHD image from Red Hat Enterprise Linux AI download page.
Unzip the
vhd.gzfile with the following command:$ gunzip <downloaded-azure-gz-image>Set the name you want to use as the RHEL AI Azure image.
$ image_name=rhel-ai-1.5Upload the VHD file to the Azure Storage Container by running the following command:
$ az_vhd_url="https://${az_storage_account}.blob.core.windows.net/${az_storage_container}/$(basename ${vhd_file})" $ azcopy copy "$vhd_file" "$az_vhd_url"Create an Azure image from the VHD file you just uploaded with the following command:
$ az image create --resource-group $az_resource_group \ --name "$image_name" \ --source "${az_vhd_url}" \ --location ${az_location} \ --os-type Linux \ --hyper-v-generation V2
6.2. Deploying your instance on Azure using the CLI Copy linkLink copied to clipboard!
You can launch an instance with your new RHEL AI Azure image from the Azure web console or the CLI. You can use whichever method of deployment you want to launch your instance. The following procedure displays how you can use the CLI to launch an Azure instance with the custom Azure image
If you choose to use the CLI as a deployment option, there are several configurations you have to create, as shown in "Prerequisites".
Prerequisites
- You created your RHEL AI Azure image. For more information, see "Converting the RHEL AI image to an Azure image".
- You installed the Azure CLI on your specific machine, see Install the Azure CLI on Linux.
Procedure
Log in to your Azure account by running the following command:
$ az loginYou need to select the instance profile that you want to use for the deployment. List all the profiles in the desired region by running the following command:
$ az vm list-sizes --location <region> --output tableMake a note of your preferred instance profile, you will need it for your instance deployment.
You can now start creating your Azure instance. Populate environment variables for when you create the instance.
name=my-rhelai-instance az_location=eastus az_resource_group=my_resource_group az_admin_username=azureuser az_vm_size=Standard_ND96isr_H100_v5 az_image=my-custom-rhelai-image sshpubkey=$HOME/.ssh/id_rsa.pub disk_size=1024You can launch your instance, by running the following command:
$ az vm create \ --resource-group $az_resource_group \ --name ${name} \ --image ${az_image} \ --size ${az_vm_size} \ --location ${az_location} \ --admin-username ${az_admin_username} \ --ssh-key-values @$sshpubkey \ --authentication-type ssh \ --nic-delete-option Delete \ --accelerated-networking true \ --os-disk-size-gb 1024 \ --os-disk-name ${name}-${az_location}
Verification
To verify that your Red Hat Enterprise Linux AI tools are installed correctly, run the
ilabcommand:$ ilabExample output
$ 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/<user>/.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 generate data generate serve model serve train model train
Updating Red Hat Enterprise Linux AI
To update to the latest z-stream version of RHEL AI, follow the procedures in the Updating Red Hat Enterprise Linux AI documentation.
Chapter 7. Adding additional storage to your instance Copy linkLink copied to clipboard!
Some cloud instances do not have enough storage for the RHEL AI end-to-end workflow in the default disk. You can add a directory that holds additional data.
7.1. Adding a data storage directory to your instance Copy linkLink copied to clipboard!
By default RHEL AI holds configuration data in the $HOME directory. You can change this default to a different directory for holding InstructLab data.
Prerequisites
- You have a Red Hat Enterprise Linux AI instance
- You added an extra storage disk to your instance
Procedure
You can configure the
ILAB_HOMEenvironment variable by writing it to the$HOME/.bash_profilefile by running the following commands:$ echo 'export ILAB_HOME=/mnt' >> $HOME/.bash_profileYou can make that change effective by reloading the
$HOME/.bash_profilefile with the following command:$ source $HOME/.bash_profileYou then need to create a
containersdirectory with the following command:$ mkdir /mnt/.config/containersCopy over the
storage.conffile to thecontainersdirectory with the following command:$ cp /etc/skel/.config/containers/storage.conf /mnt/.config/containers/