Bereitstgestellte Ressourcen in Infrastructure Manager importieren

In dieser Anleitung wird gezeigt, wie Sie Google Cloud Ressourcen in ein Infrastructure Manager-Deployment importieren. Sie können nur Ressourcen importieren, die mit Terraform bereitgestellt wurden.

Wenn Sie eine Terraform-Konfiguration haben und diese noch nicht in Google Cloudbereitgestellt haben, lesen Sie die Anleitung zum Bereitstellen der Infrastruktur mit Infrastructure Manager.

In dieser Anleitung wird zuerst eine Virtual Private Cloud (VPC) mit der Terraform CLI in Google Cloud bereitgestellt. Anschließend wird gezeigt, wie Sie diese bereitgestellten Ressourcen in Infrastructure Manager importieren, damit sie als Infrastructure Manager-Deployment verwaltet werden können.

Anhand des Beispiels in dieser Anleitung können Sie nachvollziehen, wie Sie andere Google Cloud Ressourcen in Infrastructure Manager importieren. Damit Sie das Deployment in Infrastructure Manager importieren können, muss die Terraform-Konfiguration, die zum Bereitstellen der Ressourcen verwendet wurde, den Einschränkungenentsprechen und die Ressourcen müssen mit einer unterstützten Terraform-Versionbereitgestellt worden sein.

Kosten

In dieser Anleitung werden die folgenden kostenpflichtigen Komponenten von Google Cloudverwendet:

Hinweis

  1. Melden Sie sich bei Ihrem Google-Konto an.

    Wenn Sie noch kein Konto haben, melden Sie sich hier für ein neues Konto an.

  2. Installieren Sie die Google Cloud CLI.

  3. Wenn Sie einen externen Identitätsanbieter (IdP) verwenden, müssen Sie sich zuerst mit Ihrer föderierten Identität in der gcloud CLI anmelden.

  4. Führen Sie den folgenden Befehl aus, um die gcloud CLI zu initialisieren:

    gcloud init
  5. 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 ein beliebiges 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 resourcemanager.projects.create Berechtigung enthält. Informationen zum Zuweisen von Rollen.
    • Erstellen Sie ein Google Cloud Projekt:

      gcloud projects create PROJECT_ID

      Ersetzen Sie PROJECT_ID durch einen Namen für das Google Cloud Projekt, das Sie erstellen.

    • Wählen Sie das Google Cloud Projekt aus, das Sie erstellt haben:

      gcloud config set project PROJECT_ID

      Ersetzen Sie PROJECT_ID durch den Namen Ihres Google Cloud Projekts in.

  6. Prüfen Sie, ob für Ihr Google Cloud Projekt in die Abrechnung aktiviert ist.

  7. Aktivieren Sie die Infrastructure Manager API:

    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 Rollen.

    gcloud services enable config.googleapis.com
  8. Richten Sie die Authentifizierung ein:

    1. Sie benötigen die IAM-Rolle „Dienstkonto erstellen“ (roles/iam.serviceAccountCreator) und die Rolle „Projekt-IAM-Administrator“ (roles/resourcemanager.projectIamAdmin). Informationen zum Zuweisen von Rollen.
    2. Erstellen Sie das Dienstkonto:

      gcloud iam service-accounts create SERVICE_ACCOUNT_NAME

      Ersetzen Sie SERVICE_ACCOUNT_NAME durch einen Namen für das Dienstkonto.

    3. Weisen Sie dem Dienstkonto die IAM Rolle zu:roles/config.agent

      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 Dienstkontos
      • PROJECT_ID: die Projekt-ID, unter der Sie das Dienstkonto erstellt haben
  9. Installieren Sie die Google Cloud CLI.

  10. Wenn Sie einen externen Identitätsanbieter (IdP) verwenden, müssen Sie sich zuerst mit Ihrer föderierten Identität in der gcloud CLI anmelden.

  11. Führen Sie den folgenden Befehl aus, um die gcloud CLI zu initialisieren:

    gcloud init
  12. 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 ein beliebiges 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 resourcemanager.projects.create Berechtigung enthält. Informationen zum Zuweisen von Rollen.
    • Erstellen Sie ein Google Cloud Projekt:

      gcloud projects create PROJECT_ID

      Ersetzen Sie PROJECT_ID durch einen Namen für das Google Cloud Projekt, das Sie erstellen.

    • Wählen Sie das Google Cloud Projekt aus, das Sie erstellt haben:

      gcloud config set project PROJECT_ID

      Ersetzen Sie PROJECT_ID durch den Namen Ihres Google Cloud Projekts in.

  13. Prüfen Sie, ob für Ihr Google Cloud Projekt in die Abrechnung aktiviert ist.

  14. Aktivieren Sie die Infrastructure Manager API:

    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 Rollen.

    gcloud services enable config.googleapis.com
  15. Richten Sie die Authentifizierung ein:

    1. Sie benötigen die IAM-Rolle „Dienstkonto erstellen“ (roles/iam.serviceAccountCreator) und die Rolle „Projekt-IAM-Administrator“ (roles/resourcemanager.projectIamAdmin). Informationen zum Zuweisen von Rollen.
    2. Erstellen Sie das Dienstkonto:

      gcloud iam service-accounts create SERVICE_ACCOUNT_NAME

      Ersetzen Sie SERVICE_ACCOUNT_NAME durch einen Namen für das Dienstkonto.

    3. Weisen Sie dem Dienstkonto die IAM Rolle zu:roles/config.agent

      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 Dienstkontos
      • PROJECT_ID: die Projekt-ID, unter der Sie das Dienstkonto erstellt haben
  16. Installieren Sie eine unterstützte Version von Terraform.

