Jose d2b127c70c
All checks were successful
ansible-lint / Ansible Lint (push) Successful in 17s
Gitleaks Scan / gitleaks (push) Successful in 4s
Markdown Lint / markdown-lint (push) Successful in 7s
ai-reviews / Review PR (pull_request) Successful in 12s
ansible-lint / Ansible Lint (pull_request) Successful in 11s
Gitleaks Scan / gitleaks (pull_request) Successful in 4s
Markdown Lint / markdown-lint (pull_request) Successful in 5s
chore 📦: Add environment variable to powertop.service.j2
This commit adds an environment variable to the powertop service configuration file. This change is necessary to ensure that power management settings are applied correctly during system startup.
2026-02-10 20:54:35 +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
2026-02-07 07:22:24 +01:00
2026-02-08 06:44:01 +01:00

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

📌 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
│   ├── 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
├── 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

Make the nag patch checksum-based (auto-repatch after upgrades) add molecule tests to prove idempotency make the patch handler trigger on pve-manager upgrades Add kernel power-saving tunables ? 🔄 Split into VE versionaware tags ? 🕒 refactor
✗ debug
Improve documentation

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