Proxmox 9 & Linstor HCI Provisioning Pipeline
Declarative Infrastructure as Code pipeline for bootstrapping bare-metal servers into production-ready Proxmox VE 9 (Debian Trixie) nodes — either as a 3-node HA cluster with a hyperconverged Linstor/DRBD storage stack, or as independent standalone nodes provisioned in parallel.
No local Ansible installation required. The repository ships with a VS Code DevContainer that pins all dependencies.
Index
- Prerequisites & Node Preparation
- Configuring the Inventory
- Running the Playbooks
- Architecture & Phase Breakdown
- Linstor & Storage Deep Dive
- Troubleshooting & FAQ
Repository Layout
ansible/
├── deploy.yml # Main playbook — full cluster provisioning
├── network.yml # Optional — configure p2p private bridge
├── ansible.cfg # Tuned defaults (pipelining, forks, remote_user)
├── inventories/
│ ├── _template/ # Copy this for each new customer/project
│ │ ├── hosts.ini
│ │ └── group_vars/all.yml
│ └── <customer>/ # One inventory per cluster
├── roles/
│ ├── p2p_network/ # Configures full-mesh p2p bridge
│ ├── linstor_repo/ # Adds LINBIT APT repository
│ ├── linstor_install/ # Installs DRBD, Linstor packages
│ ├── linstor_cluster/ # Registers nodes, configures /etc/hosts
│ ├── linstor_ha/ # HA controller via drbd-reactor
│ ├── linstor_storage/ # LVM thin pools, storage pool registration
│ └── proxmox_storage/ # Registers Linstor as Proxmox storage backend
└── docs/
Quick Start
# 1. Open repo in VS Code DevContainer
# 2. Copy and configure an inventory
cp -r ansible/inventories/_template ansible/inventories/<customer>
# 3. (Optional) Configure p2p private network bridge
ansible-playbook ansible/network.yml -i ansible/inventories/<customer>/hosts.ini
# 4. Deploy
ansible-playbook ansible/deploy.yml -i ansible/inventories/<customer>/hosts.ini
Description
Languages
Jinja
100%