45 lines
2.1 KiB
Markdown
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)
|