KNZLABS :: Hands-On Labs

Ten scenario-based labs, one per RHCSA v9 objective domain. Each lab ships with a task sheet and a bash grader that mimics Red Hat's pass/fail scoring — everything must persist across reboot, and the passing mark is 70%.

Everything you need is on this page: the How to Use the Labs steps below walk the full workflow, the Lab Operations panel drives push / grade / reset from the browser, and the Graded Labs section holds the task sheets and the Lab Grader.

How to Use the Labs

  1. In the Lab Operations panel below, click Snapshot Baseline once to capture the clean starting state, then Push Labs to Nodes to distribute the task sheets and graders to ~/labs/ on each lab node.
  2. SSH from your laptop to the node for the lab you're working: ssh knzadmin@192.168.4.71 (key auth, no password). The node for each lab is noted on its card in the Graded Labs section.
  3. Read the task sheet — click Read tasks → on the lab's card in the Graded Labs section below.
  4. Work the tasks on the node. Reboot when the task list says so.
  5. Grade your work — open the Lab Grader tile in the Graded Labs section below, then click the grader for the lab you completed. The pass/fail report appears in the Lab Operations console.
  6. Between drills, click Reset All Nodes (or a per-node reset) in the Lab Operations panel below to roll back to your clean baseline.

Lab Operations

Buttons below execute against the lab infrastructure from this portal. The portal SSHs to ATLAS through a restricted action whitelist — you don't need a terminal open. SSH from your laptop into the lab nodes still works the same way (it's separate).

Lab Hosts

HostIPOSRoleScratch disks
rhcsa-node1192.168.4.71AlmaLinux 9workstationsdb 5G, sdc 5G
rhcsa-node2192.168.4.72AlmaLinux 9serversdb 5G, sdc 5G
rhcsa-repo192.168.4.73AlmaLinux 9local repo mirror (13 GB)
rhcsa-v10192.168.4.74AlmaLinux 10v10 deltas tracksdb 5G

Graded Labs

Each lab targets one RHCSA v9 objective domain. Work the tasks on the live lab host, reboot when the task list says so, then run the grader. Red Hat's passing score is 70%.

Lab 01 — Users & Groups

Domain 8 · 20 min · reboot req'd
UIDs, password aging, sudoers drop-ins, root lockdown, supplementary groups, setgid dirs.
Read tasks →

Lab 02 — Permissions + ACLs

Domain 9 · 25 min · no reboot
setfacl, default ACLs, sticky bit, setuid, setgid, ACL overrides over groups.
Read tasks →

Lab 03 — firewalld + systemd

Domain 7 + 6 · 25 min · reboot req'd
Zones, services, custom ports, ICMP blocks. systemd unit + timer for daily maintenance.
Read tasks →

Lab 04 — SELinux

Domain 9 · 25 min · reboot req'd
DocumentRoot relocation, persistent contexts via semanage, booleans, custom port labels.
Read tasks →

Lab 05 — Storage + LVM

Domain 4 · 35 min · reboot req'd
Partitions, swap, PV/VG/LV, XFS + ext4, lvextend with -r, persistent mounts.
Read tasks →

Lab 06 — Stratis

Domain 5 · 25 min · reboot req'd
Pools, filesystems, capacity additions, snapshots, UUID + x-systemd.requires fstab pattern.
Read tasks →

Lab 07 — Time, cron, tuned

Domain 6 + 3 · 20 min · no reboot
timezone, chrony, at, /etc/cron.d/, user crontabs, tuned virtual-guest.
Read tasks →

Lab 08 — Networking (nmcli)

Domain 7 · 25 min · reboot req'd
hostnamectl, /etc/hosts, secondary IPs, DNS in NetworkManager. Don't lock yourself out.
Read tasks →

Lab 09 — Containers (podman)

Domain 10 · 30 min · reboot req'd
Rootless podman, linger, bind mounts with SELinux relabel, Quadlet files, systemd-user.
Read tasks →

Lab 10 — GRUB + Recovery

Domain 3 + 6 · 25 min · 2× reboot
Default target, persistent kernel args, GRUB timeout, root password recovery rehearsal.
Read tasks →

Lab Grader

all 10 labs · browser-driven
Run any lab's grader.sh on the appropriate node and get the pass/fail report inline. Output appears in the Lab Operations console.
Open Grader →