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 und diese noch nicht aufGoogle Cloudbereitgestellt haben, lesen Sie den Hilfeartikel Infrastruktur mit Infrastructure Manager bereitstellen.
In dieser Anleitung wird zuerst eine Virtual Private Cloud (VPC) mit der Terraform-Befehlszeile aufGoogle Cloud bereitgestellt. Anschließend wird gezeigt, wie diese bereitgestellten Ressourcen in Infrastructure Manager importiert werden, damit sie als Infrastructure Manager-Bereitstellung verwaltet werden können.
Anhand des Beispiels in dieser Anleitung 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, die zum Bereitstellen der Ressourcen verwendet wurde, 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
-
Sign in to your Google Account.
If you don't already have one, sign up for a new account.
- Install the Google Cloud CLI.
-
To initialize the gcloud CLI, run the following command:
gcloud init
-
Create or select a Google Cloud project.
-
Create a Google Cloud project:
gcloud projects create PROJECT_ID
Replace
PROJECT_ID
with a name for the Google Cloud project you are creating. -
Select the Google Cloud project that you created:
gcloud config set project PROJECT_ID
Replace
PROJECT_ID
with your Google Cloud project name.
-
-
Make sure that billing is enabled for your Google Cloud project.
-
Enable the Infrastructure Manager API:
gcloud services enable config.googleapis.com
-
Set up authentication:
-
Create the service account:
gcloud iam service-accounts create SERVICE_ACCOUNT_NAME
Replace
SERVICE_ACCOUNT_NAME
with a name for the service account. -
Grant the
roles/config.agent
IAM role to the service account:gcloud projects add-iam-policy-binding PROJECT_ID --member="serviceAccount:SERVICE_ACCOUNT_NAME@PROJECT_ID.iam.gserviceaccount.com" --role=roles/config.agent
Replace the following:
SERVICE_ACCOUNT_NAME
: the name of the service accountPROJECT_ID
: the project ID where you created the service account
-
- Install the Google Cloud CLI.
-
To initialize the gcloud CLI, run the following command:
gcloud init
-
Create or select a Google Cloud project.
-
Create a Google Cloud project:
gcloud projects create PROJECT_ID
Replace
PROJECT_ID
with a name for the Google Cloud project you are creating. -
Select the Google Cloud project that you created:
gcloud config set project PROJECT_ID
Replace
PROJECT_ID
with your Google Cloud project name.
-
-
Make sure that billing is enabled for your Google Cloud project.
-
Enable the Infrastructure Manager API:
gcloud services enable config.googleapis.com
-
Set up authentication:
-
Create the service account:
gcloud iam service-accounts create SERVICE_ACCOUNT_NAME
Replace
SERVICE_ACCOUNT_NAME
with a name for the service account. -
Grant the
roles/config.agent
IAM role to the service account:gcloud projects add-iam-policy-binding PROJECT_ID --member="serviceAccount:SERVICE_ACCOUNT_NAME@PROJECT_ID.iam.gserviceaccount.com" --role=roles/config.agent
Replace the following:
SERVICE_ACCOUNT_NAME
: the name of the service accountPROJECT_ID
: the project ID where you created the service account
-
- 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 jeden Standort auswählen, 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 Berechtigungen zum Ausführen von Infra Manager gewährt, aber Sie müssen auch Berechtigungen für die in der zu implementierenden Konfiguration beschriebenen Ressourcen gewähren.
Gewähren Sie Berechtigungen, um das VPC-Netzwerk zu erstellen, die in der Terraform-Konfiguration definierte 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 } EOF
Stellen 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 wurde, wird eine Ausgabe angezeigt, die mit dem Text Creation complete
beginnt.
Das in der Terraform-Konfiguration definierte VPC wird jetzt auf Google Cloudbereitgestellt. Terraform erstellt eine Statusdatei, die sich im Dateisystem neben der main.tf
-Datei befindet.
Platzhalterbereitstellung 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 verwendet, um die Terraform-Konfiguration zu speichern. 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 eine Bereitstellung 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
Nach der Bereitstellung sehen Sie Folgendes:
Creating the deployment...done
Sie haben jetzt eine Infra Manager-Bereitstellung. Als Nächstes müssen Sie dieser Bereitstellung die Statusdatei und die Terraform-Konfiguration hinzufügen, damit die Bereitstellung das VPC verwaltet.
Statusdatei und Terraform-Konfiguration importieren
Wenn Sie die bereitgestellte Ressource (das VPC) mit Infrastructure Manager verwalten möchten, müssen Sie die Statusdatei und die Terraform-Konfiguration zu Infrastructure Manager hinzufügen.
Bereitstellung sperren
Sperren Sie die Infra Manager-Bereitstellung, 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 Statusdatei 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
Bereitstellung entsperren
Wenn Sie dieses Tutorial 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, achten Sie darauf, dass in der Zustandsdatei die Ressourcen beschrieben sind, die Sie bereitstellen möchten. Wenn Sie die Bereitstellung entsperren und Unterschiede zwischen der Zustandsdatei und der Terraform-Konfiguration bestehen, erstellt oder löscht Infra Manager beim Entsperren der Bereitstellung 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 in Infra Manager keine Ressourcen erstellt oder gelöscht.
Heben Sie die Sperre für die Bereitstellung auf, 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 Sie der Infra Manager-Bereitstellung die Zustandsdatei und die Terraform-Konfiguration hinzugefügt haben, sind Sie mit dem Importieren der bereitgestellten Ressourcen fertig. Die bereitgestellte VPC wird jetzt von Infra Manager verwaltet.
Vorschau der Ressourcenänderungen
Führen Sie eine Vorschau der Bereitstellung aus, um zu prüfen, ob 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 \ --gcs-source gs://import-deployment-configuration \ --input-values project_id=PROJECT_ID \ --deployment projects/PROJECT_ID/locations/us-central1/deployments/import-deployment \ --service-account projects/PROJECT_ID/serviceAccounts/SERVICE_ACCOUNT_NAME@PROJECT_ID.iam.gserviceaccount.com
Rufen Sie die Vorschaudetails ab, um zu prüfen, ob der Vorgang erfolgreich abgeschlossen wurde.
gcloud infra-manager previews describe projects/PROJECT_ID/locations/us-central1/previews/import-deployment-preview
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 --format "get(result.binarySignedUri)") curl -X GET --output tfplan.out $SIGNED_BIN_PLAN_URL
Prüfen Sie, ob die Konfiguration lokal vorhanden ist, und initialisieren Sie sie mit dem folgenden Befehl:
terraform init
Führen Sie Terraform show aus, um Änderungen zwischen dem Bereitstellungsstatus von Infrastructure Manager und der Konfiguration zu überprü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, damit sie von Infra Manager verwaltet werden. Sie können beispielsweise jetzt Infra Manager verwenden, um die Bereitstellung zu aktualisieren.
Sie können auch die Bereitstellung aktualisieren, um zu prüfen, ob sie 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
Delete a Google Cloud project:
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