8341d6e295c9cbbe27aa3e355eaa201be44a48a5
This refactoring includes updating the README, changing the role name to focus on Proxmox VE, enhancing compatibility matrix, and refactoring default values for role variables. Handlers are updated to manage apt cache, restart pveproxy, and reload systemd. Role metadata is also updated for better Proxmox VE provisioning.
ansible_role_proxmox_provision
A reusable Ansible role template for for Proxmox VE with a focus on provisioning and managing.
📌 Key Features
✅ Proxmox VE Optimized - Specifically designed for Proxmox Virtual Environment ⬜ Idempotent - Safe to run multiple times ⏳ Security Hardened - Follows Ansible security best practices ⏳ Modular - Clear separation of concerns ⏳ Documented - Comprehensive README and variable documentation ⏳ Tested - Includes example playbook for validation
📊 Compatibility Matrix
| Feature | VE 7 | VE 8 | VE 9 |
|---|---|---|---|
| No-subscription repo | ✅ | ✅ | ✅ |
| Enterprise repo disabled | ✅ | ✅ | ✅ |
| Subscription nag removed | ✅ | ✅ | ✅ |
| Swap handling | ✅ | ✅ | ✅ |
| Logrotate protection | ✅ | ✅ | ✅ |
| Powertop auto-tune | ✅ | ✅ | ✅ |
📂 Directory Structure
ansible_role_proxmox_provision/
├── README.md # This file
├── defaults/ # Default role variables (overridable)
│ └── main.yml
├── handlers/ # Role handlers (for follow-up actions)
│ └── main.yml
├── meta/ # Role metadata
│ └── main.yml
├── tasks/ # Main role tasks
│ ├── backup.yml # Backup-related tasks
│ ├── main.yml # Core tasks
│ └── monitoring.yml # Monitoring setup
├── templates/ # Jinja2 templates
└── vars/ # Non-overridable variables
└── main.yml
🔧 Configuration
Default Variables (defaults/main.yml)
# Default values for role variables
## Swap handling
proxmox_disable_swap: true
proxmox_swapiness: 10
proxmox_min_ram_mb_for_no_swap: 16384
## Powertop
proxmox_enable_powertop: true
## Logrotate
proxmox_logrotate_maxsize: "100M"
proxmox_logrotate_rotate: 7
Example usage
Example Playbook (example-playbook.yml)
---
- hosts: proxmox_hosts
roles:
- role: ansible_role_proxmox_provision
vars:
proxmox_disable_swap: false
proxmox_swapiness: 20
proxmox_enable_powertop: true
3. Run the Playbook
ansible-playbook -i inventory.ini example-playbook.yml
🚀 Installation and Setup
Prerequisites
- Ansible 2.12 or higher
- Python 3.8 or higher
- Proxmox VE 7.x or higher
- Root/sudo access to Proxmox hosts
Installation
- Clone this repository or add as a dependency in your project:
git clone https://server.com/user/ansible_role_proxmox_provision.git
📄 License
This project is licensed under the MIT License
See the LICENSE file for details.
TODO
⏳ Make the nag patch checksum-based (auto-repatch after upgrades)
❌ Add kernel power-saving tunables ?
🔄 Split into VE version–aware tags ?
🕒 refactor
✗ debug
⭐ Improve documentation
Languages
Jinja
50.4%
Shell
49.6%