Chapter 3. Installing RHEL AI on IBM Cloud


Before you can deploy Red Hat Enterprise Linux AI on IBM Cloud, you must first convert the RHEL AI image into an IBM Cloud image.

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 an IBM Cloud image based on the RHEL AI image.

Prerequisites

Procedure

  1. Log in to IBM Cloud. Run the following command:

    $ ibmcloud login
    Copy to Clipboard Toggle word wrap

    When prompted, select the account to log in to.

  2. Set up various required IBM Cloud configurations, create the COS bucket, and then generate the required QCOW2 image.

    1. Install the required IBM Cloud plugins by running the following command:

      $ ibmcloud plugin install cloud-object-storage infrastructure-service
      Copy to Clipboard Toggle word wrap
    2. Set the preferred resource group, for example:

      $ ibmcloud target -g Default
      Copy to Clipboard Toggle word wrap
    3. Set the preferred region, for example:

      $ ibmcloud target -r us-east
      Copy to Clipboard Toggle word wrap
    4. Select a deployment plan for the service instance.

      1. 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'
        Copy to Clipboard Toggle word wrap
      2. Set the COS_DEPLOY_PLAN environment variable with the required deployment plan, for example:

        $ COS_DEPLOY_PLAN=premium-global-deployment
        Copy to Clipboard Toggle word wrap
      3. Create a COS service instance. Run the following commands:

        $ COS_SI_NAME=<YOUR_SERVICE_INSTANCE>
        Copy to Clipboard Toggle word wrap
        $ ibmcloud resource service-instance-create ${COS_SI_NAME} cloud-object-storage standard global -d ${COS_DEPLOY_PLAN}
        Copy to Clipboard Toggle word wrap
    5. Create the Cloud Resource Name (CRN) COS_CRN variable and create the resource. Run the following commands:

      $ COS_CRN=$(ibmcloud resource service-instance ${COS_SI_NAME} --output json| jq -r '.[] | select(.crn | contains("cloud-object-storage")) | .crn')
      Copy to Clipboard Toggle word wrap
      $ ibmcloud cos config crn --crn ${COS_CRN} --force
      Copy to Clipboard Toggle word wrap
    6. Create the COS bucket:

      $ COS_BUCKET=<YOUR_BUCKET_NAME>
      Copy to Clipboard Toggle word wrap
      $ ibmcloud cos bucket-create --bucket ${COS_BUCKET}
      Copy to Clipboard Toggle word wrap
    7. 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')
      Copy to Clipboard Toggle word wrap
      $ ibmcloud iam authorization-policy-create is cloud-object-storage Reader --source-resource-type image --target-service-instance-id ${COS_SI_GUID}
      Copy to Clipboard Toggle word wrap
  3. Copy the QCOW2 image URL from the Download Red Hat Enterprise Linux AI page.
  4. Download the QCOW2 image:

    $ curl -Lo disk.qcow2 <QCOW2_IMAGE_URL>
    Copy to Clipboard Toggle word wrap
  5. Set the name you want to use as the RHEL AI IBM Cloud image. Run the following command:

    $ IMAGE_NAME=rhel-ai-3-2025v0
    Copy to Clipboard Toggle word wrap
  6. Upload the QCOW2 image to the COS bucket with your selected region:

    $ ibmcloud cos upload --bucket ${COS_BUCKET} --key ${IMAGE_NAME}.qcow2 --file disk.qcow2 --region <REGION>
    Copy to Clipboard Toggle word wrap
  7. Convert the QCOW2 image that you just uploaded to an IBM Cloud image and set the IBM Cloud image configuration IMAGE_ID variable:

    $ IMAGE_ID=$(ibmcloud is image-create ${IMAGE_NAME} --file cos://<REGION>/${COS_BUCKET}/${IMAGE_NAME}.qcow2 --os-name red-ai-9-amd64-nvidia-byol --output json | jq -r '.id')
    Copy to Clipboard Toggle word wrap

Verification

  1. View the progress of the job by running the following command:

    $ while ibmcloud is image --output json ${IMAGE_ID} | jq -r .status | grep -xq pending; do sleep 1; done
    Copy to Clipboard Toggle word wrap
  2. View information about the newly created image:

    $ ibmcloud is image ${IMAGE_ID}
    Copy to Clipboard Toggle word wrap

3.2. Deploying on IBM Cloud using the CLI

You can launch a Red Hat Enterprise Linux AI instance 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 describes using the IBM Cloud CLI to launch an RHEL AI instance.

Prerequisites

Procedure

  1. Log in to your IBM Cloud account, selecting the Account, Region and Resource Group by running the following command:

    $ ibmcloud login -c <ACCOUNT_ID> -r <REGION> -g <RESOURCE_GROUP>
    Copy to Clipboard Toggle word wrap
  2. Before launching the IBM Cloud instance, you need to create several configuration variables.

    1. Install the infrastructure-service plugin for IBM Cloud by running the following command:

      $ ibmcloud plugin install infrastructure-service
      Copy to Clipboard Toggle word wrap
    2. Create an SSH public key for your IBM Cloud account. IBM Cloud supports RSA and ed25519 keys.

      $ ssh-keygen -f ibmcloud -t ed25519
      Copy to Clipboard Toggle word wrap
    3. Upload the public key to your IBM Cloud account.

      $ ibmcloud is key-create <YOUR_IBMCLOUD_SSH_PUB_KEY> --key-type ed25519
      Copy to Clipboard Toggle word wrap
    4. Create a floating IP for the IBM Cloud instance:

      $ ibmcloud is floating-ip-reserve my-public-ip --zone <PREFERRED_REGION>
      Copy to Clipboard Toggle word wrap
  3. Select the instance profile that you want to use for the deployment. List all the profiles by running the following command:

    $ ibmcloud is instance-profiles
    Copy to Clipboard Toggle word wrap

    Make a note of your preferred instance profile.

  4. Create environment variables for the IBM Cloud instance, for example:

    NAME=<INSTANCE_NAME>
    VPC=<YOUR_VPC>
    ZONE=<YOUR_IBM_CLOUD_ZONE>
    SUBNET=<ZONE_SUBNET>
    INSTANCE_PROFILE=<YOUR_CLOUD_INSTANCE_PROFILE>
    IMAGE=<YOUR_IBM_CLOUD_RHELAI_IMAGE>
    SSHKEY=<YOUR_IBMCLOUD_SSH_PUB_KEY>
    FLOATING_IP=<PUBLIC_IP>
    DISK_SIZE=250
    Copy to Clipboard Toggle word wrap
  5. You 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 false
    Copy to Clipboard Toggle word wrap
  6. Link the Floating IP to the instance by running the following command:

    $ ibmcloud is floating-ip-update $FLOATING_IP --nic primary --in $NAME
    Copy to Clipboard Toggle word wrap

3.3. Adding more storage to the IBM Cloud instance

In IBM Cloud, there is a size restriction of 250 GB of storage in the main IBM Cloud disk. You might require more disk space for model storage. You can add more storage by attaching an extra disk to your instance.

Prerequisites

Procedure

  1. Create the NAME environment variable:

    $ NAME=rhelai-instance
    Copy to Clipboard Toggle word wrap
  2. Create the DATA_VOLUME_SIZE variable:

    $ DATA_VOLUME_SIZE=1000
    Copy to Clipboard Toggle word wrap
  3. Create the volume and attach it the instance 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}
    Copy to Clipboard Toggle word wrap
  4. Review the disks attached to the instance:

    $ lsblk
    Copy to Clipboard Toggle word wrap
  5. Create a DISK variable for the newly provisioned disk path, for example:

    $ DISK=/dev/vdb
    Copy to Clipboard Toggle word wrap
  6. Create a partition on the disk by running the following command:

    $ sgdisk -n 1:0:0 $DISK
    Copy to Clipboard Toggle word wrap
  7. Format and label the partition:

    $ mkfs.xfs -L rhelai-data ${DISK}1
    Copy to Clipboard Toggle word wrap
  8. Optional: Configure the system to auto-mount to the directory. To mount the disk to the /mnt folder, run the following command:

    $ echo LABEL=rhelai-data /mnt xfs defaults 0 0 >> /etc/fstab
    Copy to Clipboard Toggle word wrap
  9. Reload the systemd service:

    $ systemctl daemon-reload
    Copy to Clipboard Toggle word wrap
  10. Mount the disk:

    $ mount -a
    Copy to Clipboard Toggle word wrap
  11. Grant write permissions to all users in the new file system by running the following command:

    $ chmod 1777 /mnt/
    Copy to Clipboard Toggle word wrap
Back to top
Red Hat logoGithubredditYoutubeTwitter

Learn

Try, buy, & sell

Communities

About Red Hat Documentation

We help Red Hat users innovate and achieve their goals with our products and services with content they can trust. Explore our recent updates.

Making open source more inclusive

Red Hat is committed to replacing problematic language in our code, documentation, and web properties. For more details, see the Red Hat Blog.

About Red Hat

We deliver hardened solutions that make it easier for enterprises to work across platforms and environments, from the core datacenter to the network edge.

Theme

© 2025 Red Hat