Skip to main content

One post tagged with "rhel"

View All Tags

Using RHEL as a WSL podman machine

· 5 min read
Jeff Maury
Engineering Manager

Red Hat provides a tool called Image Builder that allows developers to build their own custom image of RHEL in a variety of formats. Recently, Image Builder added WSL as a target, enabling you to run RHEL on Windows as a WSL distribution.

This article details the steps and actions required to build and run your RHEL WSL image.

The purpose of this article is to describe the options needed for the RHEL WSL distribution so that it can be used as a Podman machine.

To use the RHEL WSL image as a Podman machine, ensure that the following packages are installed:

  • podman
  • podman-docker
  • procps-ng
  • openssh-server
  • net-tools
  • iproute
  • dhcp-client
  • sudo
  • systemd-networkd

Luckily, all but the last package are available from the pre-configured RHEL 9 repositories. The last package (systemd-networkd) is available from the EPEL 9 repository and will need to be configured when building the image.

Build the image

Navigate to image builder

image builder

On the upper right menu, enable the Preview mode.

image builder preview

Click Add blueprint to open the Create image dialog wizard.

image wizard

On the Image output page, select the following:

  • From the Release list, select Red Hat Enterprise Linux (RHEL) 9.
  • From the Select target environments option, select WSL - Windows Subsystem for Linux (.tar.gz).
  • Click Next.

On the Register page, select Automatically register and enable advanced capabilities.

On the OpenSCAP page, as it is not supported for WSL images, click Next.

On the File system configuration page, select Recommended: Use automatic partitioning.

  • Click Next.

On the Content page, complete the following steps to add additional packages to your image:

  • On the Repository snapshot step:

    • Select Use latest content.
    • Click Next.
  • On the Custom repositories step:

custom repositories

Click on the Create and manage repositories here link. This will open a new tab

custom repositories

Click Add repositories now

add custom repository

Click Add repositories

add custom repository

On the Add custom repositories page, select the following:

Close the tab and switch back to the previous one

  • In the filter input field, type EPEL
  • Select the EPEL 9 repository

custom repository created

Click Next

  • On the Additional packages step:

    • On the Available packages search field, enter podman and click the button.
    • Select the podman and podman-docker packages.
    • On the Available packages search field, enter procps-ng and click the button.
    • Select the procps-ng package.
    • On the Available packages search field, enter openssh-server and click the button.
    • Select the openssh-server package.
    • On the Available packages search field, enter net-tools and click the button.
    • Select the net-tools package.
    • On the Available packages search field, enter iproute and click the button.
    • Select the iproute package.
    • On the Available packages search field, enter dhcp-client and click the button.
    • Select the dhcp-client package.
    • On the Available packages search field, enter sudo and click the button.
    • Select the sudo package and click the > button to add the selected package shown in the package search results to the Chosen packages dual list box.
    • On the Available packages search field, enter systemd and click the button.
    • Select the systemd-networkd package.
    • Click Next

On the First boot script configuration page:

  • Click Next.

On the Details page:

  • In the Blueprint name, enter rhel-wsl.
  • Click Next.

On the Review page:

  • Click Create blueprint and build image.

images list

The image is being built. Once the build is finished, the download link will be available. Click on the Download (.tar.gz) link and save the downloaded file to one of your local folders.

Create the RHEL WSL podman machine

Launch Podman Desktop and go to the Settings -> Resources page:

images list

On the Podman provider, click on Create new ...

On the Create Podman machine page, click the Browse button for the Image Path field and select the file downloaded from Image Builder.

create podman machine

Click on the Create button: the machine will be created and started. After a short time, the operation status should be reported.

podman machine created

Let's play with the RHEL WSL podman machine

Go to the Images page and pull the httpd image

pull httpd image

Click on Done

images list

Start the image by clicking on the Run image icon

images list

Once the container is started, the Apache server can be accessed on http://localhost:9000