Ressourcen inbereitstellen Google Cloud

Die Google Cloud Ressource, die Sie in dieser Anleitung bereitstellen, ist eine VPC. In diesem Abschnitt wird gezeigt, wie Sie die Ressource bereitstellen, um sie als Beispiel für den Import bereitgestellter Ressourcen in Infra Manager zu verwenden.

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 Infrastructure Manager ausgeführt wird. Eine Liste der gültigen Standorte finden Sie unter Infrastructure Manager-Standorte.

Berechtigungen für Ressourcen in der Konfiguration erteilen

Sie haben die Berechtigungen erteilt, die zum Ausführen von Infrastructure Manager erforderlich sind. Sie müssen aber auch Berechtigungen erteilen, die für die Ressourcen spezifisch sind, die in der Konfiguration beschrieben sind, die Sie bereitstellen.

Erteilen Sie Berechtigungen, um das VPC-Netzwerk zu erstellen. Das ist die Ressource, die in der Terraform-Konfiguration definiert ist:

gcloud projects add-iam-policy-binding PROJECT_ID \
    --member=serviceAccount:SERVICE_ACCOUNT_NAME@PROJECT_ID.iam.gserviceaccount.com \
    --role=roles/compute.networkAdmin

Dabei gilt:

  • SERVICE_ACCOUNT_NAME: der Name des Dienstkontos.
  • PROJECT_ID: Ihre Projekt-ID.

Ressourcen mit der Terraform CLI bereitstellen

  1. 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
    }
    EOF
    
  2. Stellen Sie die Konfiguration mit der Terraform CLI bereit. Verwenden Sie dazu den folgenden Befehl:

    terraform init
    echo "**************  TERRAFORM APPLY  ******************"
    terraform apply -var="project_id=PROJECT_ID" -auto-approve
    cd ..
    

Wenn die VPC bereitgestellt wurde, sehen Sie eine Ausgabe, die mit dem Text Creation complete beginnt.

Die in der Terraform-Konfiguration definierte VPC wird jetzt inbereitgestellt Google Cloud. Terraform erstellt eine Zustandsdatei, die sich im Dateisystem neben der Datei main.tf befindet.

Platzhalter-Deployment in Infrastructure Manager erstellen

Wenn Sie Ressourcen in Infrastructure Manager importieren möchten, benötigen Sie ein vorhandenes Deployment in Infrastructure 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 Deployments in Infrastructure Manager importieren, können Sie die Terraform-Konfiguration in einem Storage-Bucket, einem öffentlichen Git-Repository oder auf Ihrem lokalen Computer speichern.

  1. Fügen Sie dem Storage-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 ..
    
  2. 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_ACCOUNT
    

    Wenn das Deployment abgeschlossen ist, sehen Sie Folgendes:

    Creating the deployment...done
    

