52 lines
2.3 KiB
Markdown
52 lines
2.3 KiB
Markdown
# 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
|
|
|
|
1. [Prerequisites & Node Preparation](docs/01-prerequisites.md)
|
|
2. [Configuring the Inventory](docs/02-configuration.md)
|
|
3. [Running the Playbooks](docs/03-execution.md)
|
|
4. [Architecture & Phase Breakdown](docs/04-architecture.md)
|
|
5. [Linstor & Storage Deep Dive](docs/05-linstor-storage.md)
|
|
6. [Troubleshooting & FAQ](docs/06-troubleshooting.md)
|
|
|
|
## 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
|
|
|
|
```bash
|
|
# 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
|
|
```
|