Search

Chapter 9. Creating and uploading a customized RHEL VMDK system image to vSphere

download PDF

You can create customized RHEL system images by using Insights image builder and upload those images to the VMware vSphere client.

9.1. Creating a customized RHEL VMDK system image by using Insights image builder

With Insights image builder, you can create customized system images in the Open virtualization format (.ova) or in the Virtual disk (.vmdk) format. You can upload these images to VMware vSphere.

You can import the Virtual disk (.vmdk) format only with the govc client. As for the Open virtualization format (.ova), you can import it by using both the vSphere GUI and govc clients.

The Open virtualization format (.ova) is a .vmdk image with additional metadata about the virtual hardware, when imported it creates a VM. After importing the .ova image into vSphere, you can configure the VM with any additional hardware, such as network, disks and CD-ROM.

Procedure

  1. Access Insights image builder on the browser.

    The Insights image builder dashboard appears.

  2. Click Create image.

    The Create image dialog wizard opens.

  3. On the Image output page, complete the following steps:

    1. From the Release list, select the Release that you want to use: for example, choose Red Hat Enterprise Linux (RHEL).
    2. From the Select target environments option, select VMware.
    3. Select one of the options:

      • Open virtualization format (.ova)
      • Virtual disk (.vmdk) format

        Click Next.

  4. On the Registration page, select the type of registration that you want to use. You can select from these options:

  5. Click Next.
  6. Optional: On the Packages page, add packages to your image. See Adding packages during image creation by using Insights image builder.
  7. On the Name image page, enter a name for your image and click Next. If you do not enter a name, you can find the image you created by its UUID.
  8. On the Review page, review the details about the image creation and click Create image.

    After you complete the steps in the Create image wizard, the image builder dashboard is displayed.

  9. When the new image displays a Ready status in the Status column, click Download .vmdk in the Instance column.

    The .vmdk image is saved to your system and is ready for deployment.

    Note

    The .vmdk images are available for 6 hours and expire after that. Ensure that you download the image to avoid losing it.

9.2. Deploying VMDK images to vSphere by using the GUI

After creating your Open virtualization format (.ova) image, you can deploy it to VMware vSphere by using the vSphere GUI client. It will create a VM which can be customized further before booting.

Note

The GUI wizard does not support cloud-init.

Prerequisite

  • You logged in to the vSphere UI in a browser.
  • You downloaded your (.ova) image.

Procedure

  1. In the vSphere Client, from the Actions menu, select Deploy OVF Template.
  2. On the Deploy OVF Template page, complete the settings for each configuration option and click Next.
  3. Click Finish. The .ova image starts to be deployed.

    After the image deployment is complete, you have a new virtual machine (VM) from the .ova image.

  4. In the deployed image page, perform the following steps:

    1. From the Actions menu, select Edit Setting.
    2. On the Virtual Hardware tab, configure resources such as CPU, memory, add a new network adapter, between others of your choice.

      1. On the CD/DVD drive 1 option, attach a CD or DVD Drive that contains a cloud-init.iso, to provision a user on startup.

        The VM is now ready to boot with the username and password from the cloud-init.iso file.

9.3. Deploying VMDK images to vSphere by using the CLI

After creating your image, you can deploy it to VMware vSphere by using the CLI. Then, you can create a VM and login into it.

Note

The GUI wizard does not support cloud-init.

Prerequisites

  • You configured the govc VMware CLI tool client.

    • To use the govc VMware CLI tool client, you must set the following values in the environment:

      GOVC_URL
      GOVC_DATACENTER
      GOVC_FOLDER
      GOVC_DATASTORE
      GOVC_RESOURCE_POOL
      GOVC_NETWORK

Procedure

  1. Access the directory where you downloaded your .vmdk image.
  2. Create a file named metadata.yaml. Add the following information to this file:

    instance-id: cloud-vm
    local-hostname: vmname
  3. Create a file named userdata.yaml. Add the following information to the file:

    #cloud-config
    users:
    - name: admin
      sudo: "ALL=(ALL) NOPASSWD:ALL"
      ssh_authorized_keys:
      - ssh-rsa AAA...fhHQ== your.email@example.com
    • ssh_authorized_keys is your SSH public key. You can find your SSH public key in ~/.ssh/id_rsa.pub.
  4. Export the metadata.yaml and userdata.yaml files to the environment, compressed with gzip, encoded in base64 as follows. They will be used in further steps.

    export METADATA=$(gzip -c9 <metadata.yaml | { base64 -w0 2>/dev/null || base64; }) \
    USERDATA=$(gzip -c9 <userdata.yaml | { base64 -w0 2>/dev/null || base64; })
  5. Launch the image on vSphere with the metadata.yaml and userdata.yaml files:

    1. Import the .vmdk image in to vSphere:

      $ govc import.vmdk ./composer-api.vmdk foldername
    2. Create the VM in vSphere without powering it on:

      govc vm.create \
      -net.adapter=vmxnet3 \
      -m=4096 -c=2 -g=rhel8_64Guest \
      -firmware=bios -disk=”foldername/composer-api.vmdk” \
      -disk.controller=ide -on=false \
       vmname
    3. Change the VM to add ExtraConfig variables, the cloud-init config:

      govc vm.change -vm vmname \
      -e guestinfo.metadata="${METADATA}" \
      -e guestinfo.metadata.encoding="gzip+base64" \
      -e guestinfo.userdata="${USERDATA}" \
      -e guestinfo.userdata.encoding="gzip+base64"
    4. Power-on the VM:

      govc vm.power -on vmname
    5. Retrieve the VM IP address:

      HOST=$(govc vm.ip vmname)
    6. Use SSH to log in to the VM, using the user-data specified in cloud-init file configuration:

      $ ssh admin@HOST

Additional resources

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.

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.

© 2024 Red Hat, Inc.