In dieser Anleitung wird gezeigt, wie Sie Google Cloud -Ressourcen in eine Infrastructure Manager-Bereitstellung importieren. Sie können nur Ressourcen importieren, die mit Terraform bereitgestellt wurden.
Wenn Sie eine Terraform-Konfiguration haben, die Sie noch nicht inGoogle Cloudbereitgestellt haben, lesen Sie den Abschnitt Infrastruktur mit Infrastructure Manager bereitstellen.
In dieser Anleitung wird zuerst beschrieben, wie Sie eine Virtual Private Cloud (VPC) aufGoogle Cloud mit der Terraform CLI bereitstellen. In dieser Anleitung wird dann gezeigt, wie Sie diese bereitgestellten Ressourcen in Infrastructure Manager importieren, damit sie als Infrastructure Manager-Bereitstellung verwaltet werden können.
Anhand des Beispiels in diesem Tutorial können Sie nachvollziehen, wie Sie andereGoogle Cloud -Ressourcen in Infra Manager importieren. Damit die Bereitstellung in Infra Manager importiert werden kann, muss die Terraform-Konfiguration, mit der die Ressourcen bereitgestellt wurden, den Einschränkungen entsprechen und die Ressourcen müssen mit einer unterstützten Terraform-Version bereitgestellt worden sein.
Kosten
In dieser Anleitung werden die folgenden kostenpflichtigen Komponenten von Google Cloudverwendet:
Hinweis
-
Melden Sie sich bei Ihrem Google-Konto an.
Wenn Sie noch kein Konto haben, melden Sie sich hier für ein neues Konto an.
-
Installieren Sie die Google Cloud CLI.
-
Wenn Sie einen externen Identitätsanbieter (IdP) verwenden, müssen Sie sich zuerst mit Ihrer föderierten Identität in der gcloud CLI anmelden.
-
Führen Sie den folgenden Befehl aus, um die gcloud CLI zu initialisieren:
gcloud init -
Erstellen Sie ein Google Cloud Projekt oder wählen Sie eines aus.
Rollen, die zum Auswählen oder Erstellen eines Projekts erforderlich sind
- Projekt auswählen: Für die Auswahl eines Projekts ist keine bestimmte IAM-Rolle erforderlich. Sie können jedes Projekt auswählen, für das Ihnen eine Rolle zugewiesen wurde.
-
Projekt erstellen: Zum Erstellen eines Projekts benötigen Sie die Rolle „Projektersteller“ (
roles/resourcemanager.projectCreator), die die Berechtigungresourcemanager.projects.createenthält. Weitere Informationen zum Zuweisen von Rollen
-
So erstellen Sie ein Google Cloud Projekt:
gcloud projects create PROJECT_ID
Ersetzen Sie
PROJECT_IDdurch einen Namen für das Google Cloud Projekt, das Sie erstellen. -
Wählen Sie das von Ihnen erstellte Google Cloud Projekt aus:
gcloud config set project PROJECT_ID
Ersetzen Sie
PROJECT_IDdurch den Namen Ihres Projekts in Google Cloud .
-
Prüfen Sie, ob die Abrechnung für Ihr Google Cloud Projekt aktiviert ist.
Aktivieren Sie die Infrastructure Manager API, falls sie noch nicht aktiviert ist:
Rollen, die zum Aktivieren von APIs erforderlich sind
Zum Aktivieren von APIs benötigen Sie die Berechtigung
serviceusage.services.enable. Wenn Sie das Projekt erstellt haben, haben Sie diese Berechtigung wahrscheinlich bereits über die Rolle „Inhaber“ (roles/owner). Andernfalls können Sie diese Berechtigung über die Rolle „Service Usage-Administrator“ (roles/serviceusage.serviceUsageAdmin) erhalten. Informationen zum Zuweisen von Rollengcloud services enable config.googleapis.com
-
Richten Sie die Authentifizierung ein:
-
Sie benötigen die IAM-Rolle „Dienstkonten erstellen“ (
roles/iam.serviceAccountCreator) und die IAM-Rolle „Projekt-IAM-Administrator“ (roles/resourcemanager.projectIamAdmin). Informationen zum Zuweisen von Rollen -
Erstellen Sie das Dienstkonto:
gcloud iam service-accounts create SERVICE_ACCOUNT_NAME
Ersetzen Sie
SERVICE_ACCOUNT_NAMEmit einem Namen für das Dienstkonto. -
Weisen Sie dem Dienstkonto die IAM-Rolle
roles/config.agentzu.gcloud projects add-iam-policy-binding PROJECT_ID --member="serviceAccount:SERVICE_ACCOUNT_NAME@PROJECT_ID.iam.gserviceaccount.com" --role=roles/config.agent
Dabei gilt:
SERVICE_ACCOUNT_NAME: der Name des DienstkontosPROJECT_ID: die Projekt-ID, unter der Sie das Dienstkonto erstellt haben
-
Sie benötigen die IAM-Rolle „Dienstkonten erstellen“ (
-
Installieren Sie die Google Cloud CLI.
-
Wenn Sie einen externen Identitätsanbieter (IdP) verwenden, müssen Sie sich zuerst mit Ihrer föderierten Identität in der gcloud CLI anmelden.
-
Führen Sie den folgenden Befehl aus, um die gcloud CLI zu initialisieren:
gcloud init -
Erstellen Sie ein Google Cloud Projekt oder wählen Sie eines aus.
Rollen, die zum Auswählen oder Erstellen eines Projekts erforderlich sind
- Projekt auswählen: Für die Auswahl eines Projekts ist keine bestimmte IAM-Rolle erforderlich. Sie können jedes Projekt auswählen, für das Ihnen eine Rolle zugewiesen wurde.
-
Projekt erstellen: Zum Erstellen eines Projekts benötigen Sie die Rolle „Projektersteller“ (
roles/resourcemanager.projectCreator), die die Berechtigungresourcemanager.projects.createenthält. Weitere Informationen zum Zuweisen von Rollen
-
So erstellen Sie ein Google Cloud Projekt:
gcloud projects create PROJECT_ID
Ersetzen Sie
PROJECT_IDdurch einen Namen für das Google Cloud Projekt, das Sie erstellen. -
Wählen Sie das von Ihnen erstellte Google Cloud Projekt aus:
gcloud config set project PROJECT_ID
Ersetzen Sie
PROJECT_IDdurch den Namen Ihres Projekts in Google Cloud .
-
Prüfen Sie, ob die Abrechnung für Ihr Google Cloud Projekt aktiviert ist.
Aktivieren Sie die Infrastructure Manager API, falls sie noch nicht aktiviert ist:
Rollen, die zum Aktivieren von APIs erforderlich sind
Zum Aktivieren von APIs benötigen Sie die Berechtigung
serviceusage.services.enable. Wenn Sie das Projekt erstellt haben, haben Sie diese Berechtigung wahrscheinlich bereits über die Rolle „Inhaber“ (roles/owner). Andernfalls können Sie diese Berechtigung über die Rolle „Service Usage-Administrator“ (roles/serviceusage.serviceUsageAdmin) erhalten. Informationen zum Zuweisen von Rollengcloud services enable config.googleapis.com
-
Richten Sie die Authentifizierung ein:
-
Sie benötigen die IAM-Rolle „Dienstkonten erstellen“ (
roles/iam.serviceAccountCreator) und die IAM-Rolle „Projekt-IAM-Administrator“ (roles/resourcemanager.projectIamAdmin). Informationen zum Zuweisen von Rollen -
Erstellen Sie das Dienstkonto:
gcloud iam service-accounts create SERVICE_ACCOUNT_NAME
Ersetzen Sie
SERVICE_ACCOUNT_NAMEmit einem Namen für das Dienstkonto. -
Weisen Sie dem Dienstkonto die IAM-Rolle
roles/config.agentzu.gcloud projects add-iam-policy-binding PROJECT_ID --member="serviceAccount:SERVICE_ACCOUNT_NAME@PROJECT_ID.iam.gserviceaccount.com" --role=roles/config.agent
Dabei gilt:
SERVICE_ACCOUNT_NAME: der Name des DienstkontosPROJECT_ID: die Projekt-ID, unter der Sie das Dienstkonto erstellt haben
-
Sie benötigen die IAM-Rolle „Dienstkonten erstellen“ (
- Installieren Sie eine unterstützte Version von Terraform.
Ressourcen in Google Cloudbereitstellen
Die Google Cloud Ressource, die Sie in dieser Anleitung bereitstellen, ist eine VPC. In diesem Abschnitt erfahren Sie, wie Sie die Ressource bereitstellen, die als Beispiel für den Import bereitgestellter Ressourcen in Infra Manager verwendet werden soll.
In dieser Anleitung wird die Region us-central1 verwendet. Wenn Sie eine andere Region verwenden möchten, können Sie einen beliebigen Standort verwenden, an dem Infra Manager ausgeführt wird. Eine Liste der gültigen Standorte finden Sie unter Infrastructure Manager-Standorte.
Berechtigungen für Ressourcen in der Konfiguration gewähren
Sie haben die zum Ausführen von Infra Manager erforderlichen Berechtigungen erteilt, müssen aber auch Berechtigungen erteilen, die für die Ressourcen in der Konfiguration, die Sie bereitstellen, spezifisch sind.
Gewähren Sie Berechtigungen zum Erstellen des VPC-Netzwerk, der in der Terraform-Konfiguration definierten Ressource:
gcloud projects add-iam-policy-binding PROJECT_ID \
--member=serviceAccount:SERVICE_ACCOUNT_NAME@PROJECT_ID.iam.gserviceaccount.com \
--role=roles/compute.networkAdmin
Ersetzen Sie Folgendes:
- SERVICE_ACCOUNT_NAME ist der Name des Dienstkontos.
- PROJECT_ID: Ihre Projekt-ID.
Ressourcen mit der Terraform-Befehlszeile bereitstellen
Erstellen Sie mit der folgenden Terraform-Konfiguration ein VPC-Netzwerk. Dazu führen Sie den folgenden Befehl aus:
mkdir vpc_to_import cd vpc_to_import cat <<EOF > main.tf variable "project_id" { type = string } resource "google_compute_network" "vpc_network" { name = "my-custom-mode-network" project = var.project_id } EOFStellen Sie die Konfiguration mit der Terraform-Befehlszeile mit dem folgenden Befehl bereit:
terraform init echo "************** TERRAFORM APPLY ******************" terraform apply -var="project_id=PROJECT_ID" -auto-approve cd ..
Wenn die VPC bereitgestellt wird, sehen Sie eine Ausgabe, die mit dem Text Creation complete beginnt.
Die in der Terraform-Konfiguration definierte VPC wird jetzt auf Google Cloudbereitgestellt. Terraform erstellt eine Zustandsdatei, die sich im Dateisystem neben der main.tf-Datei befindet.
Platzhalter-Deployment in Infrastructure Manager erstellen
Wenn Sie Ressourcen in Infra Manager importieren möchten, benötigen Sie eine vorhandene Bereitstellung in Infra Manager.
In dieser Anleitung wird ein Storage-Bucket zum Speichern der Terraform-Konfiguration verwendet. Wenn Sie diese Anleitung verwenden, um zu erfahren, wie Sie andere Bereitstellungen in Infra Manager importieren, können Sie die Terraform-Konfiguration in einem Speicher-Bucket, einem öffentlichen Git-Repository oder auf Ihrem lokalen Computer speichern.
Fügen Sie dem Speicher-Bucket eine leere Terraform-Konfiguration hinzu:
gcloud storage buckets create gs://import-deployment-configuration --project=PROJECT_ID mkdir placeholder_deployment cd placeholder_deployment cat <<EOF > main.tf EOF gcloud storage cp main.tf gs://import-deployment-configuration cd ..Erstellen Sie ein Deployment mit Infra Manager.
gcloud infra-manager deployments apply projects/PROJECT_ID/locations/us-central1/deployments/import-deployment \ --gcs-source gs://import-deployment-configuration \ --input-values project_id=PROJECT_ID \ --service-account projects/PROJECT_ID/serviceAccounts/SERVICE_ACCOUNTWenn die Bereitstellung abgeschlossen ist, wird Folgendes angezeigt:
Creating the deployment...done
Sie haben jetzt ein Infra Manager-Deployment. Als Nächstes müssen Sie die Statusdatei und die Terraform-Konfiguration dieser Bereitstellung hinzufügen, damit die VPC von dieser Bereitstellung verwaltet wird.
Zustandsdatei und Terraform-Konfiguration importieren
Wenn Sie die bereitgestellte Ressource (die VPC) mit Infra Manager verwalten möchten, müssen Sie die Zustandsdatei und die Terraform-Konfiguration zu Infra Manager hinzufügen.
Bereitstellung sperren
Sperren Sie das Infra Manager-Deployment, damit Sie Änderungen am Status vornehmen können.
LOCK_ID=$(gcloud infra-manager deployments lock projects/PROJECT_ID/locations/us-central1/deployments/import-deployment --format="get(lockId)")
Terraform-Zustandsdatei in Infra Manager importieren
Importieren Sie die Statusdatei für Ihre bereitgestellten Ressourcen. Diese Zustandsdatei wurde von Terraform erstellt, als Sie die VPC mit der Terraform-Befehlszeile bereitgestellt haben.
Laden Sie die Terraform-Zustandsdatei in die Infra Manager-Bereitstellung hoch.
SIGNED_STATE_UPLOAD_URL=$(gcloud infra-manager deployments import-statefile projects/PROJECT_ID/locations/us-central1/deployments/import-deployment --lock-id ${LOCK_ID} --format="get(signedUri)")
cd vpc_to_import
curl -s -X PUT --upload-file terraform.tfstate $SIGNED_STATE_UPLOAD_URL
Terraform-Konfiguration in den Cloud Storage-Bucket hochladen
Nachdem Sie die Terraform-Zustandsdatei hochgeladen haben, müssen Sie auch die Terraform-Konfiguration hochladen, mit der Sie das VPC-Netzwerk erstellt haben. Infra Manager benötigt die Terraform-Zustandsdatei, damit bei der Ausführung einer Infra Manager-Vorschau keine Änderungen an den Ressourcen gefunden werden.
Laden Sie die Terraform-Konfiguration mit dem folgenden Befehl in Cloud Storage hoch:
gcloud storage cp main.tf gs://import-deployment-configuration
Deployment entsperren
Wenn Sie diese Anleitung verwenden, um zu erfahren, wie Sie Ressourcen in Infra Manager importieren, achten Sie darauf, dass die Zustandsdatei und die Terraform-Konfiguration keine Unterschiede aufweisen. Wenn es Unterschiede zwischen der Zustandsdatei und der Terraform-Konfiguration gibt, muss die Zustandsdatei die Ressourcen beschreiben, die bereitgestellt werden sollen. Wenn Sie die Bereitstellung entsperren und es Unterschiede zwischen der Zustandsdatei und der Terraform-Konfiguration gibt, erstellt oder löscht Infra Manager Ressourcen, die der Zustandsdatei entsprechen.
Sie müssen die Bereitstellung entsperren, um die Ressourcen mit Infra Manager verwalten zu können. In dieser Anleitung beschreiben die Zustandsdatei und die Terraform-Konfiguration dieselbe Konfiguration. Daher werden von Infra Manager keine Ressourcen erstellt oder gelöscht.
Entfernen Sie die Sperre aus der Bereitstellung, indem Sie Folgendes ausführen.
gcloud infra-manager deployments unlock projects/PROJECT_ID/locations/us-central1/deployments/import-deployment \
--project PROJECT_ID \
--location us-central1 \
--lock-id ${LOCK_ID}
Nachdem die Zustandsdatei und die Terraform-Konfiguration in Ihre Infra Manager-Bereitstellung aufgenommen wurden, haben Sie die Bereitstellung der Ressourcen abgeschlossen. Die bereitgestellte VPC wird jetzt von Infra Manager verwaltet.
Vorschau von Ressourcenänderungen ansehen
Führen Sie eine Vorschau der Bereitstellung aus, um zu bestätigen, dass der Terraform-Status und die auf Google Cloud bereitgestellten Ressourcen synchron sind.
Erstellen Sie mit dem folgenden Befehl eine Vorschau:
gcloud infra-manager previews create projects/PROJECT_ID/locations/us-central1/previews/IMPORT_DEPLOYMENT_PREVIEW_NAME \ --gcs-source gs://import-deployment-configuration \ --deployment projects/PROJECT_ID/locations/us-central1/deployments/import-deployment \ --service-account projects/PROJECT_ID/serviceAccounts/SERVICE_ACCOUNT_NAME@PROJECT_ID.iam.gserviceaccount.com --location us-central1Rufen Sie die Vorschau-Details auf, um zu prüfen, ob die Vorschau erfolgreich abgeschlossen wurde.
gcloud infra-manager previews describe projects/PROJECT_ID/locations/us-central1/previews/IMPORT_DEPLOYMENT_PREVIEW_NAMEExportieren Sie die Vorschau, um die Änderungen zu überprüfen.
SIGNED_BIN_PLAN_URL=$(gcloud infra-manager previews export projects/PROJECT_ID/locations/us-central1/previews/IMPORT_DEPLOYMENT_PREVIEW_NAME --format "get(result.binarySignedUri)") curl -X GET --output tfplan.out $SIGNED_BIN_PLAN_URLPrüfen Sie, ob die Konfiguration lokal vorhanden und mit dem folgenden Befehl initialisiert ist:
terraform initFühren Sie „Terraform show“ aus, um die Änderungen zwischen dem Bereitstellungsstatus von Infrastructure Manager und der Konfiguration zu prüfen.
terraform show tfplan.out
Wenn die VPC-Ressource auf Google Cloud und die Statusdatei synchron sind, gibt terraform show Folgendes aus, um zu bestätigen, dass Infrastructure Manager keine Änderungen zwischen dem Bereitstellungsstatus und der Konfiguration erkennt. Die Ausgabe sollte in etwa so aussehen:
No changes. Your infrastructure matches the configuration.
Terraform has compared your real infrastructure against your configuration and found no differences, so no changes are needed.
Sie haben die bereitgestellten Ressourcen jetzt importiert, sodass sie von Infra Manager verwaltet werden. Sie können jetzt beispielsweise Infra Manager verwenden, um das Deployment zu aktualisieren.
Sie können das Deployment auch aktualisieren, um zu prüfen, ob es erfolgreich in Infra Manager importiert wurde.
Bereinigen
Damit Ihrem Google Cloud-Konto die in dieser Anleitung verwendeten Ressourcen nicht in Rechnung gestellt werden, löschen Sie entweder das Projekt, das die Ressourcen enthält, oder Sie behalten das Projekt und löschen die einzelnen Ressourcen.
Projekt löschen
Google Cloud -Projekt löschen:
gcloud projects delete PROJECT_ID
Einzelne Ressourcen löschen
Löschen Sie die VPC und die Metadaten zur Bereitstellung:
gcloud infra-manager deployments delete projects/PROJECT_ID/locations/us-central1/deployments/quickstart-deployment