Uyuni Server Deployment on openSUSE Tumbleweed

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 Tumbleweed host server, whether it is running on a physical machine or within a virtual environment.

2. Container Host General Requirements

For general requirements, see General requirements.

An openSUSE Tumbleweed server should be installed from installation media.

This procedure is described below.

3. Container Host Requirements

For CPU, RAM, and storage requirements, see Hardware requirements.

To guarantee that clients can resolve the FQDN domain name, both the containerized server and the host machines must be linked to a functional DNS server. Additionally, it is essential to ensure correct configuration of reverse lookups.

4. Installing Uyuni Tools For Use With Containers

Procedure: Installing Uyuni Tools on openSUSE Tumbleweed
  1. On your local host, open a terminal window and log in.

  2. Add the following repository to your openSUSE Tumbleweed server. You might need to use sudo for the following commands.

    zypper ar https://download.opensuse.org/repositories/systemsmanagement:/Uyuni:/Stable/images/repo/Uyuni-Server-POOL-$(arch)-Media1/ uyuni-server-stable
  3. Refresh the repository list and import the key:

    zypper ref

    When prompted, trust and import the new repository GPG key.

  4. Install the container tools:

    zypper in mgradm mgrctl mgradm-bash-completion mgrctl-bash-completion uyuni-storage-setup-server

For more information on the Uyuni Container Utilities, see Uyuni Container Utilities.

5. Configure Custom Persistent Storage

This step is optional. However, if custom persistent storage is required for your infrastructure, use the mgr-storage-server tool.

  • For more information, see mgr-storage-server --help. This tool simplifies creating the container storage and database volumes.

Use the command in the following manner:

mgr-storage-server <storage-disk-device> [<database-disk-device>]

For example:

mgr-storage-server /dev/nvme1n1 /dev/nvme2n1

This command will create the persistent storage volumes at /var/lib/containers/storage/volumes.

For more information, see Persistent Container Volumes.

6. Deploying an Uyuni Container With Podman

6.1. mgradm Overview

Uyuni is deployed as a container using the mgradm tool. There are two methods of deploying a Uyuni server as a container. In this section we will focus on basic container deployment.

For information on using a custom configuration file to deploy, see Custom YAML Configuration and Deployment with mgradm.

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

Uyuni server hosts that are hardened for security may restrict execution of files from the /tmp folder. In such cases, as a workaround, export the TMPDIR environment variable to another existing path before running mgradm.

For example:

export TMPDIR=/path/to/other/tmp

In Uyuni updates, tools will be changed to make this workaround unnecessary.

Procedure: Deploying an Uyuni container with Podman
  1. From the terminal run the following command as the sudo user or as root.

    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.

6.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.

Specifying 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: