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

    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
    2. Set the preferred resource group, for example:

      $ ibmcloud target -g Default
    3. Set the preferred region, for example:

      $ ibmcloud target -r us-east
    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'
      2. Set the COS_DEPLOY_PLAN environment variable with the required deployment plan, for example:

        $ COS_DEPLOY_PLAN=premium-global-deployment
      3. Create a COS service instance. Run the following commands:

        $ COS_SI_NAME=<YOUR_SERVICE_INSTANCE>
        $ ibmcloud resource service-instance-create ${COS_SI_NAME} cloud-object-storage standard global -d ${COS_DEPLOY_PLAN}
    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')
      $ ibmcloud cos config crn --crn ${COS_CRN} --force
    6. Create the COS bucket:

      $ COS_BUCKET=<YOUR_BUCKET_NAME>
      $ ibmcloud cos bucket-create --bucket ${COS_BUCKET}
    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')
      $ ibmcloud iam authorization-policy-create is cloud-object-storage Reader --source-resource-type image --target-service-instance-id ${COS_SI_GUID}
  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>
  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
  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>
  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')

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
  2. View information about the newly created image:

    $ ibmcloud is image ${IMAGE_ID}

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>
  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
    2. Create an SSH public key for your IBM Cloud account. IBM Cloud supports RSA and ed25519 keys.

      $ ssh-keygen -f ibmcloud -t ed25519
    3. Upload the public key to your IBM Cloud account.

      $ ibmcloud is key-create <YOUR_IBMCLOUD_SSH_PUB_KEY> --key-type ed25519
    4. Create a floating IP for the IBM Cloud instance:

      $ ibmcloud is floating-ip-reserve my-public-ip --zone <PREFERRED_REGION>
  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

    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
  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
  6. Link the Floating IP to the instance by running the following command:

    $ ibmcloud is floating-ip-update $FLOATING_IP --nic primary --in $NAME

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
  2. Create the DATA_VOLUME_SIZE variable:

    $ DATA_VOLUME_SIZE=1000
  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}
  4. Review the disks attached to the instance:

    $ lsblk
  5. Create a DISK variable for the newly provisioned disk path, for example:

    $ DISK=/dev/vdb
  6. Create a partition on the disk by running the following command:

    $ sgdisk -n 1:0:0 $DISK
  7. Format and label the partition:

    $ mkfs.xfs -L rhelai-data ${DISK}1
  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
  9. Reload the systemd service:

    $ systemctl daemon-reload
  10. Mount the disk:

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

    $ chmod 1777 /mnt/
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

© 2026 Red Hat
Back to top