Infrastruktur mit Infrastructure Manager bereitstellen

Auf dieser Seite wird beschrieben, wie Sie mit Infrastructure Manager eine Reihe von Google Cloud Ressourcen bereitstellen, die in einer Terraform-Konfiguration definiert sind.

Informationen zum Anzeigen einer Vorschau einer Bereitstellung ohne Bereitstellung von Ressourcen finden Sie unter Vorschau einer Bereitstellung ansehen.

Sie können in mehreren Projekten und an mehreren Standorten bereitstellen. Das Dienstkonto benötigt Berechtigungen für die Ressourcen und Projekte, in denen die Ressourcen bereitgestellt werden. Eine Liste der Berechtigungen finden Sie unter Zugriffssteuerung mit IAM.

Auf dieser Seite wird davon ausgegangen, dass Sie mit Terraform vertraut sind. Weitere Informationen finden Sie unter Terraform und Infra Manager.

Hinweis

  1. Aktivieren Sie Infra Manager.
  2. Prüfen Sie, ob Sie die erforderlichen IAM-Berechtigungen zum Erstellen von Bereitstellungen haben: roles/config.admin.
  3. Prüfen Sie, ob Sie ein Dienstkonto mit den erforderlichen Berechtigungen haben. Weitere Informationen finden Sie unter Dienstkonto konfigurieren.
  4. Identifizieren Sie die Terraform-Konfiguration, die bereitgestellt werden soll. Prüfen Sie, ob diese Terraform Konfiguration den Einschränkungen entspricht. Achten Sie insbesondere darauf, dass die Konfiguration keine sensiblen Daten enthält.
  5. Wenn Sie eine Vorschau der Bereitstellung ansehen möchten, bevor Sie Ressourcen konfigurieren, lesen Sie den Abschnitt Vorschau einer Bereitstellung ansehen.
  6. Prüfen Sie das Kontingent Ihrer Organisation für Produkte, die mit der gewünschten Infrastruktur verknüpft sind. Es können Bereitstellungsfehler auftreten, wenn die gewünschte Infrastruktur das Kontingent Ihrer Organisation für die Produkte übersteigt, die in Ihrer Bereitstellung verwendet werden. Weitere Informationen finden Sie unter Kontingente und Limits.

  7. Infra Manager verwendet Cloud Build, um eine Bereitstellung zu erstellen, zu aktualisieren oder eine Vorschau davon anzusehen. Das Erstellen und Aktualisieren von Bereitstellungen hat ein Zeitlimit von zwei Stunden, während das Ansehen einer Vorschau einer Bereitstellung ein Zeitlimit von einer Stunde hat.

    Wenn Sie mehrere Ressourcen in einer einzelnen Konfiguration verwalten, die dieses Limit überschreitet, sollten Sie Ihre Konfiguration in mehrere Bereitstellungen aufteilen.

Konfigurationsspezifische Berechtigungen erteilen

Um Ressourcen bereitzustellen, die in der Terraform Konfiguration angegeben sind, benötigt das Dienstkonto, mit dem Sie Infra Manager aufrufen, die erforderlichen Berechtigungen, die für die Ressourcen spezifisch sind, die Sie bereitstellen. Google Cloud

Diese Berechtigungen gelten zusätzlich zu den Berechtigungen, die für die Verwendung des Infra Manager-Dienstes erforderlich sind.

Weitere Informationen zum Erteilen von Berechtigungen für die Google Cloud Ressourcen und zum Prüfen, ob Sie Zugriff auf die erforderlichen Projekte haben, finden Sie unter Dienstkonto konfigurieren.

Privates Git-Repository und Host mit Cloud Build verbinden

Wenn Sie eine Terraform-Konfiguration aus einem privaten Git-Repository bereitstellen, müssen Sie Ihren Git-Host und Ihr Repository mit Cloud Build verbinden.

Bereitstellung mit einer Terraform-Konfiguration erstellen

