This commit adds a new section for API utilities in the documentation and updates the project's directory structure to better organize related files.
125 lines
3.6 KiB
Markdown
125 lines
3.6 KiB
Markdown
# ansible_role_proxmox_provision
|
||
|
||
> A reusable Ansible role template for for Proxmox VE
|
||
> with a focus on provisioning and managing.
|
||
|
||
[](https://opensource.org/licenses/MIT)
|
||
[](https://www.ansible.com/)
|
||
[](https://www.proxmox.com/)
|
||
|
||
## 📌 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 | ✅ | ✅ | ✅ |
|
||
| API utilities | ✅ | ✅ | ✅ |
|
||
|
||
## 📂 Directory Structure
|
||
|
||
```text
|
||
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
|
||
│ └── utilities.yml # API utilities installation
|
||
├── templates/ # Jinja2 templates
|
||
└── vars/ # Non-overridable variables
|
||
└── main.yml
|
||
```
|
||
|
||
## 🔧 Configuration
|
||
|
||
## Default Variables (`defaults/main.yml`)
|
||
|
||
```yaml
|
||
# 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)
|
||
|
||
```yaml
|
||
---
|
||
- 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
|
||
|
||
```bash
|
||
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:
|
||
|
||
```bash
|
||
git clone https://server.com/user/ansible_role_proxmox_provision.git
|
||
```
|
||
|
||
## 📄 License
|
||
|
||
This project is licensed under the MIT License
|
||
See the [LICENSE](LICENSE) file for details.
|
||
|
||
## TODO
|
||
|
||
⏳ add molecule tests to prove idempotency
|
||
⏳ make the patch handler trigger on pve-manager upgrades
|
||
🔄 Split into VE version–aware tags ?
|
||
🕒 refactor
|
||
✗ debug
|
||
⭐ Improve documentation
|