The complete material for a 3.5-hour hands-on workshop: forming a Proxmox VE 9 cluster with Ansible and then operating it. Slides, handouts, exercise sheets, a cheat sheet, and two runnable Ansible projects.
Participants start with three freshly installed nodes and an empty directory. Every module ends with an exercise, and roughly half the time is spent in them. The material is single-source: the same Quarto documents produce a participant version and a trainer version, and the difference is what the trainer version adds — speaker notes and a worked solution for every task.
| Module | Slides | Handout | Exercise | Exercise + solutions | |
|---|---|---|---|---|---|
| 00 | Welcome & the lab | HTML | — — | — — | — — |
| 01 | Ansible in 30 minutes | HTML | HTML PDF | HTML PDF | HTML PDF |
| 02 | Preparing the nodes | HTML | HTML PDF | HTML PDF | HTML PDF |
| 03 | Forming the cluster | HTML | HTML PDF | HTML PDF | HTML PDF |
| 04 | From playbook to role | HTML | HTML PDF | HTML PDF | HTML PDF |
| 05 | Operating the cluster | HTML | HTML PDF | HTML PDF | HTML PDF |
| 06 | Dynamic inventory | HTML | HTML PDF | HTML PDF | HTML PDF |
| 07 | Where to go next | HTML | — — | — — | — — |
The handout is the reference and carries the depth: the REST calls behind each module, links into the API viewer, failure modes. The exercise sheet is deliberately short.
ansible.cfg are complete; every playbook is a skeleton
with the task names in place and a TODO where the content goes. It
runs and changes nothing.pve_node role, and a test suite
(tests/run.sh) that checks each module's result against a real
cluster.Three Proxmox VE 9 nodes on 192.168.0.1–3 and a Linux desktop as
the control node. Every participant gets an identical, isolated set, which is why the
starter project ships a ready-made inventory.
The credentials in the material belong to that throwaway environment.
It is not reachable from outside and is deleted after each delivery. Point
inventory/hosts.yml at your own nodes to run any of this elsewhere.