Sie können eine Terraform-Konfiguration auf verschiedene Arten mit Infra Manager bereitstellen:

  • Empfohlen: Wählen Sie in der Google Cloud Console eine Quelle aus, sehen Sie sich Bereitstellungsdetails an, sehen Sie sich eine Vorschau an und stellen Sie Terraform-Konfigurationen bereit. Sie können Infra Manager in der Google Cloud Console verwenden, um aus Cloud Storage-Buckets und Git-Repositories bereitzustellen.
  • Verwenden Sie Infra Manager in der Google Cloud CLI, um Terraform-Konfigurationen aus folgenden Quellen bereitzustellen:
    • Cloud Storage-Buckets
    • Git-Repositories
    • Lokale Verzeichnisse

Unter Terraform-Module und -Blueprints finden Sie Google Cloud Beispiele und Vorlagen für Terraform-Konfigurationen, die Sie mit Infra Manager verwenden können.

Wählen Sie den Tab mit dem gewünschten Workflow aus, um weitere Informationen zum Erstellen einer Bereitstellung zu erhalten.

Console

In diesem Abschnitt wird beschrieben, wie Sie eine Terraform-Konfiguration mit Infra Manager in Google Cloud der Console bereitstellen.

  1. Rufen Sie in der Google Cloud Console die Seite Infra Manager auf.

    Zu Infra Manager

  2. Klicken Sie auf Erstellen , um eine neue Bereitstellung zu erstellen.
  3. Legen Sie auf der Seite Bereitstellungsdetails die ersten Parameter für Ihre Bereitstellung fest.

    Ersetzen Sie:

    • Bereitstellungs-ID: Geben Sie im Feld Bereitstellungs-ID einen aussagekräftigen Namen für Ihre Bereitstellung ein. Weitere Informationen zu den Einschränkungen für Namen finden Sie in der Dokumentation zu Bereitstellungsnamen.
    • Region: Wählen Sie im Drop-down-Menü eine unterstützte Region aus.
    • Terraform-Version: Wählen Sie im Drop-down-Menü eine unterstützte Terraform-Version aus. Die Liste der verfügbaren Terraform-Versionen wird automatisch basierend auf der ausgewählten Region gefüllt.
    • Dienstkonto: Wählen Sie ein vorhandenes Dienstkonto aus oder erstellen Sie ein neues. Infra Manager validiert Berechtigungen automatisch basierend auf der in Ihrer Terraform-Konfiguration beschriebenen Infrastruktur. Weitere Informationen zum Arbeiten mit Dienstkonten und Infra Manager finden Sie unter Dienstkonto konfigurieren.
    • Quelle der Terraform-Konfiguration: Klicken Sie auf die Schaltfläche, um entweder Git oder Cloud Storage als Quelle für die Terraform-Konfiguration auszuwählen, die Sie bereitstellen möchten.
      • Ersetzen Sie für Git:
        • Git-Repository: Geben Sie eine öffentliche oder private Git-Repository-URL, einen Zweig oder ein Tag an.
          Wenn Sie ein privates Git-Repository angeben, prüfen Sie, ob Sie Ihren Host und Ihr Repository mit Cloud Build verbunden haben.
        • Optional: Git-Verzeichnis: Das Verzeichnis im Git-Repository, das die Terraform-Konfiguration enthält.
        • Optional: Git-Referenz: Die Git-Referenz der Konfiguration. Wenn Sie keine Referenz angeben, wird der standardmäßig konfigurierte Zweig des Git-Repositorys verwendet.
      • Ersetzen Sie für Cloud Storage-Bucket:
        • Quelle: Der Name des Storage-Buckets, in dem die Konfiguration gespeichert ist.

    Klicken Sie auf Weiter.

  4. Füllen Sie auf der Seite Terraform-Details mit den Feldern Schlüssel und Wert die Liste der Eingabewerte in Ihrer Terraform-Konfiguration aus.

    Die Werte können beliebige Eingabewerte in der Terraform-Konfiguration sein, einschließlich derer, die nicht standardmäßig definiert sind. Wenn alle Eingabewerte standardmäßig in der Terraform-Konfiguration definiert sind, sind diese Werte optional. Klicken Sie auf Weiter.

  5. Legen Sie auf der Seite Erweiterte Details optionale Parameter für Ihre Bereitstellung fest.

    Ersetzen Sie:

    • Labels: Labels und Annotationen sind Schlüssel/Wert-Paare mit Freiformtext. Sie können damit beliebige Informationen anhängen, die mit der Ressource verknüpft sind. Weitere Informationen finden Sie in der Dokumentation zu Annotationen.
    • Worker-Pool: Die Worker-Pool-Ressource, in der der Cloud Build-Job ausgeführt wird. Das Format des Worker-Pools ist projects/{project}/locations/{location}/workerPools/{workerPoolId}.
    • Cloud Storage-Bucket für Artefakte: Der Speicherort von Cloud Build-Logs und -Artefakten in Cloud Storage. Das Format des Pfads ist gs://{bucket}/{folder}.
  6. Klicken Sie auf Bereitstellung erstellen , um die Bereitstellung Ihrer Terraform-Konfiguration zu starten. Auf der Seite Bereitstellungen wird Ihre Bereitstellung zusammen mit ihrem Status der Liste hinzugefügt.
  7. Weitere Informationen zu Ihrer Bereitstellung finden Sie auf der Seite Bereitstellungsdetails.
  8. Fertig! Sie haben Ihre Terraform-Konfiguration mit Infra Manager bereitgestellt.

