Jose 0e8abb4d38
All checks were successful
ansible-lint / Ansible Lint (push) Successful in 13s
Gitleaks Scan / gitleaks (push) Successful in 4s
Markdown Lint / markdown-lint (push) Successful in 5s
Mark stale issues and pull requests / stale (push) Successful in 3s
Merge pull request 'chore 📦: Update file path for non-clustered environments in fail2ban.yml' (#52) from dev into main
Reviewed-on: #52
2026-03-02 19:03:49 +01:00
2026-02-07 07:22:24 +01:00
2026-02-07 07:22:24 +01:00
2026-02-07 07:22:24 +01:00
2026-02-07 07:22:24 +01:00
2026-02-07 07:22:24 +01:00
2026-02-07 07:22:24 +01:00

README ansible_role_proxmox_provision

A reusable Ansible role template for for Proxmox VE with a focus on provisioning and managing.

License: MIT Ansible Version Proxmox

📌 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 \ Proxmox Version 7 8 9
No-subscription repo
Enterprise repo disabled
Subscription nag removed
Swap handling
Logrotate protection
Powertop auto-tune
Utilities
Fail2Ban Integration

📂 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
│   ├── fail2ban.yml        # Fail2Ban integration tasks
│   ├── logrotate.yml       # logrotate setup
│   ├── main.yml            # Core tasks
│   ├── powertop.yml        # powertop setup
│   ├── repos.yml           # Repository setup
│   ├── subscription.yml    # Subscription nag removal
│   ├── swap.yml            # Swap setup
│   └── utilities.yml  # Utilities installation
├── 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

  1. 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

add molecule tests to prove idempotency make the patch handler trigger on pve-manager upgrades 🔄 Split into VE versionaware tags ? 🕒 refactor
✗ debug
Improve documentation

Description
No description provided
Readme MIT 383 KiB
Languages
Jinja 50.4%
Shell 49.6%