Hervorragende Software und praktische Tutorials
Ubuntu Netplan 50-cloud-init.yaml Multi-IP-Konfigurationsfehler nach Neustart-Reparaturanleitung
Ihre Netplan-Konfiguration (/etc/netplan/50-Cloud-Init.yaml) wird nach einem Neustart auf die ursprüngliche IP-Adresse zurückgesetzt. Dies liegt in der Regel daran, dass der Cloud-Init-Dienst die Netzwerkkonfiguration beim Start zurücksetzt oder Probleme mit der YAML-Syntax oder -Berechtigungen die Konfiguration nicht beibehalten. Dies kommt in Ubuntu 20.04+ häufig vor, insbesondere auf Cloud-Servern (wie Vultr und AWS). Keine Sorge, die Lösung ist einfach: Überprüfen Sie die Syntax, deaktivieren Sie Cloud-Init-Resets und überprüfen Sie die Anwendung.
Was ist 50-cloud-init.yaml
Diese Datei ist eine Schlüsselkomponente des Ubuntu Linux-Systemverzeichnisses 50-cloud-init.yaml. /etc/netplan/cloud-init Diese Datei definiert das SystemNetzwerkschnittstelleNetzwerkkonfiguration und -einrichtung, insbesondere in Cloud- oder virtualisierten Umgebungen.
Hauptfunktionen von 50-cloud-init.yaml:
Von Cloud-Init generiert: Diese Datei wird automatisch von Cloud-Init generiert, einem Tool zur frühzeitigen Initialisierung und Anpassung von Linux-Systemen, insbesondere in Cloud-Umgebungen wie AWS, Azure oder Virtualisierungsplattformen wie VMware.
Netplan-Konfiguration: Es verwendet das Netplan-Konfigurationssystem, das Standardsystem von Ubuntu zum Definieren von Netzwerkeinstellungen.
Nicht für die manuelle Bearbeitung geeignet: Diese Datei enthält in der Regel Kommentare, die darauf hinweisen, dass direkt an ihr vorgenommene Änderungen bei Neustarts oder erneuten Ausführungen von Cloud-Init nicht erhalten bleiben. Dies liegt daran, dass Cloud-Init die Datei basierend auf den von der Datenquelle bereitgestellten Informationen neu generieren kann.
Dynamische Konfiguration: Die Netzwerkschnittstelle wird normalerweise mithilfe von DHCP (z. B. dhcp4: true) konfiguriert, um automatisch eine IP-Adresse zu erhalten. Dadurch ist sie für dynamische Cloud-Umgebungen geeignet.
Überschreiben: Obwohl direktes Bearbeiten nicht empfohlen wird, können Sie die Einstellungen überschreiben, indem Sie eine neue Netplan-Konfigurationsdatei mit einem höheren numerischen Präfix (z. B. 99-my-custom-config.yaml) im Verzeichnis /etc/netplan/ erstellen. Dadurch können Sie statische IP-Adressen oder andere spezifische Netzwerkeinstellungen definieren, die Vorrang haben.
Im Wesentlichen dient es als anfängliche Netzwerkkonfiguration, die von Cloud-basierten oder virtualisierten Ubuntu-Instanzen bereitgestellt wird. Obwohl es wichtig ist, die Standardnetzwerkeinstellungen des Systems zu verstehen, sollten benutzerdefinierte Netzwerkkonfigurationen in einer separaten Netplan-Datei implementiert werden, um die Persistenz zu gewährleisten.
Ubuntu 22.4 Multi-IP-Konfigurationsmethode
Konfigurieren Sie zunächst mehrere IP-Adressen in 50-cloud-init.yaml
sudo vi /etc/netplan/50-cloud-init.yaml
Nach der Konfiguration speichern und beenden :wq
Generieren und testen Sie die Konfiguration, um zu überprüfen, ob die Syntax korrekt ist.
sudo netplan generieren
Wenn kein Problem vorliegt, wenden Sie die Konfigurationsdatei an.
sudo netplan anwenden
Sollte nach der Bewerbung eine OVS-Warnung erscheinen, ignorieren Sie diese bitte.
Der folgende Schritt ist entscheidend:
Deaktivieren Sie das Zurücksetzen des Cloud-Init-Netzwerks, ein wichtiger Schritt, um ein Rollback durch Neustart zu verhindern!
Erstellen einer neuen Datei
sudo vi /etc/cloud/cloud.cfg.d/99-disable-network-config.cfg
Fügen Sie es hinzu
Netzwerk: {config: deaktiviert}
Löschen Sie den Cloud-Init-Cache und die Instanz-ID
sudo cloud-init clean --logs sudo rm -rf /var/lib/cloud/instance # Instanzdaten löschen sudo dpkg-reconfigure cloud-init # Neu konfigurieren, „Keine“ auswählen, um das Netzwerkmodul zu deaktivieren
Übernehmen Sie die Konfiguration und testen Sie den Neustart
sudo netplan generate # zum Prüfen der Syntax. sudo netplan apply # zum Anwenden der IP-Adresse. show # zum sofortigen Überprüfen mehrerer IP-Adressen. sudo reboot
Wenn die oben genannten Methoden nicht funktionieren, deaktivieren Sie Cloud-Init vollständig (Extremfall).
sudo touch /etc/cloud/cloud-init.disabled sudo systemctl cloud-init deaktivieren sudo systemctl cloud-init maskieren
Upgrade-Fix: Cloud-Init aktualisieren: sudo apt update && sudo apt upgrade cloud-init (einige Versionen wurden behoben).
Diese Lösung basiert auf einem Community-Fix und funktioniert grundsätzlich seit 100%. Sollte das Problem nach dem Neustart weiterhin bestehen, hinterlassen Sie unten einen Kommentar mit der Ausgabe von cat /etc/netplan/*.yaml und journalctl -u cloud-init, damit ich bei der Diagnose helfen kann!