Sie können die Statusdatei für jede Bereitstellung prüfen oder ändern. Beispielsweise können Sie Ressourcen aus der Bereitstellung importieren oder entfernen. Dazu müssen Sie die Statusdatei ändern.
Auf dieser Seite wird beschrieben, wie Sie mit der Terraform-Zustandsdatei arbeiten, die für jede Bereitstellung und Version erstellt wird. Weitere Informationen zur Statusdatei finden Sie unter Status.
Die Anleitung auf dieser Seite setzt voraus, dass Sie mit Terraform vertraut sind.
Hinweis
Prüfen Sie, ob Sie die erforderlichen Berechtigungen zum Arbeiten mit der Statusdatei haben. Die Rolle
config.admin
enthält die erforderlichen Berechtigungen. Folgende Berechtigungen sind erforderlich:config.deployments.lock
config.revisions.getState
config.deployments.updateState
config.deployments.unlock
config.deployments.getLock
config.deployments.getState
Sie benötigen eine lokale Kopie der Terraform-Konfiguration. Dies ist die Konfiguration, die der verwendeten Statusdatei entspricht.
Mit der lokalen Kopie der Konfiguration können Sie Befehle wie
terraform refresh
oderterraform plan
lokal ausführen, während Sie die Statusdatei ändern.Installieren Sie Terraform, um die Terraform-Befehlszeile auf Ihrem lokalen Computer zu verwenden.
Statusdatei mutieren oder prüfen
Wenn Sie die Statusdatei ändern oder prüfen möchten, müssen Sie die Bereitstellung sperren und die Statusdatei herunterladen. Sie können die Statusdatei dann mutieren oder prüfen.
Nachdem Sie die Statusdatei geändert haben, laden Sie sie hoch, damit sie von Infra Manager für Ihre Bereitstellung verwendet werden kann.
Bereitstellung sperren
Sperren Sie die Bereitstellung, um Änderungen an der Bereitstellung zu verhindern, während Sie die Statusdatei ändern. Die Bereitstellung muss gesperrt sein, damit die Statusdatei heruntergeladen werden kann.
gcloud infra-manager deployments lock DEPLOYMENT_ID --project PROJECT_ID --location LOCATION
Ersetzen Sie:
- DEPLOYMENT_ID durch die Bereitstellungskennung.
- PROJECT_ID durch das Projekt, in dem die Bereitstellung ausgeführt wird.
- LOCATION durch den Standort, an dem die Bereitstellung ausgeführt wird.
Die Ausgabe dieses Befehls enthält eine
lock ID
, die zum Hochladen und Entsperren der Statusdatei verwendet wird.Sie können die Sperr-ID jederzeit mit dem folgenden Befehl abrufen:
gcloud infra-manager deployments export-lock DEPLOYMENT_ID --project PROJECT_ID --location LOCATION
Statusdatei herunterladen
Zum Herunterladen der Zustandsdatei verwenden Sie eine signierte Cloud Storage-URL:
SIGNED_STATE_DOWNLOAD_URL=$(gcloud infra-manager deployments export-statefile DEPLOYMENT_ID --project PROJECT_ID --location LOCATION --format="get(signedUri)")
curl -s -X GET --output terraform.tfstate ${SIGNED_STATE_DOWNLOAD_URL}
Statusdatei lokal ändern
Prüfen Sie, ob sich die Konfiguration (
*.tf
-Dateien) im selben Verzeichnis wie die heruntergeladene Zustandsdatei (terraform.tfstate
) befindet.Initialisieren Sie Terraform:
terraform init
Wenn Sie Terraform bereits initialisiert haben, müssen Sie es möglicherweise mit dem Flag „reconfigure“ initialisieren:
terraform init -reconfigure
Bearbeiten Sie die Statusdatei nach Bedarf. Sie können beispielsweise Statusprüfungen oder Mutationsvorgänge ausführen. Weitere Informationen zum Arbeiten mit der Statusdatei finden Sie unter Terraform-Status bearbeiten.
Wenn Sie lokale Änderungen an den Terraform-Konfigurationsdateien vornehmen, laden Sie die geänderte Konfiguration hoch. Laden Sie diese Konfiguration in den Speicher-Bucket oder das öffentliche Git-Repository hoch, das Sie als Quelle für die Bereitstellung der Konfiguration verwenden.
Statusdatei hochladen
Verwenden Sie eine signierte Cloud Storage-URL, um die Statusdatei hochzuladen:
Rufen Sie die Schloss-ID ab:
LOCK_ID=$(gcloud infra-manager deployments export-lock DEPLOYMENT_ID --project PROJECT_ID --location LOCATION --format="get(lockId)")
Rufen Sie die Upload-URL ab:
SIGNED_STATE_UPLOAD_URL=$(gcloud infra-manager deployments import-statefile DEPLOYMENT_ID --project PROJECT_ID --location LOCATION --lock-id ${LOCK_ID} --format="get(signedUri)") curl -s -X PUT --upload-file terraform.tfstate $SIGNED_STATE_UPLOAD_URL
Bereitstellung entsperren
Rufen Sie die Schloss-ID ab:
LOCK_ID=$(gcloud infra-manager deployments export-lock DEPLOYMENT_ID --project PROJECT_ID --location LOCATION --format="get(lockId)")
Entsperren Sie die Bereitstellung:
gcloud infra-manager deployments unlock DEPLOYMENT_ID --project PROJECT_ID --location LOCATION --lock-id ${LOCK_ID}
Nächste Schritte
- Weitere Informationen zu Terraform mit Google Cloud
- Bereitstellung aktualisieren
- Status einer Bereitstellung ansehen
- Bereitgestellte Ressourcen ansehen
- Deployment löschen