From e30248fdca5652ebd0a5203178fc7e107ccaf6a7 Mon Sep 17 00:00:00 2001 From: "Rasmus \"Pez\" Wejlgaard" Date: Tue, 28 Jul 2026 22:24:59 +0200 Subject: [PATCH] Copenhagen b and c decomm (#145) * decomm copenhagen-b and copenhagen-c * no SMB mount on copenhagen-a --- ansible/README.md | 4 ++-- ansible/inventory/host_vars/copenhagen-a.yml | 4 ++++ ansible/roles/proxmox_ve/tasks/main.yml | 7 ++++++- docs/hosts/copenhagen-a.md | 5 ++--- docs/services.md | 2 +- 5 files changed, 15 insertions(+), 7 deletions(-) diff --git a/ansible/README.md b/ansible/README.md index d1e133b..c6abe14 100644 --- a/ansible/README.md +++ b/ansible/README.md @@ -42,7 +42,7 @@ The deploy playbook runs in stages, each independently taggable (see `deploy.yml - `docker_hosts`: Docker Compose stacks from `services/` - `nuremberg-a`: poste.io mail (Docker) - `london-b`: `media_stack` + `backup` (rclone to B2) - - `proxmox_hosts` (`london-a`, `copenhagen-a`): `proxmox_ve` (apt repo, nag patch, CIFS storage) + - `proxmox_hosts` (`london-a`, `copenhagen-a`): `proxmox_ve` (apt repo, nag patch, CIFS storage on london-a only) - `zfs_hosts`: ZFS scrub scheduling Observability (node_exporter, systemd_exporter, Grafana Alloy) is part of the `common` baseline — every host gets it. @@ -62,7 +62,7 @@ Run a single stage: `ansible-playbook deploy.yml --tags docker` | `systemd_services` | Custom systemd units from `services/` | | `media_stack` | *Arr stack, Plex/Jellyfin, Samba, Syncthing on london-b | | `backup` | rclone-to-B2 cron job on london-b | -| `proxmox_ve` | PVE no-subscription repo, UI lockdown, CIFS storage | +| `proxmox_ve` | PVE no-subscription repo, UI lockdown, CIFS storage (opt-in via `proxmox_ve_mount_cifs_storage`) | | `zfs` | Weekly scrub cron on ZFS hosts | ## Inventory diff --git a/ansible/inventory/host_vars/copenhagen-a.yml b/ansible/inventory/host_vars/copenhagen-a.yml index 5eb68bf..d19c5c2 100644 --- a/ansible/inventory/host_vars/copenhagen-a.yml +++ b/ansible/inventory/host_vars/copenhagen-a.yml @@ -3,3 +3,7 @@ host_role: proxmox-ve host_description: "Proxmox VE hypervisor" host_location: "Copenhagen" ansible_python_interpreter: /usr/bin/python3 + +# Don't mount london-b's CIFS share here — it's on the London LAN, not worth +# the WAN/Tailscale hop for VM storage from Copenhagen. +proxmox_ve_mount_cifs_storage: false diff --git a/ansible/roles/proxmox_ve/tasks/main.yml b/ansible/roles/proxmox_ve/tasks/main.yml index 7097f27..9f77472 100644 --- a/ansible/roles/proxmox_ve/tasks/main.yml +++ b/ansible/roles/proxmox_ve/tasks/main.yml @@ -46,12 +46,15 @@ notify: Reload ufw # --- Storage --- +# london-b's CIFS share is only mounted for hosts on the same LAN (london-a) — +# it's not worth mounting over the WAN/Tailscale for a Copenhagen host. - name: Check if hdd CIFS storage is configured ansible.builtin.command: pvesh get /storage/hdd register: proxmox_ve_hdd_check changed_when: false failed_when: false + when: proxmox_ve_mount_cifs_storage | default(true) - name: Add hdd CIFS storage (london-b /pve share) ansible.builtin.command: >- @@ -63,4 +66,6 @@ --content images,backup,import,snippets,vztmpl,rootdir,iso no_log: true changed_when: true - when: proxmox_ve_hdd_check.rc != 0 + when: + - proxmox_ve_mount_cifs_storage | default(true) + - proxmox_ve_hdd_check.rc != 0 diff --git a/docs/hosts/copenhagen-a.md b/docs/hosts/copenhagen-a.md index 32d225c..0df211c 100644 --- a/docs/hosts/copenhagen-a.md +++ b/docs/hosts/copenhagen-a.md @@ -32,12 +32,11 @@ Compact Lenovo desktop — powered by a standard ThinkPad charging brick. Small, ### Storage -Proxmox is connected to the same CIFS share on **london-b** (`100.84.65.101 /pve`) used by london-a, for ISO/template/backup storage. The mount is configured by the `proxmox_ve` Ansible role. +Unlike london-a, this host does **not** mount london-b's CIFS share — it's not worth the WAN/Tailscale hop from Copenhagen for VM storage. Only local storage is configured (`proxmox_ve_mount_cifs_storage: false` in `host_vars/copenhagen-a.yml`). | Storage ID | Type | Backing | |---|---|---| | `local-lvm` | LVM-Thin | Local boot disk | -| `hdd` | CIFS | london-b `/pve` share | ### VMs @@ -50,7 +49,7 @@ Part of the `proxmox_hosts` group alongside london-a, sharing the `proxmox_ve` r - Swaps the enterprise apt repo for `pve-no-subscription` so updates work without a paid subscription - Patches `proxmoxlib.js` to suppress the subscription nag dialog - Restricts the web UI to the `tailscale0` interface via UFW -- Mounts the london-b CIFS storage +- Skips the london-b CIFS mount (`proxmox_ve_mount_cifs_storage: false`) — local storage only ## Networking diff --git a/docs/services.md b/docs/services.md index 92cb03b..c05301a 100644 --- a/docs/services.md +++ b/docs/services.md @@ -103,7 +103,7 @@ Repurposed gaming PC (previously ran Minecraft and a WoW/MaNGOS private server) |---------|------|-----------|------|-----| | Proxmox VE | 8006 | Native (Debian Bookworm-based PVE) | Proxmox login | copenhagen-a.pez.sh | -The web UI is exposed via Caddy at `copenhagen-a.pez.sh` but is also reachable directly over Tailscale. Proxmox storage is augmented with the same london-b CIFS share used by london-a (configured by the `proxmox_ve` Ansible role). +The web UI is exposed via Caddy at `copenhagen-a.pez.sh` but is also reachable directly over Tailscale. Unlike london-a, this host doesn't mount london-b's CIFS share — not worth the WAN/Tailscale hop for VM storage from Copenhagen — so it runs local storage only. ## Observability Agents