homelab/ansible/ansible-old/documentation/standards/environment-constraints.md

4.2 KiB
Raw Blame History

Environment constraints

Date: 2026-01-10
Status: Living document
Author: Chester + FrankGPT

Purpose

This document defines the hardware, software, and network constraints of the homelab environment. All playbooks and roles must respect these constraints.


Network topology

Important

Current operational state is still a flat network on 10.0.0.0/24. VLAN segmentation and target zone allocations in this document are migration targets, not fully applied runtime state.

Parameter Value
Subnet 10.0.0.0/24
Gateway 10.0.0.2
Primary DNS 10.0.0.2
Secondary DNS 8.8.8.8
Domain local (optional)

IP allocation scheme

Range Purpose
10.0.0.1 Reserved
10.0.0.2 Gateway / Primary DNS
10.0.0.3 - 10.0.0.199 DHCP / General devices
10.0.0.200 - 10.0.0.209 Proxmox hosts (physical)
10.0.0.210 - 10.0.0.219 Swarm managers (VMs)
10.0.0.220 - 10.0.0.229 Swarm workers (VMs) / legacy AI nodes during migration
10.0.0.230 - 10.0.0.239 AI workstations
10.0.0.240 - 10.0.0.248 Reserved / Future
10.0.0.249 - 10.0.0.250 NAS devices
10.0.0.251 - 10.0.0.254 Docker hosts / Misc

Host categories

Proxmox cluster (physical)

Hostname IP Hardware Notes
pve01 10.0.0.201 Lenovo SFF, 16 GB RAM, 512 GB NVMe First node, 2× NICs
pve02 10.0.0.202 (future)
pve03 10.0.0.203 (future)
pve04 10.0.0.204 (future)
pve05 10.0.0.205 (future)

Constraints:

  • Proxmox VE 8.x or 9.x
  • ansible_user=root for provisioning
  • Python 3 available at /usr/bin/python3

Swarm nodes (VMs on Proxmox)

Role Hostname pattern IP range Specs
Manager swarm-manager-X .211 - .215 4 GB RAM, 2 vCPU, 32 GB disk
Worker swarm-worker-X .221 - .225 4 GB RAM, 2 vCPU, 32 GB disk

Constraints:

  • Ubuntu 24.04 LTS (Noble)
  • Docker CE installed via official repo
  • ansible_user=chester

AI workstations (physical)

Hostname IP Hardware Notes
ai-lenovo 10.0.0.220 Laptop, 12 GB GPU Ubuntu Server

Constraints:

  • Ubuntu Server (not Desktop)
  • GPU drivers managed separately
  • ansible_user=chester

Storage / NAS (appliances)

Hostname IP Product Notes
synology 10.0.0.249 Synology NAS Proprietary Linux, limited shell
terramaster 10.0.0.250 TerraMaster NAS Proprietary Linux, limited shell

Constraints:

  • Caution required — proprietary OS, not standard Ubuntu
  • Use ansible_scp_if_ssh=True for Synology
  • Avoid destructive commands; test in check mode first
  • Limited Python support; prefer raw module when needed

Controller (watchtower)

Hostname IP Hardware Notes
localhost N/A Raspberry Pi 5 Ansible controller

Constraints:

  • ansible_connection=local
  • Runs all playbooks from this host
  • ARM64 architecture (consider when building containers)

Software standards

Component Version Notes
Ansible 2.15+ Core automation
Python 3.10+ Required on all managed hosts
Docker CE Latest stable Swarm mode
Proxmox VE 8.x or 9.x Hypervisor
Ubuntu 24.04 LTS Guest OS for VMs

Firewall / ports

Port Protocol Purpose Required on
22 TCP SSH All hosts
8006 TCP Proxmox GUI Proxmox hosts
2377 TCP Swarm cluster mgmt Swarm nodes
7946 TCP/UDP Swarm node comm Swarm nodes
4789 UDP Swarm overlay network Swarm nodes

Documentation mandate

Important

FrankGPT core principle: Documentation is not optional.

  • Every decision must be recorded in documentation/standards/
  • Every playbook must have a header comment explaining usage
  • Every variable must be documented in defaults or group_vars
  • When in doubt, write it down

Change log

Date Change Author
2026-01-10 Initial creation Chester + FrankGPT