Terraform-State-Management mit Megaport-Ressourcen
Dieses Thema beschreibt die Terraform-State-Datei und empfohlene Vorgehensweisen für deren Verwendung, um Ihre Konfigurationsdateien den in Ihrem Netzwerk bereitgestellten Megaport-Services zuzuordnen.
Was ist der Terraform-State?
Terraform speichert Informationen über von Ihnen erstellte Ressourcen in einer State-Datei namens terraform.tfstate.
Diese Datei wird nach Ausführung des Befehls terraform apply automatisch erstellt. Sie stellt eine Momentaufnahme Ihrer von Terraform verwalteten Infrastruktur zu einem bestimmten Zeitpunkt dar. Sie wird in dem Verzeichnis erstellt, in dem Terraform bereitgestellt wird. Wir empfehlen, terraform.tfstate regelmäßig zu überwachen.
Die Hauptzwecke der Terraform-State-Datei sind:
-
Zuordnung realer Ressourcen – Die State-Datei verfolgt die realen Infrastruktur-Ressourcen, die Terraform erstellt hat und verwaltet. Sie protokolliert Informationen über deren Konfigurationen, IDs und Abhängigkeiten.
-
Verbindliche Referenz – Die State-Datei ist die maßgebliche Quelle über Ihre aktuelle Infrastruktur. Wenn Sie den Befehl
terraform applyausführen, vergleicht sie Ihre Konfigurationsdateien mit der State-Datei, um zu ermitteln, welche Änderungen vorgenommen werden müssen. -
Nachverfolgung von Metadaten – Die State-Datei speichert Metadaten, die Terraform intern verwendet, wie die zum Erstellen des State verwendete Terraform-Version und Ressourcenabhängigkeiten.
Weitere Informationen zur Terraform-State-Datei finden Sie unter State (HashiCorp).
Den Terraform-State für Megaport-Ressourcen verstehen
Der Terraform-State ist eine zentrale Komponente, die Ihre Konfigurationsdateien den in Ihrem Netzwerk bereitgestellten Megaport-Ressourcen zuordnet. Wenn Sie den Befehl terraform apply ausführen, erstellt Terraform eine State-Datei, terraform.tfstate, die alle von ihm verwalteten Ressourcen, deren Konfigurationen und Abhängigkeiten nachverfolgt.
Was enthält die Megaport Terraform Provider-State-Datei?
Für Megaport-Ressourcen verfolgt die State-Datei Informationen wie:
- Ressourcen-IDs und UIDs
- Port-Konfigurationen
- VXC-Einstellungen
- MCR-Router-Konfigurationen
- Partnerverbindungen
- Standortinformationen
Wichtige Konzepte des State-Managements
-
Vorhandene Ressourcen importieren – Wenn Sie bereits Megaport-Services über das Portal konfiguriert haben, verwenden Sie den Befehl
terraform import, um sie unter die Verwaltung von Terraform zu stellen:Beispiel 1: Einen vorhandenen Port importieren
terraform import megaport_port.my_port "example-uid-41d4-a716-446655440000"Beispiel 2: Einen vorhandenen VXC importieren
terraform import megaport_vxc.my_vxc "example-uid-426f-9247-bb680e5fe0c8"Weitere Informationen finden Sie unter Import vorhandener Produktions-Services.
-
Unbeabsichtigte Löschungen verhindern – Zum Schutz von Produktions-Services:
- Führen Sie vor dem Anwenden von Änderungen immer den Befehl
terraform planaus. - Erwägen Sie die Verwendung des Flags
-target, um den Umfang von Änderungen zu begrenzen. - Fügen Sie Lifecycle-Blöcke hinzu, um die Zerstörung kritischer Ressourcen zu verhindern. Weitere Informationen finden Sie unter Manage resource lifecycle (HashiCorp).
- Führen Sie vor dem Anwenden von Änderungen immer den Befehl
-
Speicherung der State-Datei für Team-Umgebungen – Standardmäßig speichert Terraform State-Informationen lokal.
Für die Speicherung der Terraform-State-Datei in Team-Umgebungen wird die Verwendung eines Remote-Speichers für Zusammenarbeit, Versionskontrolle und Sicherheit empfohlen.
- Verwenden Sie Remote-State-Speicher (Terraform Cloud, S3 und so weiter).
- Aktivieren Sie State-Locking, um gleichzeitige Änderungen zu verhindern.
- Erwägen Sie die Verschlüsselung von State-Dateien, da sie sensible Informationen enthalten.
-
Wartung der State-Datei – Gelegentlich müssen Sie einige Befehle verwenden, zum Beispiel:
terraform state list, um alle verwalteten Ressourcen anzuzeigen.terraform state show, um eine bestimmte Ressource zu untersuchen.terraform state rm, um eine Ressource aus dem State zu entfernen, ohne sie zu zerstören.
-
Umgang mit State-Drift – Die State-Datei von Terraform verfolgt die gesamte von ihm verwaltete Infrastruktur. Das manuelle Ändern dieser Ressourcen außerhalb von Terraform kann dazu führen, dass die State-Datei ungenau wird – eine Situation, die als Drift bezeichnet wird.
Wenn der von Terraform geführte Stand Ihrer Infrastruktur nicht der Realität entspricht, versucht es, die Abweichungen zu beheben, was möglicherweise zur unbeabsichtigten Löschung oder Neuerstellung Ihrer Ressourcen führt. Weitere Informationen finden Sie unter Manage resource drift (HashiCorp).
Wenn Änderungen an Megaport-Ressourcen außerhalb von Terraform vorgenommen werden:
- Verwenden Sie den Befehl
terraform refresh, um den State mit den aktuellen Ressourcenkonfigurationen zu aktualisieren. - Erwägen Sie, den Befehl
terraform planregelmäßig auszuführen, um nicht autorisierte Änderungen zu erkennen.
- Verwenden Sie den Befehl
Empfohlene Vorgehensweisen
Wir empfehlen, diese Vorgehensweisen zu befolgen, um optimale Ergebnisse mit Terraform zu erzielen:
- Sichern Sie Ihre State-Datei regelmäßig – Ein Verlust ist irreversibel.
- Versionieren Sie Ihre Konfigurationsdateien – Speichern Sie jedoch niemals State-Dateien, die sensible Daten wie Anmeldeinformationen enthalten. Weitere Informationen finden Sie unter Sensitive Data in State (HashiCorp).
- Modularisieren Sie komplexe Konfigurationen – Dieser Ansatz verbessert das Ressourcenmanagement, indem er eine besser organisierte und wiederverwendbare Struktur fördert.
- Sperren Sie Megaport-Services im Portal – Der Terraform-State ist die maßgebliche Quelle für das Ressourcenmanagement. Um widersprüchliche Änderungen an Produktions-Services im Portal und in Terraform zu verhindern, wird das Sperren von Produktions-Services empfohlen. Weitere Informationen finden Sie unter Sperren von Megaport-Services.
Weitere Informationen finden Sie unter Learn Terraform recommended practices (HashiCorp).