Sie haben jetzt ein Infra Manager-Deployment. Als Nächstes müssen Sie dieser Bereitstellung die Zustandsdatei und die Terraform-Konfiguration hinzufügen, damit die VPC von dieser Bereitstellung verwaltet wird.

Zustandsdatei und Terraform-Konfiguration importieren

Wenn Sie die bereitgestellte Ressource (die VPC) mit Infrastructure Manager verwalten möchten, müssen Sie die Zustandsdatei und die Terraform-Konfiguration zu Infrastructure Manager hinzufügen.

Deployment 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 Zustandsdatei für Ihre bereitgestellten Ressourcen. Diese Zustandsdatei wurde von Terraform erstellt, als Sie die VPC mit der Terraform CLI bereitgestellt haben.

Laden Sie die Terraform-Zustandsdatei in das Infra Manager-Deployment 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, die Sie zum Erstellen des VPC-Netzwerk verwendet haben. Infrastructure Manager benötigt die Terraform-Zustandsdatei, damit bei einer Infrastructure 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, müssen die Zustandsdatei und die Terraform-Konfiguration identisch sein. Wenn es Unterschiede zwischen der Zustandsdatei und der Terraform-Konfiguration gibt, muss die Zustandsdatei die Ressourcen beschreiben, die Sie bereitstellen möchten. Wenn Sie das Deployment entsperren und es Unterschiede zwischen der Zustandsdatei und der Terraform-Konfiguration gibt, erstellt oder löscht Infra Manager Ressourcen, damit sie mit der Zustandsdatei übereinstimmen.

Sie müssen das Deployment entsperren, um die Ressourcen mit Infrastructure Manager verwalten zu können. In dieser Anleitung beschreiben die Zustandsdatei und die Terraform-Konfiguration dieselbe Konfiguration. Daher erstellt oder löscht Infrastructure Manager keine Ressourcen.

Entfernen Sie die Sperre aus dem Deployment, 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 Ihrem Infra Manager-Deployment hinzugefügt wurden, haben Sie die bereitgestellten Ressourcen importiert. Die bereitgestellte VPC wird jetzt von Infra Manager verwaltet.

Ressourcenänderungen in der Vorschau ansehen

Führen Sie eine Vorschau des Deployments aus, um zu bestätigen, dass der Terraform Status und die inbereitgestellten Ressourcen synchron sind. Google Cloud

  1. 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-central1
    
  2. Rufen Sie die Details der Vorschau ab, um zu prüfen, ob sie erfolgreich abgeschlossen wurde.

    gcloud infra-manager previews describe projects/PROJECT_ID/locations/us-central1/previews/IMPORT_DEPLOYMENT_PREVIEW_NAME
    
  3. Exportieren 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_URL
    
  4. Prüfen Sie mit dem folgenden Befehl, ob die Konfiguration lokal vorhanden und initialisiert ist:

    terraform init
    
  5. Führen Sie `terraform show` aus, um die Änderungen zwischen dem Infrastructure Manager-Deploymentstatus und der Konfiguration zu überprüfen.

    terraform show tfplan.out
    

Wenn die VPC-Ressource on Google Cloud und die Zustandsdatei in sync sind, gibt terraform show Folgendes aus. Dadurch wird bestätigt, dass Infrastructure Manager keine Änderungen zwischen dem Deploymentstatus und der Konfiguration erkennt. Sie sehen eine Ausgabe ähnlich der folgenden:

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 jetzt die bereitgestellten Ressourcen importiert, sodass sie von Infra Manager verwaltet werden. Sie können Infrastructure Manager jetzt beispielsweise 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

    Löschen Sie ein Google Cloud Projekt:

    gcloud projects delete PROJECT_ID

Einzelne Ressourcen löschen

Löschen Sie die VPC und die Metadaten zum Deployment:

gcloud infra-manager deployments delete projects/PROJECT_ID/locations/us-central1/deployments/quickstart-deployment

Nächste Schritte