Deploying Uyuni as a container

1. Deployment preparations

In this section, you will gain expertise in setting up and deploying a Uyuni Server. The process encompasses the installation of Podman, Uyuni container utilities, deployment, and then initiating interaction with the container through mgrctl.

This section assumes you have already configured an openSUSE Leap 15.5 server, whether it is running on a physical machine or within a virtual environment.

2. Installing Podman on openSUSE Leap 15.5

To install Podman on openSUSE Leap 15.5, proceed with the following steps.

Procedure: Installing Podman
  1. Open a terminal window.

  2. Update the package manager’s repository information to ensure you have the latest package information:

    sudo zypper refresh
  3. Install Podman by running the following command:

    sudo zypper -y install podman

    Zypper will download and install Podman along with its dependencies.

  4. When the installation is complete, verify that Podman is installed by running:

    podman --version

    This command should display the installed version of Podman. You should now have Podman successfully installed on your openSUSE Leap 15.5 system, and you can start using it to manage containers on your system.

For more information, see https://podman.io/.

3. Installing Uyuni tools for use with containers

3.1. openSUSE 15.5

Procedure: Installing Uyuni Tools on openSUSE 15.5
  1. Add the following repository to your openSUSE 15.5 server and accept the key.

    sudo zypper ar https://download.opensuse.org/repositories/systemsmanagement:/Uyuni:/Master:/ContainerUtils/openSUSE_Leap_15.5/systemsmanagement:Uyuni:Master:ContainerUtils.repo
  2. Install tools:

    sudo zypper in mgradm mgrctl mgradm-bash-completion mgrctl-bash-completion netavark
    For more information on the Uyuni Container Utilities see, link:https://build.opensuse.org/repositories/systemsmanagement:Uyuni:Master:ContainerUtils[Uyuni Container Utilities]
Repositories providing the Uyuni Container Utilities are located at: link:https://build.opensuse.org/repositories/systemsmanagement:Uyuni:Master:ContainerUtils[Uyuni Container Utilities]

4. Deploying an Uyuni container with Podman

4.1. mgradm overview

Uyuni is deployed as a container using the mgradm tool. There are two approaches to deploying a Uyuni server as a container. However, this section will focus on basic container deployment:

Basic deployment

You can start basic container deployment by executing the mgradm command. This will guide you through entering basic server variables.

For additional information, you can explore further by running mgradm --help from the command line.

mgradm will prompt for basic variables if they are not provided using command line parameters or the mgradm.yaml configuration file.

For security, using command line parameters to specify passwords should be avoided: use a configuration file with proper permissions instead.

Procedure: Deploying an Uyuni container with Podman
  1. from the terminal run the following command a the sudo user.

    sudo mgradm install podman

    You must deploy the container as sudo or root. The following error will be displayed at the terminal if you miss this step.

    INF Setting up uyuni network
    9:58AM INF Enabling system service
    9:58AM FTL Failed to open /etc/systemd/system/uyuni-server.service for writing error="open /etc/systemd/system/uyuni-server.service: permission denied"
  2. Wait for deployment to complete.

  3. Open a browser and proceed to your servers FQDN.

In this section you learned how to deploy an Uyuni Server container.

4.2. Persistent volumes

Many users will want to specify locations for their persistent volumes.

If you are just testing out Uyuni you do not need to specify these volumes. mgradm will setup the correct volumes by default.

Specifiying volume locations will generally be used for larger production deployments.

By default Podman stores its volumes in /var/lib/containers/storage/volumes/.

You can provide custom storage for the volumes by mounting disks on this path or the expected volume path inside it such as: /var/lib/containers/storage/volumes/var-spacewalk. This is especially important for the database and package mirrors.

For a list of all persistent volumes in the container see, Persistent container volumes