Netzwerkeinstellungen: netplan/systemd-networkd als drittes Backend + DHCP-Interface-Default-Fix
Auf einer echten, frisch installierten Ubuntu-24.04-VM (192.168.80.114, Standard-Setup, Netz per DHCP) zeigten sich zwei reale Bugs: 1. Systemeinstellungen > Netzwerkeinstellungen: 'Kein unterstütztes Backend erkannt' trotz laufendem Netz -- _detect_network_backend() kannte nur NetworkManager und dhcpcd, nicht netplan/systemd-networkd, den mit Abstand haeufigsten Fall auf einem normalen Ubuntu-Host. Neues drittes Backend 'netplan' ergaenzt: Erkennung ueber systemd-networkd + vorhandenes netplan-Binary, Moduserkennung ueber das 'dynamic'-Flag des Kernels auf der aktuellen Adresse, Anwenden ueber eine eigene Override-Datei (/etc/netplan/90-poe-manager.yaml, gewinnt alphabetisch gegen z.B. cloud-inits 50-*.yaml) plus Aufruf von netplan apply, Backup/Auto-Rollback wie bei den anderen Backends. Live verifiziert: Anwenden loeste echten DHCP-Lease-Renew aus, nach Ablauf der 45s-Bestaetigungsfrist wurde die Override-Datei automatisch wieder entfernt (Rollback funktioniert). 2. DHCP-Konfiguration: 'Keine IPv4-Adresse auf eth0 gefunden', obwohl das Interface-Dropdown korrekt 'enp1s0' zeigte -- DHCP_DEFAULTS hatte 'eth0' hart kodiert (Annahme aus einer aelteren Testumgebung), was auf Systemen mit Predictable Network Interface Names schlicht nicht existiert. _load_dhcp_settings() korrigiert das jetzt: liegt der gespeicherte/Default-Wert nicht unter den tatsaechlich vorhandenen Schnittstellen, wird automatisch die erste echte vorgeschlagen. Neue Abhaengigkeit PyYAML fuer das Schreiben der netplan-Override-Datei.
This commit is contained in:
@@ -13,6 +13,7 @@ MarkupSafe==3.0.2
|
||||
paramiko==3.5.1
|
||||
pycparser==2.23
|
||||
PyNaCl==1.5.0
|
||||
PyYAML==6.0.2
|
||||
simple-websocket==1.1.0
|
||||
Werkzeug==3.1.3
|
||||
|
||||
@@ -20,3 +21,7 @@ Werkzeug==3.1.3
|
||||
# (reines Python) statt eines lokalen pty + System-ssh-Client und läuft
|
||||
# damit plattformunabhängig — auch unter Windows. Die SSH-Verbindung wird
|
||||
# dabei immer serverseitig (vom PoE-Server) aufgebaut, nie vom Browser aus.
|
||||
#
|
||||
# PyYAML wird für das netplan-Backend der Host-Netzwerkeinstellungen
|
||||
# gebraucht (Systemeinstellungen → Netzwerkeinstellungen) — schreibt/liest
|
||||
# die eigene Override-Datei unter /etc/netplan/.
|
||||
|
||||
Reference in New Issue
Block a user