gcloud CLI

In diesem Abschnitt wird beschrieben, wie Sie eine Terraform-Konfiguration bereitstellen, die in einem Cloud Storage-Bucket gespeichert ist. Mit einem Storage-Bucket können Sie den Zugriff auf die Konfiguration steuern.

  1. Prüfen Sie, ob sich die Terraform-Konfiguration in einem Cloud Storage-Bucket befindet. Weitere Informationen finden Sie unter Konfiguration in einen Storage-Bucket hochladen.
  2. Wenn sich der Storage-Bucket in einem anderen Projekt als dem Projekt befindet, in dem Sie Infra Manager ausführen, müssen Sie dafür sorgen, dass das Dienstkonto von Infra Manager Leseberechtigung für den Bucket hat. Weitere Informationen finden Sie unter Dienstkonto konfigurieren.

    Wenn sich der Storage-Bucket im selben Projekt wie Infra Manager befindet, ist die Leseberechtigung für den Bucket bereits aktiviert.

  3. Stellen Sie die Terraform-Konfiguration bereit:

    gcloud infra-manager deployments apply projects/PROJECT_ID/locations/LOCATION/deployments/DEPLOYMENT_ID \
            --service-account projects/SERVICE_ACCOUNT_PROJECT_ID/serviceAccounts/SERVICE_ACCOUNT \
            --gcs-source gs://BUCKET_NAME/OBJECT_NAME \
            --quota-validation=QUOTA_VALIDATION \
            --input-values=INPUT_1_NAME=VALUE,INPUT_2_NAME=VALUE \
            --tf-version-constraint=TERRAFORM_VERSION \
            --annotations="ANNOTATION_KEY=ANNOTATION_VALUE"
            --provider-source=SERVICE_MAINTAINED
            
