Lab catalog
All 118 labs by category. Start one with sudo labctl start <lab>. Needs lists what a lab requires from your machine, for example internet access or extra nodes.
Automation
Lab Title Level Target Course Needs Known issues
ansible-01Ansible control node and a first playbook Beginner nodes - internet, 3 nodes -
ansible-02Ansible roles, templates and handlers Intermediate nodes - internet, 3 nodes -
ansible-03Ansible Vault, facts and conditionals Advanced nodes - internet, 3 nodes -
git-01Shared Git repository served over SSH Beginner nodes - internet, 2 nodes -
scripting-01Bash scripts with arguments, conditions and loops Intermediate servera - - -
Containers
Lab Title Level Target Course Needs Known issues
podman-01Rootless httpd container as a systemd user service Advanced servera - internet -
podman-02Build a container image and run it with Podman Intermediate servera - internet -
podman-03Rootless pod with a database and a web container Advanced servera - internet -
Database Replication
Lab Title Level Target Course Needs Known issues
replication-01MySQL source-replica replication Beginner nodes - internet, 2 nodes -
replication-02PostgreSQL streaming replication with WAL archiving Intermediate nodes - internet, 2 nodes -
replication-03MySQL multi-master circular replication Advanced nodes - internet, 3 nodes -
Databases
Lab Title Level Target Course Needs Known issues
mysql-01MySQL installation and root password Beginner servera - internet -
mysql-02MySQL database and user management Intermediate servera - internet -
mysql-03MySQL backup and restore Advanced servera - internet -
postgres-01PostgreSQL installation and first start Beginner servera - internet -
postgres-02PostgreSQL database and role management Intermediate servera - internet -
postgres-03PostgreSQL backup and restore Advanced servera - internet -
postgres-04PostgreSQL that does not start Intermediate servera - internet -
redis-01Redis server with a password and persistence Beginner servera - internet -
DNS
Lab Title Level Target Course Needs Known issues
dns-01Install and start the BIND DNS server Beginner servera - internet -
dns-02DNS forward zone with A, CNAME and MX records Intermediate servera - internet -
dns-03DNSSEC signed zone with zone transfer Advanced servera - internet -
dns-04BIND secondary zone with zone transfers Intermediate nodes - internet, 2 nodes -
dns-05Name resolution fails on a client Intermediate servera - internet -
Files
Lab Title Level Target Course Needs Known issues
files-01Directories and files Beginner servera - - -
files-02Web directory permissions and ownership Intermediate servera - - -
files-03Special permissions, ACLs and backup Advanced servera - - -
files-04Brace expansion and file organisation Beginner servera aoos 01 - -
files-05Finding files and searching text Beginner servera - - -
files-06Archives and rsync transfer between nodes Intermediate nodes - internet, 2 nodes -
files-07Incremental rsync snapshots with a systemd timer Intermediate servera - internet -
files-08Text processing reports from a web server log Intermediate servera - - -
files-09Hard links, symbolic links and inodes Beginner servera - - -
Firewall
Lab Title Level Target Course Needs Known issues
firewall-01Firewalld services and ports Beginner servera - - -
firewall-02Rich rules and zone assignment Intermediate servera - free NIC -
firewall-03Masquerading, port forwarding and custom services Advanced servera - - -
High Availability Clustering
Lab Title Level Target Course Needs Known issues
clustering-01Basic three-node Pacemaker cluster Beginner nodes - internet, 3 nodes -
clustering-02STONITH fencing for a Pacemaker cluster Intermediate nodes - internet, 3 nodes 1 workaround
clustering-03Quorum and split-brain protection Advanced nodes - 3 nodes -
Load Balancing
Lab Title Level Target Course Needs Known issues
lb-01HAProxy load balancing for three web servers Beginner nodes - internet, 3 nodes -
lb-02Nginx reverse proxy with health checks Intermediate nodes - internet, 3 nodes -
lb-03Highly available load balancer with keepalived Advanced nodes - internet, 3 nodes -
Logging
Lab Title Level Target Course Needs Known issues
logging-01Filtering the systemd journal with journalctl Beginner servera - - 2 workaround
logging-02Custom rsyslog rules and logrotate Intermediate servera - - -
logging-03Persistent journal and a failing service Advanced servera - - -
logging-04Persistent audit rules and auditd log settings Intermediate servera - - -
logging-05Central rsyslog server over TCP Intermediate nodes - 2 nodes -
logging-06journald size limits, rate limiting and retention Intermediate servera - - -
logging-07File integrity checks with AIDE Intermediate servera - internet -
Networking
Lab Title Level Target Course Needs Known issues
networking-01Static IP address and DNS with NetworkManager Beginner servera - free NIC -
networking-02VLAN interface and hostname Intermediate servera - free NIC -
networking-03Network bonding with failover Advanced servera - free NIC -
networking-04IPv6 address and a static route on a free NIC Intermediate servera - free NIC -
networking-05A network connection that does not come up Intermediate servera - free NIC -
time-01Chrony time server and client Intermediate nodes - 2 nodes -
Packages
Lab Title Level Target Course Needs Known issues
packages-01Package management basics Beginner servera - internet -
packages-02Enable the EPEL repository and install a package from it Intermediate servera - internet -
packages-03Package file lists Advanced servera - internet -
packages-04RPM queries and installing from a file Intermediate servera aoos 02 internet 1 workaround
packages-05Build joe from source with a custom prefix Advanced servera aoos 02 internet -
packages-06Configure dnf repositories from a base URL Beginner servera - internet -
packages-07A service fails after a package update Intermediate servera - internet -
packages-08Switch Node.js to another dnf module stream Intermediate servera - internet -
Scheduling
Lab Title Level Target Course Needs Known issues
scheduling-01Cron jobs basics Beginner servera - - -
scheduling-02Systemd timers Intermediate servera - - -
scheduling-03Anacron, persistent timers and cron variables Advanced servera - internet -
scheduling-04One-time jobs with at and a default umask Beginner servera - internet -
scheduling-05Troubleshoot cron jobs that never run Intermediate servera - - -
SELinux
Lab Title Level Target Course Needs Known issues
selinux-01SELinux enforcing mode Beginner servera - - -
selinux-02SELinux contexts for a web application Intermediate servera - internet -
selinux-03SELinux labels for Apache on a non-standard port Advanced servera - internet -
selinux-04SELinux booleans for Apache user directories Intermediate servera - internet -
SSH
Lab Title Level Target Course Needs Known issues
fail2ban-01Protect SSH with fail2ban Beginner servera - internet -
fail2ban-02Custom fail2ban filter and jail for an application log Intermediate servera - internet -
ssh-01SSH key authentication and a client host alias Beginner servera - - -
ssh-02Hardening the SSH server Advanced servera - internet -
ssh-03Key login fails for a user with a non-standard home Intermediate servera - internet -
ssh-04SFTP-only group chrooted to per-user directories Intermediate servera - - -
ssh-05SSH user certificates signed by a local CA Advanced servera - - -
Storage
Lab Title Level Target Course Needs Known issues
nfs-01NFS server and persistent client mount Intermediate nodes - internet, 2 nodes -
nfs-02NFS export security and autofs client mounts Intermediate nodes - internet, 2 nodes -
samba-01Samba file sharing with a persistent CIFS mount Intermediate nodes - internet, 2 nodes -
storage-01Loopback filesystem with persistent mount Beginner servera - reboot -
storage-02LVM basics on a loopback device Intermediate servera - - -
storage-03LVM snapshots on a loopback volume group Advanced servera - - -
storage-04Swap file, swappiness and a tuned profile Intermediate servera - internet, reboot -
storage-05Extend LVM volumes and grow XFS and ext4 file systems Intermediate servera - - -
storage-06GPT partitions, swap and file systems mounted by UUID Intermediate servera - internet -
storage-07Encrypted LUKS volume unlocked at boot by a key file Intermediate servera - internet -
storage-08User and group disk quotas on an XFS file system Intermediate servera - - -
storage-09iSCSI target and a persistent initiator login Advanced nodes - internet, 2 nodes -
storage-10Software RAID 1 with a hot spare and a disk replacement Intermediate servera - internet -
storage-11Full file system and a broken fstab entry Intermediate servera - - -
Systemd
Lab Title Level Target Course Needs Known issues
systemd-01Basic service management with systemd Beginner servera - - -
systemd-02Custom systemd service Intermediate servera - - -
systemd-03Systemd timers and scheduled services Advanced servera - - -
systemd-04Default boot target Beginner servera aoos 01 reboot -
systemd-05Kernel arguments, GRUB timeout and kernel modules Intermediate servera - reboot -
systemd-06Process priorities and signals Beginner servera - - -
systemd-07Kernel crash dumps with kdump Intermediate servera - internet, reboot -
systemd-08Drop-in overrides, restart policy and resource limits Intermediate servera - - -
systemd-09Runaway processes and sar data collection Intermediate servera - internet -
systemd-10Custom services that fail to start Intermediate servera - - -
systemd-11Persistent kernel parameters and tmpfiles.d rules Intermediate servera - reboot -
Users
Lab Title Level Target Course Needs Known issues
users-01Users, groups and shared directories Beginner servera - - -
users-02User accounts, password aging and limits Intermediate servera - - -
users-03Users, groups and ACLs for shared directories Advanced servera - - -
users-04Password policy with pwquality, faillock and pwhistory Intermediate servera - - -
users-05Sudo rules with drop-in files and command aliases Intermediate servera - - -
users-06Accounts that cannot log in Intermediate servera - - -
Web Servers
Lab Title Level Target Course Needs Known issues
webserver-01Install and run Apache HTTP Server Beginner servera - internet -
webserver-02Apache name-based virtual host Intermediate servera - internet -
webserver-03HTTPS with a self-signed certificate Advanced servera - internet -
webserver-04Nginx HTTPS reverse proxy for a local application Intermediate servera - internet -
webserver-05Troubleshoot a web site that does not load Intermediate servera - internet -
webserver-06Apache with PHP-FPM and a dedicated pool Intermediate servera - internet -
webserver-07Internal CA and a trusted HTTPS certificate Intermediate servera - internet -
webserver-08Apache basic auth and IP access control Intermediate servera - internet -