Version: 1.0.0 | Author: Alhasan Al-Hmondi
ServerSystem Lab2 Del2 is a small infrastructure automation lab for managing a Proxmox-based server environment. The project combines Python inventory reporting with Ansible desired-state automation so VM/CT status, firewall checks, and warning logs can be reviewed in a repeatable way.
I built this project as part of a server systems lab to practice practical infrastructure administration. The goal is not to create a large platform, but to show that I can document a lab environment, collect useful system state, run Ansible safely, and produce logs that are readable when something does not match the expected state.
- Python 3
- PyYAML
- Ansible
- Proxmox CLI tools (
qm,pct,pve-firewall) - SSH key-based administration
- Del A: Python inventory script that checks VM/CT status over SSH and writes
rapport.jsonplusinventory.log. - Del B: Ansible playbook that checks Proxmox state, starts expected machines, validates firewall status, and writes summary/warning logs.
serverSystem-Lab2-Del2/
|-- Del-A/
| |-- Script.py
| |-- config.yaml
| |-- rapport.json
| `-- inventory.log
|-- Del-B/
| |-- Proxmox-Ansible/
| |-- log.txt
| `-- warning_log.txt
|-- LICENSE
|-- lab2_del2-dubai.pdf
`-- README.md
Run the automation from an Ansible admin host that can reach the Proxmox node over SSH.
Install the basic dependencies:
sudo apt update
sudo apt install ansible python3-yaml -ySet up SSH key-based login to the Proxmox node:
ssh-keygen -t ed25519
ssh-copy-id root@<proxmox-node-ip>
ssh root@<proxmox-node-ip>The repository uses documentation-safe example addresses such as 192.0.2.30. Before running the lab, update:
Del-A/config.yamlDel-B/Proxmox-Ansible/inventory/hosts.iniDel-B/Proxmox-Ansible/group_vars/proxmox.yaml
Run the Python inventory:
cd Del-A
python3 Script.pyRun the Ansible desired-state playbook:
cd Del-B/Proxmox-Ansible
ansible-playbook playbook.yamlRun a dry-run:
ansible-playbook playbook.yaml --checkRun a dry-run with diff output:
ansible-playbook playbook.yaml --check --diff- VM and container status
- Expected running state for selected machines
- Firewall status on the Proxmox node
- Missing firewall allowance for the configured admin network
- Failed VM/CT start attempts
Del-A/rapport.json: structured inventory output from the Python scriptDel-A/inventory.log: timestamped inventory run summaryDel-B/log.txt: sample desired-state summaryDel-B/warning_log.txt: sample warning output
This project is intentionally focused on a small Proxmox lab. It demonstrates scripting, configuration management, SSH-based administration, desired-state thinking, warning handling, and operational documentation without hiding the actual infrastructure workflow behind a dashboard.
- Add an Ansible Vault example if credentials are ever needed
- Add CI validation for YAML syntax
- Add a sample
--checkoutput file for documentation - Split environment-specific values into a clearer sample inventory
This project is licensed under the GNU General Public License v3.0. See LICENSE for the full license text.