Ersetzen Sie:
  • PROJECT_ID: die Projekt-ID, in der Infra Manager ausgeführt wird.
  • LOCATION: der Standort, an dem Infra Manager ausgeführt wird. Eine Liste der gültigen Standorte finden Sie unter Infra Manager-Standorte.
  • DEPLOYMENT_ID: die von Ihnen angegebene Bereitstellungs-ID. Weitere Informationen zu den Einschränkungen für die Bereitstellungs-ID finden Sie unter Bereitstellungsname.
  • SERVICE_ACCOUNT_PROJECT_ID ist die Projekt-ID des Dienstkontos. In der Regel ist dies dasselbe Projekt, in dem Infra Manager ausgeführt wird.
  • SERVICE_ACCOUNT: der Name des Dienstkontos, mit dem Sie Infra Manager aufrufen.
  • BUCKET_NAME: der Name des Storage-Buckets, in dem die Konfiguration gespeichert ist.
  • OBJECT_NAME: der Objektname der Konfigurationsdatei. Dieses Objekt kann ein Verzeichnis oder eine ZIP-Datei, aber keine Terraform-Datei sein. Wenn Sie die Objektversionsverwaltung verwenden, können Sie auch die Generationsnummer des Objekts angeben. Weitere Informationen finden Sie unter Versionierte Objekte verwenden.

    Wenn der Storage-Bucket der Stammpfad der Terraform-Konfiguration ist, ist OBJECT_NAME optional.

  • Optional: QUOTA_VALIDATION: der Wert, der bestimmt, ob die Kontingentvalidierung für Ressourcen in Ihren Terraform-Konfigurationsdateien aktiviert oder erzwungen wird, wenn Sie eine Bereitstellung erstellen. Mögliche Werte:
    • ENABLED: Aktiviert die Kontingentvalidierung für Ressourcen in Terraform-Konfigurationsdateien. Macht Ressourcen mit unzureichendem Kontingent sichtbar.
    • ENFORCED: Erzwingt die Kontingentvalidierung, sodass Ihre Bereitstellung fehlschlägt, wenn nicht genügend Kontingent für die in Ihrer Terraform-Konfigurationsdatei definierte Infrastruktur verfügbar ist.

    Wenn QUOTA_VALIDATION nicht definiert ist, wird die Kontingentvalidierung für Terraform-Konfigurationsdateien deaktiviert. Dies ist der Standardwert. Die Kontingentvalidierung gilt für begrenzte Google Cloud Ressourcen. Weitere Informationen finden Sie unter Kontingente und Limits.

  • INPUT_1_NAME und INPUT_2_NAME: beliebige Eingabewerte in der Terraform-Konfiguration, einschließlich derer, die nicht standardmäßig definiert sind. Beispielsweise können Sie das Projekt, in dem Sie die Ressourcen bereitstellen, als project_id=my-project angeben.

    Wenn alle Eingabewerte standardmäßig in der Konfiguration definiert sind, ist dieses Flag optional.

  • Optional:TERRAFORM_VERSION: die Terraform-Version, die Infra Manager zum Erstellen der Bereitstellung verwenden soll. Eine Liste der unterstützten Versionen finden Sie unter Unterstützte Terraform-Versionen. Wenn Sie dieses optionale Flag entfernen, wird die neueste unterstützte Version von Terraform verwendet.
  • Optional: ANNOTATION_KEY und ANNOTATION_VALUE stellen ein Schlüssel/Wert-Paar mit Freiformtext dar, das an Ihre Infra Manager-Bereitstellungen angehängt werden kann. Weitere Informationen zur Verwendung und zu den Einschränkungen von Annotationen und Labels finden Sie unter Annotationen und Labels.
  • Optional: PROVIDER_SOURCE: Bestimmt, welcher Terraform-Provider für die Bereitstellung verwendet wird. Google Cloud Auf SERVICE_MAINTAINED setzen, um den von Infra Manager verwalteten Terraform-Anbieter zu verwenden. Lassen Sie dieses Feld weg, um den von HashiCorp verwalteten Terraform-Provider zu verwenden. Weitere Informationen finden Sie unter Terraform-Anbieter für Google Cloudverwenden.

gcloud CLI

In diesem Abschnitt wird beschrieben, wie Sie mit einer Terraform-Konfiguration arbeiten, die in einem Git-Repository gespeichert ist.

  1. Prüfen Sie, ob Sie Git installiert haben.
  2. Wenn Ihre Terraform-Konfiguration in einem privaten Git-Repository gespeichert ist, prüfen Sie, ob Ihr Git-Host und Ihr Repository mit Cloud Build verbunden sind.
  3. Stellen Sie die Terraform-Konfiguration bereit:

    gcloud infra-manager deployments apply projects/PROJECT_ID/locations/LOCATION/deployments/DEPLOYMENT_ID \
            --service-account projects/SERVICE_ACCOUNT_PROJECT_ID/serviceAccounts/SERVICE_ACCOUNT \
            --git-source-repo="GIT_REPO" \
            --git-source-directory="DIRECTORY" \
            --git-source-ref="REF" \
            --quota-validation=QUOTA_VALIDATION \
            --input-values=INPUT_1_NAME=VALUE,INPUT_2_NAME=VALUE \
            --tf-version-constraint=TERRAFORM_VERSION \
            --annotations="ANNOTATION_KEY=ANNOTATION_VALUE"
            --provider-source=SERVICE_MAINTAINED
            
