TP42 durch: interner Namensraum auf bf.emsenhuber.net vereinheitlicht
(A) DHCP-Search-Domain der 7 Netze emsenhuber.net -> bf.emsenhuber.net ueber die GC-Pipeline (kein Direkt-Write): Template Z.133 gehoben, per push-gc-template.py ins bf-golden-config-Repo (7a4068c4), GitRepo-Sync, neuer manueller Job tp42-dhcp-domain in gc-configplan.py (set [find], weil add das existierende Netz doppeln wuerde), Deploy an crs326-core. Live 7/7 = bf.emsenhuber.net, Compliance 140/140 keine Drifts. Nebenbefund: Remote-GC-Template hing dem lokalen hinterher (noch *.bf.lan + router.lan) -> mit an den Live-Stand angeglichen. Loest den Kernkonflikt: DHCP verteilte bare emsenhuber.net, Records leben unter bf.emsenhuber.net -> bare macmini loest jetzt beim Lease-Renew. (B) .16 (adguard_bf1) abgebaut: lag im mit FM geteilten Portainer-Stack 195 zusammen mit adguard_fm2 (.17, Standort FM). Statt Stack-Delete die compose auf nur .17 getrimmt + redeployt (Prune). .16 weg, .17 laeuft (kurzer Blip). Nautobot-Soll (Scope 4) an TP37 gekoppelt, separat. Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
This commit is contained in:
@@ -53,11 +53,12 @@ liest, liest ihn als Erstes: er wird bei jeder Änderung mitgezogen, nicht nur d
|
|||||||
`caddy/cf-sync.py` von einem Fehlalarm befreit (prüfte nur `http://`, gebaut ist `https://…:443`) und
|
`caddy/cf-sync.py` von einem Fehlalarm befreit (prüfte nur `http://`, gebaut ist `https://…:443`) und
|
||||||
**grün** (nur `ds-bf` als bewusst intern). Schritt-6-Teil „MCP auf FQDN" durch TP35 Schicht 1
|
**grün** (nur `ds-bf` als bewusst intern). Schritt-6-Teil „MCP auf FQDN" durch TP35 Schicht 1
|
||||||
umgekehrt (LAN-IP), damit gegenstandslos.
|
umgekehrt (LAN-IP), damit gegenstandslos.
|
||||||
- ⏳ **TP42 Bestandsaufnahme live durch (2026-09-02):** `.bf.lan` ist überall weg, DHCP-domain auf
|
- ✅ **TP42 durch (2026-09-02):** interner Namensraum auf **einen** Suffix `bf.emsenhuber.net` vereinheitlicht.
|
||||||
`emsenhuber.net` vereinheitlicht, Core-Static + Caddyfile konsistent auf `.bf.emsenhuber.net`.
|
(A) DHCP-domain über die GC-Pipeline geflippt (Template + `push-gc-template.py` `7a4068c4` + neuer Job
|
||||||
Zielschema **`bf.emsenhuber.net`** entschieden (User). Netto-Rest = 2 Infra-Eingriffe: DHCP-domain
|
`tp42-dhcp-domain` + Deploy an core) → **7/7 live, Compliance 140/140**. Nebenbefund: Remote-GC-Template
|
||||||
`→bf.emsenhuber.net` über die GC-Pipeline + `.16`-Container-Abbau (`.17`=FM bleibt). Beide live
|
hing hinterher (`.bf.lan`), mit angeglichen. (B) `.16` (`adguard_bf1`) aus dem **mit FM geteilten** Stack
|
||||||
abgesichert (kein Core-Objekt hängt an `.16`). Wartet auf explizites Go.
|
195 getrimmt-redeployt — `.16` weg, `.17` (FM) läuft (kurzer ~40 s Blip). Nautobot-Doku-Teil (Scope 4)
|
||||||
|
an TP37 gekoppelt.
|
||||||
- 🔜 **TP42 Namens-Vereinheitlichung (2026-09-01, angelegt):** internes `.bf.lan` (Core-DNS, DHCP-Search-
|
- 🔜 **TP42 Namens-Vereinheitlichung (2026-09-01, angelegt):** internes `.bf.lan` (Core-DNS, DHCP-Search-
|
||||||
Domain) und die `.bf.emsenhuber.net`-Aliase (Caddyfile) auf **einen** Namensraum `emsenhuber.net`
|
Domain) und die `.bf.emsenhuber.net`-Aliase (Caddyfile) auf **einen** Namensraum `emsenhuber.net`
|
||||||
ziehen; stale `.16/.17`-Rewrites abbauen; Sollzustand in Nautobot. Handoff:
|
ziehen; stale `.16/.17`-Rewrites abbauen; Sollzustand in Nautobot. Handoff:
|
||||||
@@ -511,7 +512,7 @@ nachmessen und dann entscheiden**. Blocker gibt es keine mehr. TP5 ist in der Na
|
|||||||
> | TP38 | 🔜 | OOB-Mgmt: untagged-VLAN99-Port je Switch | — |
|
> | TP38 | 🔜 | OOB-Mgmt: untagged-VLAN99-Port je Switch | — |
|
||||||
> | TP40 | 🔜 | HA-Recorder-Retention: 41 GB `states` beschneiden (Okay 09-01) | — |
|
> | TP40 | 🔜 | HA-Recorder-Retention: 41 GB `states` beschneiden (Okay 09-01) | — |
|
||||||
> | TP41 | ⏸️ | CF-Access-Reparatur **zurückgestellt 2026-09-01** (User): **T2/T3/T4/T5 ✅** (GitHub+Google-Login live); **Facebook abgesagt**; **Geli CF-seitig fertig** (zt-humans+geli-Policy) → offen nur noch WARP-Client auf Gelis Gerät, wartet auf User-Info | — |
|
> | TP41 | ⏸️ | CF-Access-Reparatur **zurückgestellt 2026-09-01** (User): **T2/T3/T4/T5 ✅** (GitHub+Google-Login live); **Facebook abgesagt**; **Geli CF-seitig fertig** (zt-humans+geli-Policy) → offen nur noch WARP-Client auf Gelis Gerät, wartet auf User-Info | — |
|
||||||
> | TP42 | ⏳ | Namens-Vereinheitlichung: `.bf.lan` **weg**, DHCP unified; Zielschema **`bf.emsenhuber.net`** entschieden — Rest = DHCP-domain via GC + `.16`-Abbau (Go offen) | — |
|
> | TP42 | ✅ | Namens-Vereinheitlichung: ein interner Suffix **`bf.emsenhuber.net`** — DHCP-domain via GC geflippt (140/140), `.16` abgebaut (`.17`=FM bleibt); Nautobot-Doku-Teil an TP37 | 2026-09-02 |
|
||||||
> | TP43 | 🔜 | dw-Standort-DNS-Uplink: eigener Resolver mit site-Overrides (`420.teilzeitladen.xyz`→BF-Caddy/WG), WG-Disconnect bedacht; Geli sofort per WARP | — |
|
> | TP43 | 🔜 | dw-Standort-DNS-Uplink: eigener Resolver mit site-Overrides (`420.teilzeitladen.xyz`→BF-Caddy/WG), WG-Disconnect bedacht; Geli sofort per WARP | — |
|
||||||
> | — | — | **35 archivierte TPs** in `teilprojekte-archiv.md` (inkl. TP39 ✅ 2026-09-01) | — |
|
> | — | — | **35 archivierte TPs** in `teilprojekte-archiv.md` (inkl. TP39 ✅ 2026-09-01) | — |
|
||||||
|
|
||||||
@@ -3031,16 +3032,25 @@ Gegen die Geräte gemessen (MikroMCP + dig), nicht aus dem Handoff:
|
|||||||
`emsenhuber.net` bleibt getrennt.
|
`emsenhuber.net` bleibt getrennt.
|
||||||
2. **`.16` (adguard_bf1) abbauen**, **`.17` (adguard_fm2 = Standort FM) NICHT anfassen.**
|
2. **`.16` (adguard_bf1) abbauen**, **`.17` (adguard_fm2 = Standort FM) NICHT anfassen.**
|
||||||
|
|
||||||
#### 🔜 Netto-Rest (2 Eingriffe) — Infra, wartet auf explizites Go
|
#### ✅ Umsetzung DURCH (2026-09-02)
|
||||||
- **(A) DHCP-domain `emsenhuber.net → bf.emsenhuber.net` über GC** (kein Direkt-Write ⇒ keine Drift):
|
- **(A) DHCP-domain `emsenhuber.net → bf.emsenhuber.net` über GC ✅** — kein Direkt-Write:
|
||||||
`nautobot/mikrotik_routeros.j2` Z.133 ändern → `routeros/push-gc-template.py` → Nautobot GitRepo-Sync
|
`mikrotik_routeros.j2` Z.133 gehoben → `push-gc-template.py` (Commit `7a4068c4`, **Nebenbefund:** das
|
||||||
→ `gc-configplan.py --refresh-compliance` → gestaffelter Deploy an **crs326-core** → Live-Verify
|
Remote-Template hing dem lokalen hinterher — es trug noch `*.bf.lan`+`router.lan`, obwohl Gerät+lokal
|
||||||
(`/ip dhcp-server network`, bare-Name-Auflösung).
|
längst `.bf.emsenhuber.net` fuhren; der Push hat das GC-Repo an den Live-Stand angeglichen) →
|
||||||
- **(B) `.16`-Teardown:** Container `adguard_bf1` auf Docker-LXC `.126` (Portainer ep14) stoppen + entfernen.
|
GitRepo-Sync (SUCCESS) → manueller ConfigPlan **`tp42-dhcp-domain`** (`set [find] domain=…`, weil
|
||||||
- **(C) Nautobot-Soll** (Scope-Punkt 4) bleibt an **TP37** gekoppelt (Datenmodell), separat.
|
`add` das Netz doppelt anlegen würde) → Deploy an **crs326-core** → Live **7/7 = bf.emsenhuber.net**,
|
||||||
|
Compliance **140/140, keine Drifts**. Der Job steht dauerhaft in `nautobot/gc-configplan.py`.
|
||||||
|
- **(B) `.16`-Teardown ✅** — `adguard_bf1` lag im geteilten Portainer-Stack **195 `adguard`** (Docker-LXC
|
||||||
|
`.126`, **ep2** — *nicht* ep14) **zusammen mit `adguard_fm2` (`.17`, Standort FM!)**. Deshalb **nicht**
|
||||||
|
Stack löschen, sondern compose auf nur `.17` getrimmt + Stack redeployt (Prune): `.16`-Container weg,
|
||||||
|
`.16:53` tot; **`.17` läuft** (⚠️ ~40 s mit-neugestartet durch den Redeploy — kurzer FM-DNS-Blip,
|
||||||
|
danach sauber). Rollback-compose gesichert. 🧹 Daten-Dirs `/opt/docker/adguard_bf1/*` bleiben als
|
||||||
|
harmlose Leichen auf dem LXC.
|
||||||
|
- **(C) Nautobot-Soll** (Scope-Punkt 4) bleibt an **TP37** gekoppelt (Datenmodell), separat — kein Blocker.
|
||||||
|
|
||||||
**Status:** ⏳ Bestandsaufnahme + Entscheidungen durch (2026-09-02); Rest = 2 Infra-Eingriffe + TP37-gekoppelter
|
**Status:** ✅ **Namensraum vereinheitlicht (2026-09-02)** — ein interner Suffix `bf.emsenhuber.net`,
|
||||||
Nautobot-Teil. Handoff: [`docs/handoff-20260901-tp42-naming.md`](handoff-20260901-tp42-naming.md).
|
`.bf.lan` raus, `.16` abgebaut, Compliance 140/140. Offen nur der TP37-gekoppelte Nautobot-Doku-Teil.
|
||||||
|
Handoff: [`docs/handoff-20260901-tp42-naming.md`](handoff-20260901-tp42-naming.md).
|
||||||
|
|
||||||
### TP43 — dw-Standort-DNS-Uplink (site-spezifische Overrides) ▸ 🔜 ANGELEGT 2026-09-01 (User-Okay erteilt)
|
### TP43 — dw-Standort-DNS-Uplink (site-spezifische Overrides) ▸ 🔜 ANGELEGT 2026-09-01 (User-Okay erteilt)
|
||||||
|
|
||||||
|
|||||||
@@ -330,7 +330,34 @@ def job_mgmt_acl():
|
|||||||
]
|
]
|
||||||
|
|
||||||
|
|
||||||
JOBS = {"drift-cleanup": job_drift_cleanup, "mgmt-acl": job_mgmt_acl}
|
def job_tp42_dhcp_domain():
|
||||||
|
"""TP42 (2026-09-02): DHCP-Search-Domain der 7 Netze emsenhuber.net -> bf.emsenhuber.net.
|
||||||
|
|
||||||
|
WARUM: das GC-Template verteilte `domain=emsenhuber.net` (bare), die internen A-Records leben
|
||||||
|
aber unter `bf.emsenhuber.net`. Folge: ein bare `macmini` loeste NICHT auf (nur der volle FQDN).
|
||||||
|
Zielschema-Entscheid (User 2026-09-02) = `bf.emsenhuber.net`. Das Template (Z.133) ist bereits
|
||||||
|
auf `bf.emsenhuber.net` gehoben; dieser Job zieht das laufende Geraet nach.
|
||||||
|
|
||||||
|
MODIFY, kein add: das Netz existiert -> `set [find]`, nicht die `add`-Zeile der intended config
|
||||||
|
(die wuerde `already have such address` werfen). `[find]` ohne Filter trifft alle 7 Netze.
|
||||||
|
|
||||||
|
KEIN LOCKOUT-RISIKO: `domain` ist eine DHCP-Option, sie beruehrt weder Routing noch Mgmt-Zugang;
|
||||||
|
Clients ziehen sie erst beim naechsten Lease-Renew (lease-time 1d).
|
||||||
|
"""
|
||||||
|
core_set = "\n".join([
|
||||||
|
':do { /ip dhcp-server network set [find] domain=bf.emsenhuber.net } '
|
||||||
|
'on-error={ :log info "tp42-dhcp: set geworfen" }',
|
||||||
|
':log info ("tp42-dhcp: bf-domains=" . [:tostr [:len [/ip dhcp-server network '
|
||||||
|
'find where domain="bf.emsenhuber.net"]]] . "/7")',
|
||||||
|
])
|
||||||
|
return [(["crs326-core"], core_set, "TP42-dhcp-domain-bf")]
|
||||||
|
|
||||||
|
|
||||||
|
JOBS = {
|
||||||
|
"drift-cleanup": job_drift_cleanup,
|
||||||
|
"mgmt-acl": job_mgmt_acl,
|
||||||
|
"tp42-dhcp-domain": job_tp42_dhcp_domain,
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
# ------------------------------------------------------------------------ main
|
# ------------------------------------------------------------------------ main
|
||||||
|
|||||||
@@ -130,7 +130,7 @@
|
|||||||
/ip dhcp-server add address-pool=pool-v{{ v.id }} comment={{ v.name }} interface=vlan{{ v.id }} lease-time={{ v.lease }} name=dhcp-v{{ v.id }}
|
/ip dhcp-server add address-pool=pool-v{{ v.id }} comment={{ v.name }} interface=vlan{{ v.id }} lease-time={{ v.lease }} name=dhcp-v{{ v.id }}
|
||||||
{% endfor %}
|
{% endfor %}
|
||||||
{% for v in vlans %}
|
{% for v in vlans %}
|
||||||
/ip dhcp-server network add address=10.40.{{ v.id }}.0/24 dns-server=10.40.20.36,10.40.20.37 domain=emsenhuber.net gateway=10.40.{{ v.id }}.1 ntp-server=10.40.{{ v.id }}.1
|
/ip dhcp-server network add address=10.40.{{ v.id }}.0/24 dns-server=10.40.20.36,10.40.20.37 domain=bf.emsenhuber.net gateway=10.40.{{ v.id }}.1 ntp-server=10.40.{{ v.id }}.1
|
||||||
{% endfor %}
|
{% endfor %}
|
||||||
/ip dhcp-server option add code=6 name="dns 1.1.1.1" value=0x01010101
|
/ip dhcp-server option add code=6 name="dns 1.1.1.1" value=0x01010101
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user