Files
proxmox-post-install/docs/01-prerequisites.md
Francesco Zimbolo 8477f5b592 Docs rewrite
2026-04-24 12:58:14 +00:00

45 lines
2.1 KiB
Markdown

# 01 - Prerequisites & Node Preparation
## Node Requirements
Before running any playbook, each target node must meet the following conditions:
- **OS:** Proxmox VE 9.x freshly installed (Debian Trixie base).
- **Network:** Static management IP assigned and reachable from the control node.
- **SSH:** Your public key deployed to `root` on each node. The DevContainer forwards your local SSH agent automatically — run `ssh-copy-id root@<ip>` from inside the container if not already done.
- **Storage:** If using raw block devices for Linstor (e.g. `/dev/sda`), the device must either be clean or you must set `wipe_linstor_disks: true` in `group_vars`. The playbook will not silently overwrite a disk with existing data unless explicitly told to.
## Network Planning (Cluster Deployments)
For a 3-node Linstor cluster, plan two separate networks:
| Network | Purpose | Variable |
|---|---|---|
| Management | Ansible SSH, Proxmox GUI | `ansible_host` |
| Private (p2p) | Corosync heartbeat, DRBD replication | `priv_ip` |
The private network is a full-mesh point-to-point topology: each node has two dedicated NICs, one direct link to each of the other two nodes, bridged together into an interface named `p2p`. If a dedicated private network is not available, `priv_ip` can be omitted and `ansible_host` is used as fallback for both Corosync and DRBD traffic.
## Execution Environment
A local Ansible installation is not required. The repository ships with a VS Code DevContainer that pins all required Ansible versions and collections.
1. Open the repository in Visual Studio Code.
2. Ensure Docker or Podman and the **Dev Containers** extension are installed.
3. Select **Reopen in Container** — VS Code automatically forwards your local SSH agent into the container.
4. Open a terminal inside the container. All commands in this documentation assume you are working from the `ansible/` directory:
```bash
cd ansible/
```
Verify connectivity before proceeding:
```bash
ansible all -i inventories/<customer>/hosts.ini -m ping
```
---
[Index](../README.md) | [Next: Configuring the Inventory](02-configuration.md)