Ersetzen Sie:
  • PROJECT_ID: die Projekt-ID, in der Infra Manager ausgeführt wird.
  • LOCATION: der Standort, an dem Infra Manager ausgeführt wird. Eine Liste der gültigen Standorte finden Sie unter Infra Manager-Standorte.
  • DEPLOYMENT_ID: die von Ihnen angegebene Bereitstellungs-ID. Weitere Informationen zu den Einschränkungen für die Bereitstellungs-ID finden Sie unter Bereitstellungsname.
  • SERVICE_ACCOUNT_PROJECT_ID ist die Projekt-ID des Dienstkontos. In der Regel ist dies dasselbe Projekt, in dem Infra Manager ausgeführt wird.
  • SERVICE_ACCOUNT: der Name des Dienstkontos, mit dem Sie Infra Manager aufrufen.
  • GIT_REPO: das Git-Repository.
  • DIRECTORY: das Verzeichnis, das die Terraform-Konfiguration enthält.
  • Optional: REF: die Git-Referenz der Konfiguration. Die Referenz ist optional. Wenn Sie keine Referenz angeben, wird der standardmäßig konfigurierte Zweig des Git-Repositorys verwendet.
  • Optional: QUOTA_VALIDATION: der Wert, der bestimmt, ob die Kontingentvalidierung für Ressourcen in Ihren Terraform-Konfigurationsdateien aktiviert oder erzwungen wird, wenn Sie eine Bereitstellung erstellen. Mögliche Werte:
    • ENABLED: Aktiviert die Kontingentvalidierung für Ressourcen in Terraform-Konfigurationsdateien. Macht Ressourcen mit unzureichendem Kontingent sichtbar.
    • ENFORCED: Erzwingt die Kontingentvalidierung, sodass Ihre Bereitstellung fehlschlägt, wenn nicht genügend Kontingent für die in Ihrer Terraform-Konfigurationsdatei definierte Infrastruktur verfügbar ist.

    Wenn QUOTA_VALIDATION nicht definiert ist, wird die Kontingentvalidierung für Terraform-Konfigurationsdateien deaktiviert. Dies ist der Standardwert. Die Kontingentvalidierung gilt für begrenzte Google Cloud Ressourcen. Weitere Informationen finden Sie unter Kontingente und Limits.

  • INPUT_1_NAME und INPUT_2_NAME: beliebige Eingabewerte in der Terraform-Konfiguration, einschließlich derer, die nicht standardmäßig definiert sind. Beispielsweise können Sie das Projekt, in dem Sie die Ressourcen bereitstellen, als project_id=my-project angeben.

    Wenn alle Eingabewerte standardmäßig in der Konfiguration definiert sind, ist dieses Flag optional.

  • Optional:TERRAFORM_VERSION: die Terraform-Version, die Infra Manager zum Erstellen der Bereitstellung verwenden soll. Eine Liste der unterstützten Versionen finden Sie unter Unterstützte Terraform-Versionen. Wenn Sie dieses optionale Flag entfernen, wird die neueste unterstützte Version von Terraform verwendet.
  • Optional: ANNOTATION_KEY und ANNOTATION_VALUE stellen ein Schlüssel/Wert-Paar mit Freiformtext dar, das an Ihre Infra Manager-Bereitstellungen angehängt werden kann. Weitere Informationen zur Verwendung und zu den Einschränkungen von Annotationen und Labels finden Sie unter Annotationen und Labels.
  • Optional: PROVIDER_SOURCE: Bestimmt, welcher Terraform-Provider für die Bereitstellung verwendet wird. Google Cloud Auf SERVICE_MAINTAINED setzen, um den von Infra Manager verwalteten Terraform-Anbieter zu verwenden. Lassen Sie dieses Feld weg, um den von HashiCorp verwalteten Terraform-Provider zu verwenden. Weitere Informationen finden Sie unter Terraform-Anbieter für Google Cloudverwenden.

gcloud CLI

In diesem Abschnitt wird beschrieben, wie Sie mit einer Terraform-Konfiguration arbeiten, die auf Ihrem lokalen Computer gespeichert ist.

  1. Wenn Sie Cloud Shell verwenden, müssen Sie die Konfiguration in Cloud Shell hochladen. Weitere Informationen finden Sie unter Dateien mit Cloud Shell verwalten.
  2. Stellen Sie die Terraform-Konfiguration bereit:

    gcloud infra-manager deployments apply projects/PROJECT_ID/locations/LOCATION/deployments/DEPLOYMENT_ID \
            --service-account projects/SERVICE_ACCOUNT_PROJECT_ID/serviceAccounts/SERVICE_ACCOUNT \
            --local-source="LOCAL_DIRECTORY" \
            --quota-validation=QUOTA_VALIDATION \
            --input-values=INPUT_1_NAME=VALUE,INPUT_2_NAME=VALUE \
            --tf-version-constraint=TERRAFORM_VERSION \
            --annotations="ANNOTATION_KEY=ANNOTATION_VALUE"
            --provider-source=SERVICE_MAINTAINED
            
