Skip to content
LFCSOperations DeploymentSingle Linux VMHard

Run a container as a service and register a virtual machine

Scenario lfcs-ops-005 · about 8 minutes · 9 points · 7 grader checks

Run nginx in a rootful podman container managed by systemd with a read-only bind mount, configure the registry search list, and define an autostarted libvirt domain.

  • podman
  • containers
  • systemd
  • libvirt
  • virsh

What you will practise

  • Run a container with a port mapping and a read-only bind mount
  • Manage a container with a systemd unit (quadlet or generated)
  • Configure unqualified-search registries
  • Define a persistent libvirt domain and mark it autostart

Start this lab

With the CLI installed and signed in, this command provisions a fresh Ubuntu 24.04 LTS virtual machine on your Mac, applies the scenario setup and prints the task below.

goldenkube start lfcs-ops-005

Task

The task text exactly as the CLI shows it. Solve it on the machine, then run goldenkube submit.

1. Configure the container engine (podman, as root) so that unqualified image names are searched in docker.io only. 2. Run a container named web from the image docker.io/library/nginx:1.28-alpine (already in local storage). Host port 8080 must reach container port 80, and /srv/web must be mounted read-only at /usr/share/nginx/html. The container must be managed by a systemd service named web.service that is running now and starts at boot. 3. A libvirt domain definition is in /root/vm/lab-vm.xml. Define it as a persistent domain on the system connection (qemu:///system) and mark it to start automatically at boot. This host cannot run nested virtual machines: leave the domain shut off.

Requirements and details

Certification
LFCS · Linux Foundation Certified System Administrator
Domain
Operations Deployment
Difficulty
Hard
Environment
Single Linux VM
Recommended time
8 minutes
Points
9
Grader checks
7
Operating system
Ubuntu 24.04 LTS
Minimum CLI version
0.1.0
Scenario version
1
Published

Grading runs locally: 7 state checks read your machine when you submit; the scenario passes when every check passes. Hints, the reference solution and the check definitions are available only inside the CLI, not on this page.

LFCSOperations DeploymentHard

Kernel parameters and mandatory access control

Persist two sysctl values against a conflicting drop-in, set one runtime-only, confine a binary with AppArmor and prepare an SELinux policy rule.

Single Linux VM · ~9 min · 10 points

  • sysctl
  • kernel-parameters
  • apparmor
  • selinux
  • mac

goldenkube start lfcs-ops-001

LFCSOperations DeploymentMedium

Repair a failing service and re-prioritise a process

A systemd service crash-loops because of its unit file; fix it, enable it, and lower the priority of a running batch process without restarting it.

Single Linux VM · ~7 min · 8 points

  • systemd
  • services
  • troubleshooting
  • processes
  • nice

goldenkube start lfcs-ops-002

LFCSOperations DeploymentEasy

Schedule jobs with a systemd timer and cron

Run a backup script every day at 02:30 through a systemd timer that catches up missed runs, and add a weekday cron job for another user.

Single Linux VM · ~5 min · 7 points

  • systemd-timer
  • cron
  • scheduling
  • jobs

goldenkube start lfcs-ops-003

LFCSOperations DeploymentMedium

Local package repository, pinned install and package verification

Configure a local package repository, install and hold an exact package version, then find and restore a file that was modified after installation.

Single Linux VM · ~7 min · 8 points

  • apt
  • packages
  • repositories
  • dpkg
  • verification

goldenkube start lfcs-ops-004

Independent community project, not affiliated with or endorsed by CNCF or The Linux Foundation. Lab results are practice feedback, not an exam score.