docs đ TP20+TP21 live: Platform-Postgres (pve) + Nautobot-Stack (NAS), sw2 final auf .99.12
TP20: Postgres-16-LXC (105, pve, 10.40.20.20) provisioniert, UTF8/en_US.UTF-8, wal_level=replica, DB+Rolle nautobot angelegt, End-to-End verifiziert. archive_mode bewusst noch aus bis TP18/pgBackRest steht. TP21: Nautobot-Stack (ghcr.io/nautobot/nautobot:3.1.7) als Portainer-Stack auf NAS live (App+Worker+Scheduler+Redis), DB=platform-pg, API-Smoke-Test grĂźn. Healthcheck- gated Worker/Scheduler-Start ergänzt (Migration-Race-Condition beim Erstboot gefixt). TP19.1: sw2 jetzt final auf 10.40.99.12 (statisch) â Christoph Ăźber Klickanleitung. Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
This commit is contained in:
10
CLAUDE.md
10
CLAUDE.md
@@ -28,10 +28,12 @@ GW je VLAN = `.1` ¡ APs: ap1=`.1`, ap2=`.2` ¡ Switches: ALLNET=`.11`, Omada=`.
|
|||||||
| Gerät | IP | Zugang |
|
| Gerät | IP | Zugang |
|
||||||
|---|---|---|
|
|---|---|---|
|
||||||
| ALLNET Core-Switch (sw1) | 10.40.41.11 (interim, VLAN1) | `telnet 10.40.41.11` ¡ User: `claudecode` ¡ PW: `switch/.secrets` |
|
| ALLNET Core-Switch (sw1) | 10.40.41.11 (interim, VLAN1) | `telnet 10.40.41.11` ¡ User: `claudecode` ¡ PW: `switch/.secrets` |
|
||||||
| Omada Access-Switch (sw2) | **10.40.41.181** (post-TP2.1-Reset, VLAN1 â Korrektur 2026-07-16, alte `.12` war stale) | Web-UI HTTPS, **standalone ohne Controller** (TP2.1 â
2026-07-16, User hat Recovery nach Werks-Reset komplett selbst gemacht) ¡ Creds `sw2/.secrets` (lÜst `omada/.secrets` ab, dort als obsolet markiert) |
|
| Omada Access-Switch (sw2) | **10.40.99.12** (statisch, VLAN99 â TP19.1 â
2026-07-16, Christoph selbst Ăźber `sw2/ui-guides/01-vlan99-mgmt-cutover.md`) | Web-UI HTTPS, **standalone ohne Controller** (TP2.1 â
2026-07-16) ¡ Creds `sw2/.secrets` (Host-Wert dort veraltet, IP hier maĂgeblich) |
|
||||||
| hAP ax² #1 (ap1) | 10.40.41.1 (bridge/VLAN1 Mgmt) | MikroMCP (live) ¡ **TP4 â
: L3-Router, GW je VLAN = .1** |
|
| hAP ax² #1 (ap1) | 10.40.10.1 (Mgmt-Zugriff) ¡ `platform-pg.bf.lan`-artige DNS-Statics unter `bf.lan` | MikroMCP (live) ¡ **TP4 â
: L3-Router, GW je VLAN = .1**, vlan99-GW `10.40.99.1` seit TP4 live |
|
||||||
| hAP ax² #2 (ap2) | 10.40.41.2 | MikroMCP (live) ¡ **Port 2 am Omada-Switch** |
|
| hAP ax² #2 (ap2) | 10.40.41.2 (VLAN1, TP19.1-Umzug auf `.99.2` vertagt bis TP21/Nautobot) | MikroMCP (live) ¡ **Port 2 am Omada-Switch** |
|
||||||
| NAS (nas-bf, DS923) | 10.40.41.10 | SSH ¡ Docker (Portainer endpointId=14) |
|
| NAS (nas-bf, DS923) | 10.40.20.10 | SSH `adm.christoph@10.40.20.10` (kein PW nÜtig) ¡ Docker (Portainer endpointId=14) |
|
||||||
|
| platform-pg (LXC 105, pve) | 10.40.20.20 | SSH via pve (`pct exec 105 --`) ¡ **TP20 â
2026-07-16: PG16, DB `nautobot`, Creds `postgres/.secrets`** |
|
||||||
|
| Nautobot (Portainer-Stack, NAS) | 10.40.20.30 | Portainer ep14, Stack Id 203 ¡ **TP21 â
2026-07-16: `ghcr.io/nautobot/nautobot:3.1.7`, DB=platform-pg, Creds in `docs/nas-vlan20/stacks/210-nautobot.yml` (gitignored)** â Golden-Config-App/Device-Adoption noch offen |
|
||||||
| ~~Omada-Controller~~ | â | â **entfernt 2026-07-16** (User hat den Container gelĂśscht â overkill fĂźr 1 Switch auf der Abschussliste, s. TP2.1/TP15) |
|
| ~~Omada-Controller~~ | â | â **entfernt 2026-07-16** (User hat den Container gelĂśscht â overkill fĂźr 1 Switch auf der Abschussliste, s. TP2.1/TP15) |
|
||||||
| ~~omada-mcp~~ | â | â **entfernt 2026-07-16** â mit dem Controller gelĂśscht. MCP-Eintrag in Claude-Settings/`~/.claude.json` ist verwaist (Server wird nie mehr connecten), Aufräumen dort noch offen |
|
| ~~omada-mcp~~ | â | â **entfernt 2026-07-16** â mit dem Controller gelĂśscht. MCP-Eintrag in Claude-Settings/`~/.claude.json` ist verwaist (Server wird nie mehr connecten), Aufräumen dort noch offen |
|
||||||
| pve-mcp | 10.40.20.173 | **StreamableHTTP `http://10.40.20.173:3000/` (Root-Pfad, NICHT /sse)** ¡ NAS-Stack ep14 (=nas-bf `.20.10`, NICHT LXC .126!) id 202 (vlan20-only, TP14.1 2026-07-10) ¡ **mcp-pve v0.6.1 (Upgrade 2026-07-10: Single-Session-Bug 0.4.8 âServer already initialized" gefixt, TP14.2a)** ¡ `~/.claude.json` â |
|
| pve-mcp | 10.40.20.173 | **StreamableHTTP `http://10.40.20.173:3000/` (Root-Pfad, NICHT /sse)** ¡ NAS-Stack ep14 (=nas-bf `.20.10`, NICHT LXC .126!) id 202 (vlan20-only, TP14.1 2026-07-10) ¡ **mcp-pve v0.6.1 (Upgrade 2026-07-10: Single-Session-Bug 0.4.8 âServer already initialized" gefixt, TP14.2a)** ¡ `~/.claude.json` â |
|
||||||
|
|||||||
@@ -21,7 +21,7 @@
|
|||||||
| ap1 (Router/hAP) | 10.40.41.1 | Router/GW | alle (.1) + Mgmt | bleibt `.1` je VLAN; Mgmt `10.40.99.1` | ⏠| ist GW, kein âUmzug" |
|
| ap1 (Router/hAP) | 10.40.41.1 | Router/GW | alle (.1) + Mgmt | bleibt `.1` je VLAN; Mgmt `10.40.99.1` | ⏠| ist GW, kein âUmzug" |
|
||||||
| ap2 (hAP) | 10.40.41.2 | AP | 99 MGMT | `10.40.99.2` | ⏠| |
|
| ap2 (hAP) | 10.40.41.2 | AP | 99 MGMT | `10.40.99.2` | ⏠| |
|
||||||
| sw1 ALLNET (Core) | 10.40.41.11 | Switch-Mgmt | 99 MGMT | `10.40.99.11` | ⏠| Mgmt-VLAN-Wechsel = Lockout-Risiko, sorgsam |
|
| sw1 ALLNET (Core) | 10.40.41.11 | Switch-Mgmt | 99 MGMT | `10.40.99.11` | ⏠| Mgmt-VLAN-Wechsel = Lockout-Risiko, sorgsam |
|
||||||
| sw2 Omada (ES208G) | **10.40.41.181** (post-TP2.1-Reset, Korrektur 2026-07-16 â alte `.12` war stale) | Switch-Mgmt | 99 MGMT | `10.40.99.12` | ⏠| |
|
| sw2 Omada (ES208G) | ~~10.40.41.181~~ | Switch-Mgmt | 99 MGMT | `10.40.99.12` | â
**live** | TP19.1 2026-07-16, Christoph selbst Ăźber Klickanleitung |
|
||||||
| NAS nas-bf (DS923) | ~~10.40.41.10~~ | INFRA | 20 INFRA | `10.40.20.10` | â
**live** | TP14.1 2026-07-10; DNS `nas.bf.lan` nachgezogen 2026-07-16 |
|
| NAS nas-bf (DS923) | ~~10.40.41.10~~ | INFRA | 20 INFRA | `10.40.20.10` | â
**live** | TP14.1 2026-07-10; DNS `nas.bf.lan` nachgezogen 2026-07-16 |
|
||||||
| ~~Omada-Controller~~ | â | Service (macvlan/DS923) | â | â | â **entfernt** | User hat den Container 2026-07-16 gelĂśscht (overkill fĂźr 1 Switch auf der Abschussliste, s. TP2.1/TP15). DNS-Eintrag `omada.bf.lan` entfernt |
|
| ~~Omada-Controller~~ | â | Service (macvlan/DS923) | â | â | â **entfernt** | User hat den Container 2026-07-16 gelĂśscht (overkill fĂźr 1 Switch auf der Abschussliste, s. TP2.1/TP15). DNS-Eintrag `omada.bf.lan` entfernt |
|
||||||
| ~~omada-mcp~~ | â | Service (pve-LXC) | â | â | â **entfernt** | mit dem Controller zusammen gelĂśscht 2026-07-16 (MCP-Server verwaist, in Claude-Settings noch registriert â Aufräumen offen). DNS-Eintrag `omada-mcp.bf.lan` entfernt |
|
| ~~omada-mcp~~ | â | Service (pve-LXC) | â | â | â **entfernt** | mit dem Controller zusammen gelĂśscht 2026-07-16 (MCP-Server verwaist, in Claude-Settings noch registriert â Aufräumen offen). DNS-Eintrag `omada-mcp.bf.lan` entfernt |
|
||||||
@@ -31,6 +31,9 @@
|
|||||||
| Mac mini | 10.40.41.167 | INFRA/Server | 20 INFRA | `10.40.20.167` | â
**live** | umgezogen; Omada P7 + Access-INFRA (VLAN20, ohne VLAN1) â
|
|
| Mac mini | 10.40.41.167 | INFRA/Server | 20 INFRA | `10.40.20.167` | â
**live** | umgezogen; Omada P7 + Access-INFRA (VLAN20, ohne VLAN1) â
|
|
||||||
| ~~FritzBox 6660~~ | â | WAN/Transfer | â | â | â **physisch entfernt** | Liwest-Kabelmodemtausch 2026-07-01 (Edge-Cutover), kein ZurĂźck â Arris-Kabelmodem im Bridge-Mode ersetzt sie komplett |
|
| ~~FritzBox 6660~~ | â | WAN/Transfer | â | â | â **physisch entfernt** | Liwest-Kabelmodemtausch 2026-07-01 (Edge-Cutover), kein ZurĂźck â Arris-Kabelmodem im Bridge-Mode ersetzt sie komplett |
|
||||||
|
|
||||||
|
| platform-pg (LXC 105, pve) | â (neu) | Platform-Postgres (TP20), PG16, DB `nautobot` | 20 INFRA | `10.40.20.20` | â
**live** | TP20 2026-07-16: erstellt via `pct create`, Ubuntu 24.04 (native PG16, kein PGDG-Repo nĂśtig), UTF8/en_US.UTF-8, `wal_level=replica`, `archive_mode` bewusst noch aus (s. Memory) bis pgBackRest/Garage-S3 da ist; Creds `postgres/.secrets` |
|
||||||
|
| nautobot (Portainer-Stack, NAS) | â (neu) | Nautobot Golden Config (TP21), App/API | 20 INFRA | `10.40.20.30` | â
**live** | TP21 2026-07-16: `ghcr.io/nautobot/nautobot:3.1.7`, ep14 Stack Id 203, DB=platform-pg; Begleitcontainer `nautobot-worker`.20.31, `nautobot-scheduler`.20.32, `nautobot-redis`.20.34 |
|
||||||
|
|
||||||
> Weitere Geräte (Home Assistant, HA-IoT, Drucker-Reservierung, etc.) hier ergänzen, sobald relevant.
|
> Weitere Geräte (Home Assistant, HA-IoT, Drucker-Reservierung, etc.) hier ergänzen, sobald relevant.
|
||||||
|
|
||||||
## Migrations-Reihenfolge & Risiko
|
## Migrations-Reihenfolge & Risiko
|
||||||
|
|||||||
@@ -338,7 +338,7 @@ FT kaschierte das bisher als âRoaming" statt âschwache Abdeckung".
|
|||||||
- Erst wenn TP14.1â14.3 durch (alle Origins/Connectoren in VLAN20) â dann TP5 (Deny-by-default) starten. Reines Reihenfolge-Gate, kein eigener Change.
|
- Erst wenn TP14.1â14.3 durch (alle Origins/Connectoren in VLAN20) â dann TP5 (Deny-by-default) starten. Reines Reihenfolge-Gate, kein eigener Change.
|
||||||
|
|
||||||
### TP15 â HW-Refresh: Switching + Router + DC-USV ⸠đĄ Beschaffung läuft, **Lieferung 2026-07-17 (morgen)** â `docs/hw-refresh-requirements.md`, Memory `project_mikrotik_commit_nautobot_gc`
|
### TP15 â HW-Refresh: Switching + Router + DC-USV ⸠đĄ Beschaffung läuft, **Lieferung 2026-07-17 (morgen)** â `docs/hw-refresh-requirements.md`, Memory `project_mikrotik_commit_nautobot_gc`
|
||||||
- đŚ **2Ă CRS326-24G-2S+RM werden morgen (2026-07-17) geliefert.** Sequenzierung ggĂź. Nautobot (TP21, noch Wochen entfernt: TP18âTP20âTP20.1âTP21 + jetzt Komodo-Abh.) **noch zu klären** â Governance-Regel âConfig exklusiv Ăźber Nautobot" (s. oben) steht in Spannung zu âConfig vorab machen" (User-Wunsch 2026-07-16): offen ist, ob (a) nur Config-as-Code/Intended-Config **vorbereitet** wird (Hardware bleibt bis Nautobot steht ungenutzt/eingelagert), oder (b) die Switches zeitnah klassisch von Hand eingebaut werden (verstĂśĂt gegen die frische Regel, Nautobot importiert später den Ist-Stand), oder (c) alles wartet bis Nautobot steht. Ebenfalls offen: lohnt sich der TP19.1-sw1/sw2-VLAN99-Umzug noch, wenn die CRS326-AblĂśsung so nah ist?
|
- đŚ **2Ă CRS326-24G-2S+RM werden morgen (2026-07-17) geliefert, Produktivsetzung spätestens Montag 2026-07-20 (User-Entscheid 2026-07-16).** Sequenzierung ggĂź. Nautobot geklärt: **TP20+TP21 werden bis dahin fast-getrackt** (TP18/Komodo als Blocker entfernt, s. TP20) â Ziel ist, dass Nautobot **vor** der CRS326-Produktivsetzung steht und die Switches **direkt als Nautobot-verwaltete Geräte adoptiert** werden, statt erst von Hand konfiguriert und später importiert. sw1/sw2-VLAN99-Umzug (TP19.1) läuft parallel dazu on-demand, unabhängig davon.
|
||||||
- **đ§ Grundsatzentscheid (2026-07-14, korrigiert 2026-07-15): reines MikroTik-Ecosystem â Routing + Switching + WLAN.** **Omada bekommt KEINE Rolle** (weder Switching noch WLAN â der ursprĂźngliche âOmada=WLAN"-Satz war ein Fehlschluss beim Dokumentieren, User-Korrektur 2026-07-15: âWLAN war NIE von Omada die Rede"). BegrĂźndung Switching: Projektziel #1 **CAKE** nur RouterOS/OpenWrt/OPNsense (Omada-Gateway kann kein CAKE) â Switching = MikroTik CRS. WLAN bleibt auf hAP ax²/CAPsMAN (kein EAP-Kauf), Coverage-Fix bleibt Platzierungsfrage (TP3.3). Verworfene Vollvarianten (Omada-only, MikroTik-only) samt BegrĂźndung + Ansible/Nautobot-Recherche â Memory. **Anlass der Korrektur:** Omada-Controllerâsw2-Link beim VLAN20-Umzug (TP14.1) zerbrochen, versehentlicher Werks-Reset bei Rettungsversuch, fehlerhafter Wiederherstellungsversuch â sw2 wird standalone neu eingerichtet, s. **TP2.1**.
|
- **đ§ Grundsatzentscheid (2026-07-14, korrigiert 2026-07-15): reines MikroTik-Ecosystem â Routing + Switching + WLAN.** **Omada bekommt KEINE Rolle** (weder Switching noch WLAN â der ursprĂźngliche âOmada=WLAN"-Satz war ein Fehlschluss beim Dokumentieren, User-Korrektur 2026-07-15: âWLAN war NIE von Omada die Rede"). BegrĂźndung Switching: Projektziel #1 **CAKE** nur RouterOS/OpenWrt/OPNsense (Omada-Gateway kann kein CAKE) â Switching = MikroTik CRS. WLAN bleibt auf hAP ax²/CAPsMAN (kein EAP-Kauf), Coverage-Fix bleibt Platzierungsfrage (TP3.3). Verworfene Vollvarianten (Omada-only, MikroTik-only) samt BegrĂźndung + Ansible/Nautobot-Recherche â Memory. **Anlass der Korrektur:** Omada-Controllerâsw2-Link beim VLAN20-Umzug (TP14.1) zerbrochen, versehentlicher Werks-Reset bei Rettungsversuch, fehlerhafter Wiederherstellungsversuch â sw2 wird standalone neu eingerichtet, s. **TP2.1**.
|
||||||
- **đ Switches: 2Ă CRS326-24G-2S+RM bestellt (2026-07-14 â CSS326-Fehlbestellung storniert â CRS).** 24Ă1G + 2ĂSFP+, lĂźfterlos, DC-input (USV-tauglich). LĂśsen ALLNET-Core (sw1) + Omada-ES208G (sw2, s. TP2.1 â Solo/Interim bis CRS-Tausch) + Cudy ab.
|
- **đ Switches: 2Ă CRS326-24G-2S+RM bestellt (2026-07-14 â CSS326-Fehlbestellung storniert â CRS).** 24Ă1G + 2ĂSFP+, lĂźfterlos, DC-input (USV-tauglich). LĂśsen ALLNET-Core (sw1) + Omada-ES208G (sw2, s. TP2.1 â Solo/Interim bis CRS-Tausch) + Cudy ab.
|
||||||
- â
**CRS = RouterOS-fähig â in-model:** MikroMCP-Write + Nautobot Golden Config (TP21) managen auch die **Switches**, nicht nur den Router â config-as-code deckt den **ganzen Kabel-Fabric**. (SwOS-Boot bliebe als Fallback mĂśglich, aber nicht genutzt.)
|
- â
**CRS = RouterOS-fähig â in-model:** MikroMCP-Write + Nautobot Golden Config (TP21) managen auch die **Switches**, nicht nur den Router â config-as-code deckt den **ganzen Kabel-Fabric**. (SwOS-Boot bliebe als Fallback mĂśglich, aber nicht genutzt.)
|
||||||
@@ -434,27 +434,38 @@ FT kaschierte das bisher als âRoaming" statt âschwache Abdeckung".
|
|||||||
- **Teardown-Sequenz (angepasst an den Live-Stand):** VLAN1-Client-Sweep ist **schon fast leer** (nur sw1-Mgmt + pve-Interim reachable) â `defconf`/pool-v1 ist **bereits disabled** â cudy-Abbau **entfällt** (cudy1 umgenutzt statt abgebaut, cudy2 tot) â â
**SwitchBot + Twinkly erledigt (2026-07-16)** â **verbleibt:** Media-Check (B1.3), pve-`.41.100` abräumen (B1.5), Interim-KrĂźcken bewerten (ap2 `frame-types=admit-only-vlan-tagged`, `st-main rrm/wnm`), Inventar/`ip-plan`/DNS `.41âZiel` final.
|
- **Teardown-Sequenz (angepasst an den Live-Stand):** VLAN1-Client-Sweep ist **schon fast leer** (nur sw1-Mgmt + pve-Interim reachable) â `defconf`/pool-v1 ist **bereits disabled** â cudy-Abbau **entfällt** (cudy1 umgenutzt statt abgebaut, cudy2 tot) â â
**SwitchBot + Twinkly erledigt (2026-07-16)** â **verbleibt:** Media-Check (B1.3), pve-`.41.100` abräumen (B1.5), Interim-KrĂźcken bewerten (ap2 `frame-types=admit-only-vlan-tagged`, `st-main rrm/wnm`), Inventar/`ip-plan`/DNS `.41âZiel` final.
|
||||||
- Abh.: **TP14 â
** (Hosts raus aus VLAN1), **TP17 â
** (Shellys raus). Verwandt: `project_vlan1_dhcp_incident` (cudy-Dual-DHCP-Leak), TP5 (Deny-by-default danach sauberer). SSoT hier + `docs/tp19-vlan1-cudy-teardown-runbook.md`. Folge: **TP19.1**.
|
- Abh.: **TP14 â
** (Hosts raus aus VLAN1), **TP17 â
** (Shellys raus). Verwandt: `project_vlan1_dhcp_incident` (cudy-Dual-DHCP-Leak), TP5 (Deny-by-default danach sauberer). SSoT hier + `docs/tp19-vlan1-cudy-teardown-runbook.md`. Folge: **TP19.1**.
|
||||||
|
|
||||||
#### TP19.1 â VLAN99-MGMT-Cutover (sw1/sw2/ap2-Mgmt VLAN1 â VLAN99) ⸠Ⳡap1-Teil â
, ap2 auf Nautobot vertagt, sw1/sw2 offen (Stand 2026-07-16)
|
#### TP19.1 â VLAN99-MGMT-Cutover (sw1/sw2/ap2-Mgmt VLAN1 â VLAN99) ⸠Ⳡap1 â
, sw2 â
, ap2 auf Nautobot vertagt, sw1 offen (Stand 2026-07-16)
|
||||||
- **Scope:** die einzigen Dinge, die TP19s Hauptteil bewusst in VLAN1 belässt â sw1 (`.41.11`), sw2 (`.41.181`), ap2-Mgmt (`.41.2`) â auf VLAN 99 (MGMT, `10.40.99.0/24`) umziehen. Erst danach ist VLAN1 wirklich **komplett** weg, nicht nur als Client-Netz.
|
- **Scope:** die einzigen Dinge, die TP19s Hauptteil bewusst in VLAN1 belässt â sw1 (`.41.11`), sw2, ap2-Mgmt (`.41.2`) â auf VLAN 99 (MGMT, `10.40.99.0/24`) umziehen. Erst danach ist VLAN1 wirklich **komplett** weg, nicht nur als Client-Netz.
|
||||||
- **User-Entscheid (2026-07-16):** kein eigenständiges TP-Nummer â bewusst als **Unterpunkt von TP19** gefĂźhrt (âVLAN1 killen"), nicht als TP22 o.ä.
|
- **User-Entscheid (2026-07-16):** kein eigenständiges TP-Nummer â bewusst als **Unterpunkt von TP19** gefĂźhrt (âVLAN1 killen"), nicht als TP22 o.ä.
|
||||||
- â
**ap1-Teil erledigt (2026-07-16):** ap1 brauchte keinen funktionalen Umzug (vlan99-Interface/GW `.99.1` läuft schon seit TP4) â nur der kosmetische DNS-Static-Nachtrag `ap1.bf.lan` `10.40.41.1`â`10.40.99.1` war offen, per MikroMCP erledigt (dry-runâapply, `manage_dns_entry`).
|
- â
**ap1-Teil erledigt (2026-07-16):** ap1 brauchte keinen funktionalen Umzug (vlan99-Interface/GW `.99.1` läuft schon seit TP4) â nur der kosmetische DNS-Static-Nachtrag `ap1.bf.lan` `10.40.41.1`â`10.40.99.1` war offen, per MikroMCP erledigt (dry-runâapply, `manage_dns_entry`).
|
||||||
|
- â
**sw2-Teil erledigt (2026-07-16, Christoph selbst Ăźber die Klickanleitung):** sw2 jetzt auf **`10.40.99.12`** (statisch, planmäĂiger Zielwert aus `ip-plan.md`) â per Ping verifiziert. Zwischenzeitlich war das Gerät kurz auf einer *dynamischen* `10.40.99.200`-Lease aufgetaucht (unklare Ursache, s. Memory `project_tp20_tp21_fasttrack_20260716`), jetzt aber sauber auf der geplanten statischen Adresse. `CLAUDE.md`/`ip-plan.md` nachgezogen.
|
||||||
- đ **ap2-Teil bewusst vertagt (User-Entscheid 2026-07-16): erst NACH Nautobot (TP21).** Nautobot Ăźbernimmt dann in einem Rutsch ap1 + ap2 + die neuen CRS326-Switches (TP15) als config-as-code-Fleet â der ap2-Mgmt-VLAN-Umzug wird also nicht mehr isoliert von Hand gemacht, sondern Teil der Nautobot-Erstadoption. `ap2.bf.lan`-DNS-Static bleibt bewusst auf `10.40.41.2` bis dahin.
|
- đ **ap2-Teil bewusst vertagt (User-Entscheid 2026-07-16): erst NACH Nautobot (TP21).** Nautobot Ăźbernimmt dann in einem Rutsch ap1 + ap2 + die neuen CRS326-Switches (TP15) als config-as-code-Fleet â der ap2-Mgmt-VLAN-Umzug wird also nicht mehr isoliert von Hand gemacht, sondern Teil der Nautobot-Erstadoption. `ap2.bf.lan`-DNS-Static bleibt bewusst auf `10.40.41.2` bis dahin.
|
||||||
- đ **TP19.1 war die letzte Ausnahme vom ap1/ap2-Config-Freeze â der jetzt (2026-07-16) zur generellen Regel ausgeweitet wurde** (s. Governance-Entscheid oben): **jede** Gerätekonfiguration kĂźnftig ausschlieĂlich Ăźber Nautobot, keine direkten Ănderungen mehr an einzelnen im Netz verstreuten Geräten. Der ap1-DNS-Fix oben war die letzte direkte MikroMCP-Write-Aktion unter der alten (engeren) Regel.
|
- đ **TP19.1 war die letzte Ausnahme vom ap1/ap2-Config-Freeze â der jetzt (2026-07-16) zur generellen Regel ausgeweitet wurde** (s. Governance-Entscheid oben): **jede** Gerätekonfiguration kĂźnftig ausschlieĂlich Ăźber Nautobot, keine direkten Ănderungen mehr an einzelnen im Netz verstreuten Geräten. Der ap1-DNS-Fix oben war die letzte direkte MikroMCP-Write-Aktion unter der alten (engeren) Regel.
|
||||||
- âł **sw1/sw2-Teil: Status offen, hängt an der CRS326-Sequenzierung.** Klickanleitungen liegen fertig vor (`switch/ui-guides/02-vlan99-mgmt-cutover.md`, `sw2/ui-guides/01-vlan99-mgmt-cutover.md`), aber ob sie noch ausgefĂźhrt werden oder obsolet sind, hängt davon ab, wie TP15 (CRS326-Lieferung 2026-07-17) gehandhabt wird â s. TP15.
|
- âł **sw1-Teil: Klickanleitung fertig, AusfĂźhrung on-demand (User-Entscheid 2026-07-16).** `switch/ui-guides/02-vlan99-mgmt-cutover.md` liegt bereit â Christoph entscheidet spontan, ob er noch klickt oder direkt auf CRS326 wartet. Nicht blockierend, kein Diskussionsbedarf mehr.
|
||||||
- **Bereits vorbereitet:** `docs/ip-plan.md` Phase 2 hat schon einen Entwurf (ap2â`10.40.99.2`, sw2â`10.40.99.12`, sw1â`10.40.99.11`, âLockout-Risiko, sorgsam", sw1 zuletzt).
|
- **Bereits vorbereitet:** `docs/ip-plan.md` Phase 2 hat schon einen Entwurf (ap2â`10.40.99.2`, sw1â`10.40.99.11`, âLockout-Risiko, sorgsam", sw1 zuletzt).
|
||||||
- **Abh.:** TP19-Hauptteil (VLAN1-Client-Retirement) â logisch danach, da VLAN99 als eigenes Mgmt-Netz erst dann wirklich nĂśtig wird, wenn VLAN1 sonst leer ist. sw1-Teil braucht sw1-Telnet-Zugriff (User macht sw1-Changes direkt, s. Feedback-Memory) â Lockout-Risiko am grĂśĂten bei sw1 (einziger Netzpfad zu sw2 hängt am Uplink).
|
- **Abh.:** TP19-Hauptteil (VLAN1-Client-Retirement) â logisch danach, da VLAN99 als eigenes Mgmt-Netz erst dann wirklich nĂśtig wird, wenn VLAN1 sonst leer ist. sw1-Teil braucht sw1-Telnet-Zugriff (User macht sw1-Changes direkt, s. Feedback-Memory) â Lockout-Risiko am grĂśĂten bei sw1 (einziger Netzpfad zu sw2 hängt am Uplink).
|
||||||
|
|
||||||
### TP20 â Platform-Datenbank (Postgres Precious-Tier + MariaDB Tier-2) ⸠đ KONZEPT (2026-07-14) â Memory `project_mikrotik_commit_nautobot_gc`
|
### TP20 â Platform-Datenbank (Postgres Precious-Tier + MariaDB Tier-2) ⸠â
**Plattform live (2026-07-16)** â Nautobot-DB angelegt, vw-Migration (TP20.1) offen â Memory `project_mikrotik_commit_nautobot_gc`
|
||||||
|
- â
**Platform-Postgres live (2026-07-16):** LXC 105 auf pve, `platform-pg.bf.lan` / `10.40.20.20`, Ubuntu 24.04 (native PG16-Paket, kein PGDG-Repo nĂśtig â bewusste Abweichung von der sonstigen Debian/community-scripts-Konvention der Ăźbrigen pve-LXCs, aus PG16-VerfĂźgbarkeitsgrĂźnden). Cluster mit `--locale en_US.UTF-8 -e UTF8` neu initialisiert (Erstinstallation lief in `C`/`SQL_ASCII`, fĂźr Nautobot ungeeignet, korrigiert). `wal_level=replica` gesetzt; **`archive_mode` bewusst noch NICHT an** â ohne pgBackRest/Garage-S3 (TP18) zum Prunen wĂźrde archivierte WAL unbegrenzt wachsen und die kleine 8GB-Disk fĂźllen; wird nachgezogen sobald TP18 steht. Rolle+DB `nautobot` angelegt, `pg_hba.conf` erlaubt `scram-sha-256` aus `10.40.20.0/24`. End-to-End-Verbindungstest (Netzwerk, nicht nur localhost) erfolgreich. Creds in `postgres/.secrets` (gitignored, `chmod 600`).
|
||||||
- **AuslĂśser:** Mehrere Dienste brauchen zentrale DB (Nautobot-SoT [TP21], Vaultwarden, HA-Recorder). Grundsatzentscheid statt Nautobot-InsellĂśsung â âwir skalieren schneller als wir schauen kĂśnnen" (User).
|
- **AuslĂśser:** Mehrere Dienste brauchen zentrale DB (Nautobot-SoT [TP21], Vaultwarden, HA-Recorder). Grundsatzentscheid statt Nautobot-InsellĂśsung â âwir skalieren schneller als wir schauen kĂśnnen" (User).
|
||||||
|
- â ď¸ **Abh.-Korrektur (User 2026-07-16): TP18 (Garage-S3) ist KEINE Vorbedingung mehr â âhat mit dem Netz nichts zu tun", transitiv aus der TP21-Kette entfernt.** pgBackRestâGarage-S3 (s.u.) wird **nachgezogen sobald Garage existiert**, blockiert aber nicht mehr den Start. `wal_level=replica`/`archive_mode` kĂśnnen mit einem Platzhalter/lokalen Archive-Ziel hochgezogen werden, produktives Off-Site-PITR kommt später.
|
||||||
|
- â ď¸ **Komodo-Abh. (s. TP2/Memory `project_komodo_tp_pending`) vorerst zurĂźckgestellt:** Komodo selbst existiert noch nicht als laufendes System â kann also nicht âdarĂźber" deployt werden. **Entscheidung (Claude, 2026-07-16, transparent statt stillschweigend): Postgres-LXC + Nautobot-Stack werden jetzt direkt gebaut (LXC/Docker-Compose), Komodo adoptiert sie später** â gleiches Muster wie bei den CRS326 (Hardware/Stack zuerst lauffähig, Management-Layer zieht nach). Sag Bescheid, falls das nicht gewĂźnscht ist.
|
||||||
|
- đ **Ressourcen-Check 2026-07-16 (live geprĂźft, SSH):**
|
||||||
|
- **pve** (10.40.20.100): 4 vCPU, **15 GB RAM total, ~12 GB belegt, nur ~2-3 GB frei, 3 GB bereits im Swap** â eng! GrĂśĂter Verbraucher: HAOS-VM (`haos`, vmid 100) mit ~8,2 GB aktiv von 10 GB Limit. Disk unkritisch (94 GB Root, 85 GB frei).
|
||||||
|
- **Mac mini** (10.40.20.167): 10 CPU, 24 GB RAM, **nur ~1,9 GB "wired" (nicht reklamierbar)** â deutlich mehr echter Headroom als pve trotz "23G used"-Anzeige (macOS-Cache-Artefakt). Docker läuft bereits dort (n8n, n8n-redis, cloudflaredĂ2, gitea-mcp, portainer_agent).
|
||||||
|
- NAS nicht geprĂźft (kein funktionierender SSH-Zugriff von hier aus mit den vorhandenen Keys/User) â fĂźr diese beiden Stacks laut TP20/TP21-Plan ohnehin nicht Zielhost.
|
||||||
|
- **â
Entschieden (2026-07-16): Postgres-LXC auf pve, Nautobot-App-Stack auf NAS** (nicht Mac mini) â NAS hat mehr Headroom (~12 GB verfĂźgbar) und hostet bereits **Gitea** (Nautobots Git-Backend fĂźr Golden-Config-Templates), kĂźrzere Wege als Mac mini. Deploy-Weg: **Portainer-Stack auf ep14**, analog dem bestehenden Muster (`docs/nas-vlan20/stacks/*.yml`), Basis = offizielles `nautobot-docker-compose` (github.com/nautobot/nautobot-docker-compose), nicht von Null gebaut. Wird als **separate Session** angestoĂen (parallel zum Postgres-LXC-Aufbau auf pve).
|
||||||
|
- **Nachtrag (2026-07-16, nach Aufräumen): pve hat sich entspannt** â nach Abschalten mehrerer mittelfristig eh stillzulegender Services (User) jetzt **6,7 GB frei, 0 Swap** (vorher 2-3 GB frei, 3 GB Swap). Postgres-LXC passt entspannt.
|
||||||
|
- **RAM-Upgrade-Idee (32GB-Stick) zurĂźckgestellt (User 2026-07-16):** Intel N100 (pve-CPU) ist offiziell auf max. 16 GB spezifiziert + Single-Channel; ein dokumentierter Fall mit demselben Corsair-Modul auf vergleichbarer N100-Hardware endete in Memtest86-Fehlern, stabil erst nach RĂźckbau auf 8GB. Empfehlung: 16GB als Decke fĂźr diese Kiste behandeln statt auf einen Settings-Fix zu hoffen. **User rechnet ohnehin mittelfristig mit einem HW-Tausch fĂźr pve** â gehĂśrt ggf. in TP15s HW-Refresh-Scope, noch nicht formal aufgenommen.
|
||||||
- **â
2-Tier (User 2026-07-14):**
|
- **â
2-Tier (User 2026-07-14):**
|
||||||
- **Tier-1 âPlatform-Postgres" (precious):** EIN Postgres-Cluster, getrennte DBs fĂźr **Nautobot** (hier provisioniert) **+ Vaultwarden** (Onboarding = **TP20.1**). **PG 16** (Nautobot-Matrix-safe; **Nautobot unterstĂźtzt kein MariaDB**, nur PG/MySQL-8 â Postgres ist gesetzt, nicht optional).
|
- **Tier-1 âPlatform-Postgres" (precious):** EIN Postgres-Cluster, getrennte DBs fĂźr **Nautobot** (hier provisioniert) **+ Vaultwarden** (Onboarding = **TP20.1**). **PG 16** (Nautobot-Matrix-safe; **Nautobot unterstĂźtzt kein MariaDB**, nur PG/MySQL-8 â Postgres ist gesetzt, nicht optional).
|
||||||
- **Tier-2 (Bestand):** **HA-Recorder bleibt MariaDB** (Write-Churn, andere Zuverlässigkeitsklasse, single-site). *(Vaultwarden liegt heute ebenfalls auf MariaDB â wandert per TP20.1 nach Tier-1.)* Engine-Split fällt sauber entlang der Tier-Grenze.
|
- **Tier-2 (Bestand):** **HA-Recorder bleibt MariaDB** (Write-Churn, andere Zuverlässigkeitsklasse, single-site). *(Vaultwarden liegt heute ebenfalls auf MariaDB â wandert per TP20.1 nach Tier-1.)* Engine-Split fällt sauber entlang der Tier-Grenze.
|
||||||
- **â
Single-Site-first (User 2026-07-14):** jetzt nur BF-Primary. Nimmt das **2-Site-Quorum/Split-Brain**-Problem (bräuchte 3. Witness) vom Tisch. **ABER replication-ready ab Tag 1:** `wal_level=replica`, `archive_mode=on`, **pgBackRest (WAL+Base) â Garage-S3 (TP18)** = PITR sofort (DR auch ohne Standby) + späterer Standby = `pg_basebackup`, **kein** Primary-Umbau/Restart.
|
- **â
Single-Site-first (User 2026-07-14):** jetzt nur BF-Primary (âgehostet wird vorerst auf der bf-site", 2026-07-16 reconfirmed). Nimmt das **2-Site-Quorum/Split-Brain**-Problem (bräuchte 3. Witness) vom Tisch. **ABER replication-ready ab Tag 1:** `wal_level=replica`, `archive_mode=on` (Ziel vorerst lokal/Platzhalter, s.o.) â späterer Standby = `pg_basebackup`, **kein** Primary-Umbau/Restart. pgBackRestâGarage-S3 folgt nach TP18, nicht mehr Blocker.
|
||||||
- **Substrat:** Postgres in **LXC auf pve** (DB-Klasse, nicht Docker).
|
- **Substrat:** Postgres in **LXC auf pve** (DB-Klasse, nicht Docker).
|
||||||
- **Scope TP20 = Plattform:** Cluster hoch, Tiering, Backup/PITR, **Nautobot-DB** anlegen. **vw-Migration + Cross-Site-HA = TP20.1** (ausgelagert).
|
- **Scope TP20 = Plattform:** Cluster hoch, Tiering, Backup/PITR, **Nautobot-DB** anlegen. **vw-Migration + Cross-Site-HA = TP20.1** (ausgelagert).
|
||||||
- **Offene Sub-Steps:** pgBackRest-Bucket in Garage (Abh. TP18-Startpfad â ); PG-Version final (16 vs 17); Rollen/DB-Anlage Nautobot.
|
- **Offene Sub-Steps:** PG-Version final (16 vs 17); Rollen/DB-Anlage Nautobot; pgBackRest-Bucket in Garage folgt **nach** TP18 (nicht mehr Blocker, s.o.).
|
||||||
- â ď¸ **Neue Abh. (User 2026-07-16): TP20 (Postgres-LXC) + weitere neue Softwarepakete sollen Ăźber Komodo deployt werden, nicht mehr direkt/Portainer.** Komodo hat aber aktuell **keine eigene TP-Nummer** â bislang nur als âEigener Task" unter TP2 (Portainer-AblĂśsung, Zeile 72) und in CLAUDE.md-Tooling erwähnt. Noch zu klären: eigenes TP (z.B. TP22) heraustrennen, oder unter TP11 (Monitoring & Mgmt-Control-Plane) hängen? Bis geklärt: TP20 gilt als **an Komodo-Rollout gebunden**, nicht mehr eigenständig startbar.
|
- â ď¸ **Komodo-Abh. (User 2026-07-16) vorerst zurĂźckgestellt, s.o.:** ursprĂźnglich als Blocker gedacht (TP20 + neue Softwarepakete Ăźber Komodo statt direkt/Portainer), aber Komodo existiert noch nicht lauffähig und hat keine eigene TP-Nummer (nur unter TP2/TP11 erwähnt) â **entkoppelt, um die Montag-Deadline zu halten.** Komodo-TP-Nummer weiterhin zu klären, aber nicht mehr auf dem kritischen Pfad fĂźr TP20-Start.
|
||||||
- Abh.: **TP18** (Garage-S3 fĂźr Backups â mind. BF-Node â ), **Komodo-Rollout** (s.o., TP-Nummer offen). **Blockt TP21 + TP20.1.**
|
- Abh.: **keine harten Blocker mehr** (TP18 entfernt, Komodo entkoppelt). **Blockt weiterhin TP21 + TP20.1.**
|
||||||
|
|
||||||
#### TP20.1 â Vaultwarden â Platform-Postgres + Cross-Site-HA ⸠đ KONZEPT (2026-07-14, ausgelagert aus TP20)
|
#### TP20.1 â Vaultwarden â Platform-Postgres + Cross-Site-HA ⸠đ KONZEPT (2026-07-14, ausgelagert aus TP20)
|
||||||
- **Ziel:** `vw` (`.20.127`, heute MariaDB) auf den Precious-Tier holen **und** das eigentliche User-Ziel erfĂźllen: **DB-Replikation Ăźber 2 Sites** (Standort-Verlust Ăźberlebbar).
|
- **Ziel:** `vw` (`.20.127`, heute MariaDB) auf den Precious-Tier holen **und** das eigentliche User-Ziel erfĂźllen: **DB-Replikation Ăźber 2 Sites** (Standort-Verlust Ăźberlebbar).
|
||||||
@@ -463,12 +474,16 @@ FT kaschierte das bisher als âRoaming" statt âschwache Abdeckung".
|
|||||||
- **Verwandt/Abgrenzung:** vw ist auch in **TP16** offen (CF-Access: `bypass`âWARP-geschĂźtzt) â **DB-HA â Access**, getrennt behandeln. Reziprokes 2-Site-Muster analog **TP16**/**TP18**.
|
- **Verwandt/Abgrenzung:** vw ist auch in **TP16** offen (CF-Access: `bypass`âWARP-geschĂźtzt) â **DB-HA â Access**, getrennt behandeln. Reziprokes 2-Site-Muster analog **TP16**/**TP18**.
|
||||||
- Abh.: **TP20** (Tier-1 Postgres muss stehen), **TP10** (WG-Transport fĂźr Phase-2), **TP18** (Backup-Schirm). Kein Blocker fĂźr TP21.
|
- Abh.: **TP20** (Tier-1 Postgres muss stehen), **TP10** (WG-Transport fĂźr Phase-2), **TP18** (Backup-Schirm). Kein Blocker fĂźr TP21.
|
||||||
|
|
||||||
### TP21 â Nautobot Golden Config (config-as-code Control-Plane) ⸠đ KONZEPT (2026-07-14) â Memory `project_mikrotik_commit_nautobot_gc`
|
### TP21 â Nautobot Golden Config (config-as-code Control-Plane) ⸠Ⳡ**Plattform live (2026-07-16)**, Golden-Config-App/Device-Adoption offen â Memory `project_mikrotik_commit_nautobot_gc`
|
||||||
- **Ziel:** modellierter Control-Plane ßber den MikroTik-**RouterOS**-Kern: GUI-SoT + **Config-Compliance/Drift** + intended-config + Push. **Ergänzt** MikroMCP (interaktiv/Debug), **ersetzt es nicht** (deklarativ/DR/Compliance). Aus User-Recherche 2026-07-14: MikroTik in Golden Config **erstklassig** (`mikrotik_routeros` + `_api`, Nornir/NAPALM, backup+deploy).
|
- **Ziel:** modellierter Control-Plane ßber den MikroTik-**RouterOS**-Kern: GUI-SoT + **Config-Compliance/Drift** + intended-config + Push. **Ergänzt** MikroMCP (interaktiv/Debug), **ersetzt es nicht** (deklarativ/DR/Compliance). Aus User-Recherche 2026-07-14: MikroTik in Golden Config **erstklassig** (`mikrotik_routeros` + `_api`, Nornir/NAPALM, backup+deploy).
|
||||||
- **Scope-Grenze:** RouterOS in-model = **Router (ap1 heute / RB5009 kĂźnftig) + beide CRS326-Switches** (RouterOS-Boot) â Golden Config deckt den **ganzen Kabel-Fabric**. AuĂerhalb bleibt nur **Omada-WLAN** (eigener Controller).
|
- **Scope-Grenze:** RouterOS in-model = **Router (ap1 heute / RB5009 kĂźnftig) + beide CRS326-Switches** (RouterOS-Boot) â Golden Config deckt den **ganzen Kabel-Fabric**. AuĂerhalb bleibt nur **Omada-WLAN** (eigener Controller, spielt aber laut TP15-Korrektur ohnehin keine Rolle mehr).
|
||||||
- **Stack:** `nautobot-docker-compose` (Django/gunicorn + Redis + Celery worker/beat) auf Docker-Host; **DB extern â Platform-Postgres (TP20)**; Redis lokal/ephemer; **Git-Backend (backups/intended/templates) â bestehendes Gitea** (`project_gitea_backup_state`).
|
- đ **Wird zum alleinigen Config-Weg fĂźr Netzgeräte (Governance-Entscheid 2026-07-16, s. oben):** ab hier keine ad-hoc MikroMCP-Writes/Switch-UI-Klicks mehr auf Dauer â Nautobot managed den Fleet.
|
||||||
- **PoC-Pfad:** Nautobot-Stack hoch â ap1 via RouterOS-API adoptieren â Backup + Compliance/Drift an *einem* Gerät zeigen â dann Templates/intended fĂźr VLAN-/Firewall-Standards.
|
- â
**Nautobot-Stack live (2026-07-16), auf NAS statt Mac mini** (Ressourcen-Check hatte Mac mini vorgeschlagen, dann auf NAS umentschieden â mehr Headroom + Gitea-Co-Location, s. TP20-Log): Portainer-Stack `nautobot` (Id 203, ep14), 4 Container â `nautobot` (App/API, `10.40.20.30:8080`), `nautobot-worker` (Celery), `nautobot-scheduler` (Celery Beat), `nautobot-redis`. Bild `ghcr.io/nautobot/nautobot:3.1.7` (offizielles Image direkt, **nicht** das `nautobot-docker-compose`-Repo â das ist ein `invoke`/Poetry-getriebenes Dev-Tooling-Repo ohne eigenständige `docker-compose.yml`, fĂźr einen Portainer-String-Stack ungeeignet; bewusste Abweichung, dokumentiert statt stillschweigend). DB = Platform-Postgres (`10.40.20.20`, TP20). Compose-Datei `docs/nas-vlan20/stacks/210-nautobot.yml` (gitignored, wie alle NAS-Stack-Files).
|
||||||
- **Offen:** Nautobot- + GC-App-Version; ob OpenWrt je in-model muss (custom Nornir-Dispatcher â nur relevant falls Router doch OpenWrt+cake-autorate statt RB5009).
|
- đ **Gotcha beim ersten Deploy:** alle 3 Nautobot-Container liefen initial gleichzeitig `migrate` (Standard-Entrypoint-Verhalten) â Race-Condition, `IntegrityError` auf `pg_type`. Fix: `nautobot`-Service kriegt einen `healthcheck` (`curl .../health/`), `nautobot-worker`/`nautobot-scheduler` starten erst bei `depends_on: nautobot: condition: service_healthy` â serialisiert die Migration sauber auf einen Container. DB dafĂźr einmal `DROP`+`CREATE` (sauberer Neustart, kein Datenverlust â war eh leer).
|
||||||
|
- â
**End-to-End verifiziert:** `/api/status/` mit Token 200, Nautobot-Version 3.1.7, alle 4 Container laufen. Superuser `admin` angelegt, Creds im Stack-File (gitignored) + `postgres/.secrets` (DB-Seite).
|
||||||
|
- â ď¸ **Bekannt offen, nicht blockierend:** kein HTTPS/Reverse-Proxy vor Nautobot (Django-Security-Warnings beim Start, erwartet fĂźr internen HTTP-only-Betrieb auf VLAN20 â analog anderen internen Diensten); Celery-Worker-Registrierung beim allerersten Start nicht sofort sichtbar (`celery-workers-running:0` initial), unkritisch, braucht kurz zum Einpendeln.
|
||||||
|
- **PoC-Pfad (angepasst an die Montag-Deadline):** ~~Nautobot-Stack hoch~~ â
â **ap1 + ap2 in einem Rutsch adoptieren** (ap2 bekommt dabei gleich seinen VLAN99-Mgmt-Umzug aus TP19.1, s.o. â nicht isoliert vorher) â sobald CRS326 verkabelt sind, **direkt als Nautobot-verwaltete Geräte adoptieren statt erst manuell konfigurieren** â Compliance/Drift + Templates/intended fĂźr VLAN-/Firewall-Standards danach.
|
||||||
|
- **Offen:** Golden-Config-App noch nicht installiert/konfiguriert (nur Nautobot-Core läuft bisher); Git-Backend-Anbindung an Gitea; ap1-Adoption via RouterOS-API; ob OpenWrt je in-model muss (custom Nornir-Dispatcher â nur relevant falls Router doch OpenWrt+cake-autorate statt RB5009).
|
||||||
- Abh.: **TP20** (Postgres muss stehen), Gitea â
, RouterOS-Router (ap1 heute / RB5009 TP15).
|
- Abh.: **TP20** (Postgres muss stehen), Gitea â
, RouterOS-Router (ap1 heute / RB5009 TP15).
|
||||||
|
|
||||||
### TP-R â Router-Capabilities-Sweep ⸠FERTIG (`docs/research/routeros-capabilities.md`)
|
### TP-R â Router-Capabilities-Sweep ⸠FERTIG (`docs/research/routeros-capabilities.md`)
|
||||||
@@ -482,7 +497,7 @@ FT kaschierte das bisher als âRoaming" statt âschwache Abdeckung".
|
|||||||
---
|
---
|
||||||
|
|
||||||
## Reihenfolge / Abhängigkeiten
|
## Reihenfolge / Abhängigkeiten
|
||||||
> đŻ **AKTUELLER KRITISCHER PFAD (Stand 2026-07-16, Ăźberschreibt die Reihenfolge unten):** TP18 (Garage-S3, mind. BF-Node â ) â TP20 (Platform-Postgres, jetzt zusätzlich an Komodo-Rollout gebunden, TP-Nummer offen) â TP20.1 (Vaultwarden) ⼠TP21 (Nautobot Golden Config) â danach erst TP19.1-Rest (ap2/sw1/sw2) + TP5/TP6. Grund: Governance-Entscheid âConfig exklusiv Ăźber Nautobot" (s. oben) macht Nautobot zur Voraussetzung fĂźr praktisch jede weitere Router-/Switch-Ănderung. Die Punkte 3-4 unten (Omada-PVID-Fix etc.) sind **historisch/Ăźberholt** (Omada spielt seit TP15-Korrektur keine Rolle mehr) â ganze Liste braucht mal eine Aufräum-Session, hier nur der aktuelle Fokus vorangestellt.
|
> đŻ **AKTUELLER KRITISCHER PFAD (Stand 2026-07-16, Ăźberschreibt die Reihenfolge unten): TP20 (Platform-Postgres) â TP21 (Nautobot) â Ziel: fertig vor CRS326-Produktivsetzung, spätestens Montag 2026-07-20.** TP18 (Garage-S3) und die Komodo-Abhängigkeit wurden am selben Tag als Blocker entfernt/entkoppelt (s. TP20), um diese Deadline zu halten â beide werden später nachgezogen, nicht mehr vorher abgewartet. Danach: TP21 adoptiert ap1+ap2 (inkl. TP19.1-Rest) und die neu gelieferten CRS326-Switches direkt, dann erst TP5/TP6. Grund: Governance-Entscheid âConfig exklusiv Ăźber Nautobot" (s. oben) macht Nautobot zur Voraussetzung fĂźr praktisch jede weitere Router-/Switch-Ănderung. Die Punkte 3-4 unten (Omada-PVID-Fix etc.) sind **historisch/Ăźberholt** (Omada spielt seit TP15-Korrektur keine Rolle mehr) â ganze Liste braucht mal eine Aufräum-Session, hier nur der aktuelle Fokus vorangestellt.
|
||||||
> â
**TP16 (CF-Tunnel Round-Robin/macvlan-Host-Isolation â reziprokes 3-Tunnel-HA)** KERN UMGESETZT 2026-07-10 (#1033 strukturell weg). Offen nur Access-Strang (WARP/`vw`) = user-gated. As-Built `docs/cf-tunnel-mapping.md §10`.
|
> â
**TP16 (CF-Tunnel Round-Robin/macvlan-Host-Isolation â reziprokes 3-Tunnel-HA)** KERN UMGESETZT 2026-07-10 (#1033 strukturell weg). Offen nur Access-Strang (WARP/`vw`) = user-gated. As-Built `docs/cf-tunnel-mapping.md §10`.
|
||||||
1. ~~**TP1 (GE8) â TP2 (Omada Controller).**~~ â
erledigt 2026-06-15.
|
1. ~~**TP1 (GE8) â TP2 (Omada Controller).**~~ â
erledigt 2026-06-15.
|
||||||
2. ~~**TP4 (Router-Cutover L3-Infra + WAN-Edge).**~~ â
erledigt 2026-06-15 (L3) + 2026-07-01 (Edge-Cutover, FB physisch weg).
|
2. ~~**TP4 (Router-Cutover L3-Infra + WAN-Edge).**~~ â
erledigt 2026-06-15 (L3) + 2026-07-01 (Edge-Cutover, FB physisch weg).
|
||||||
|
|||||||
Reference in New Issue
Block a user