Ersetzen Sie:
  • PROJECT_ID: die Projekt-ID, in der Infra Manager ausgeführt wird.
  • LOCATION: der Standort, an dem Infra Manager ausgeführt wird. Eine Liste der gültigen Standorte finden Sie unter Infra Manager-Standorte.
  • DEPLOYMENT_ID: die von Ihnen angegebene Bereitstellungs-ID. Weitere Informationen zu den Einschränkungen für die Bereitstellungs-ID finden Sie unter Bereitstellungsname.
  • SERVICE_ACCOUNT_PROJECT_ID ist die Projekt-ID des Dienstkontos. In der Regel ist dies dasselbe Projekt, in dem Infra Manager ausgeführt wird.
  • SERVICE_ACCOUNT: der Name des Dienstkontos, mit dem Sie Infra Manager aufrufen.
  • LOCAL_DIRECTORY: das lokale Verzeichnis, in dem die Terraform-Konfiguration gespeichert ist. Wenn Sie Cloud Shell verwenden, ist dies das Verzeichnis in Cloud Shell, in dem die Konfiguration gespeichert ist.
  • Optional: QUOTA_VALIDATION: der Wert, der bestimmt, ob die Kontingentvalidierung für Ressourcen in Ihren Terraform-Konfigurationsdateien aktiviert oder erzwungen wird, wenn Sie eine Bereitstellung erstellen. Mögliche Werte:
    • ENABLED: Aktiviert die Kontingentvalidierung für Ressourcen in Terraform-Konfigurationsdateien. Macht Ressourcen mit unzureichendem Kontingent sichtbar.
    • ENFORCED: Erzwingt die Kontingentvalidierung, sodass Ihre Bereitstellung fehlschlägt, wenn nicht genügend Kontingent für die in Ihrer Terraform-Konfigurationsdatei definierte Infrastruktur verfügbar ist.

    Wenn QUOTA_VALIDATION nicht definiert ist, wird die Kontingentvalidierung für Terraform-Konfigurationsdateien deaktiviert. Dies ist der Standardwert. Die Kontingentvalidierung gilt für begrenzte Google Cloud Ressourcen. Weitere Informationen finden Sie unter Kontingente und Limits.

  • INPUT_1_NAME und INPUT_2_NAME: beliebige Eingabewerte in der Terraform-Konfiguration, einschließlich derer, die nicht standardmäßig definiert sind. Beispielsweise können Sie das Projekt, in dem Sie die Ressourcen bereitstellen, als project_id=my-project angeben.

    Wenn alle Eingabewerte standardmäßig in der Konfiguration definiert sind, ist dieses Flag optional.

  • Optional:TERRAFORM_VERSION: die Terraform-Version, die Infra Manager zum Erstellen der Bereitstellung verwenden soll. Eine Liste der unterstützten Versionen finden Sie unter Unterstützte Terraform-Versionen. Wenn Sie dieses optionale Flag entfernen, wird die neueste unterstützte Version von Terraform verwendet.
  • Optional: ANNOTATION_KEY und ANNOTATION_VALUE stellen ein Schlüssel/Wert-Paar mit Freiformtext dar, das an Ihre Infra Manager-Bereitstellungen angehängt werden kann. Weitere Informationen zur Verwendung und zu den Einschränkungen von Annotationen und Labels finden Sie unter Annotationen und Labels.
  • Optional: PROVIDER_SOURCE: Bestimmt, welcher Terraform-Provider für die Bereitstellung verwendet wird. Google Cloud Auf SERVICE_MAINTAINED setzen, um den von Infra Manager verwalteten Terraform-Anbieter zu verwenden. Lassen Sie dieses Feld weg, um den von HashiCorp verwalteten Terraform-Provider zu verwenden. Weitere Informationen finden Sie unter Terraform-Anbieter für Google Cloudverwenden.

Nächste Schritte