Docs rewrite
This commit is contained in:
@@ -1,21 +1,44 @@
|
||||
# 01 - Prerequisites & Node Preparation
|
||||
|
||||
This documentation outlines the required state for bare-metal servers before executing the Ansible provisioning pipeline.
|
||||
## Node Requirements
|
||||
|
||||
## Node State
|
||||
* **OS:** Proxmox VE 9.x freshly installed.
|
||||
* **Authentication:** Root password known. *(Highly Recommended: Pre-deploy your local SSH public key to the nodes using `ssh-copy-id root@<ip>` before starting. This establishes passwordless authentication from your DevContainer/Control Node and prevents Ansible from prompting you for passwords).*
|
||||
* **Network:** Static IPs assigned. If deploying Linstor, the management interface and Corosync/DRBD replication should ideally be physically separated. If utilizing a single NIC, QoS/traffic shaping must be handled at the switch level to prioritize Corosync UDP (5404/5405) over DRBD replication traffic.
|
||||
* **Storage:** Target block devices intended for Linstor raw LVM provisioning must contain no existing partition tables, LVM metadata, or filesystems.
|
||||
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
|
||||
Local Ansible installation is not required. This repository enforces the use of an isolated VS Code DevContainer.
|
||||
|
||||
1. Open this repository in Visual Studio Code.
|
||||
2. Ensure Docker/Podman and the "Dev Containers" extension are installed.
|
||||
3. Select `Reopen in Container`. *(Note: VS Code automatically forwards your local SSH agent into the DevContainer).*
|
||||
4. Open a terminal within VS Code. All paths referenced in this documentation originate from the `ansible/` directory.
|
||||
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)
|
||||
|
||||
Reference in New Issue
Block a user