2.1 KiB
2.1 KiB
System Update Automation
This project uses Ansible to automate system updates across multiple servers and infrastructure components.
Overview
This playbook updates, upgrades, and cleans up packages on all managed hosts. It's designed to work with a mixed infrastructure environment including:
- Hetzner cloud servers
- Proxmox virtualization infrastructure (PVE, PBS, PDM nodes)
- LXC containers (instances across the 10.0.0.100–10.0.0.199 range)
Files
| File | Purpose |
|---|---|
inventory.ini |
Defines all hosts organized by group (hetz, prox, lxc) |
playbook.yml |
Contains the update tasks to run on all hosts |
run-playbook.sh |
Bash script to execute the playbook safely |
Prerequisites
- Ansible installed on your control machine
- SSH access configured to all hosts listed in
inventory.ini - SSH keys or password authentication set up for the
rootuser on each host
Usage
1. Make the Script Executable
Before running the playbook, you must make the script executable:
chmod +x run-playbook.sh
2. Run the Playbook
Execute the script:
./run-playbook.sh
The script will:
- Verify that both
inventory.iniandplaybook.ymlexist - Run the Ansible playbook to update all hosts
- Exit with an error if any required file is missing
What the Playbook Does
The playbook runs on all hosts and performs:
- Update cache — Refreshes the package list
- Full upgrade — Upgrades all installed packages to their latest versions
- Autoremove — Removes unused dependencies
This ensures all systems stay current with the latest security patches and updates.
Inventory Structure
[hetz] # Hetzner cloud server
[prox] # Proxmox nodes (PVE, PBS, PDM)
[lxc] # LXC container hosts
Notes
- The script uses
set -eto exit immediately if any command fails - SSH must be configured to allow root login on all target hosts
- Consider running this during a maintenance window to minimize service disruption
- Review the playbook before first use to ensure it meets your security and operational requirements