Bereitstellung von Google Cloud-Ressourcen automatisieren

Wenn Sie Cloud Build-Trigger mit Infrastructure Manager verbinden, können Sie Infrastrukturbereitstellungen direkt aus Ihren Git-Repositories automatisieren. In diesem Workflow wird durch Pull-Anfragen eine Bereitstellungsvorschau generiert und durch zusammengeführte Commits wird die Bereitstellung automatisch erstellt oder aktualisiert.

Hinweis

  1. Stellen Sie sicher, dass Infra Manager aktiviert ist.
  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. Ermitteln Sie das vorhandene Git-Repository mit der Terraform-Konfiguration. Wenn Sie die auf dieser Seite beschriebene Automatisierung einrichten, verwendet Infra Manager diese Terraform-Konfiguration, um Ressourcen zu aktualisieren.
  5. Empfehlung: Richten Sie den Zweigschutz für Ihr Git-Repository ein.

Bereitstellung von Google Cloud Ressourcen automatisieren

In den folgenden Schritten wird die Einrichtung beschrieben, die erforderlich ist, um die Vorschau und Bereitstellung einer Terraform-Konfiguration zu automatisieren, die in einem Git-Repository gespeichert ist. Eine Bereitstellung einer Terraform-Konfiguration kann eine Überarbeitung einer vorhandenen Bereitstellung sein. Durch Überarbeitungen können bereitgestellte Google Cloud Ressourcen gelöscht oder ersetzt werden.

Nach Abschluss der Einrichtung erstellt Infra Manager durch eine Pull-Anfrage im Git-Repository eine Vorschau der Bereitstellung. Wenn eine Pull-Anfrage zusammengeführt wird, stellt Infra Manager die Terraform-Konfiguration automatisch bereit.

Das Modul im_cloudbuild_workspace erstellt mehrere Ressourcen, darunter:

  • Eine Cloud Build-Repository-Verbindung.
  • Einen Cloud Build-Trigger, der ausgelöst wird, wenn eine Pull-Anfrage erstellt wird. Dieser Trigger bewirkt, dass Infra Manager eine Vorschau der Bereitstellung mit der Terraform-Konfiguration im Repository erstellt.
  • Einen Cloud Build-Trigger, der ausgelöst wird, wenn eine Pull-Anfrage mit dem Git-Repository zusammengeführt wird. Dieser Trigger bewirkt, dass Infra Manager die Bereitstellung mit der Terraform-Konfiguration im Repository erstellt oder aktualisiert.

So automatisieren Sie die Bereitstellung von Terraform-Konfigurationen, wenn das Repository aktualisiert wird:

  1. Installieren Sie die Cloud Build GitHub App in Ihrem GitHub-Konto oder in einer Organisation, deren Inhaber Sie sind.
  2. Erstellen Sie ein persönliches Zugriffstoken.

    Legen Sie für Ihr Token kein Ablaufdatum fest und wählen Sie bei der Aufforderung in GitHub die folgenden Berechtigungen aus: repo und read:user. Wenn Ihre App in einer Organisation installiert ist, wählen Sie auch die Berechtigung read:org aus.

    Speichern Sie das generierte persönliche Zugriffstoken an einem sicheren Ort. Sie verwenden das generierte Token in den folgenden Schritten.

  3. Kopieren Sie das Modul im_cloudbuild_workspace in die Datei main.tf in Ihrem Git-Repository:

    module "im-workspace" {
     source = "terraform-google-modules/bootstrap/google//modules/im_cloudbuild_workspace"
     version = "~> 7.0"
    
     project_id = "PROJECT_ID"
     deployment_id = "DEPLOYMENT_ID"
     im_deployment_repo_uri = "GIT_REPO"
     im_deployment_ref = "REF"
    
     github_app_installation_id = "GIT_APP_ID"
     github_personal_access_token = "TOKEN"
    }
    

    Ersetzen Sie:

    • PROJECT_ID: die Projekt-ID, unter der Infrastructure Manager ausgeführt wird.
    • DEPLOYMENT_ID: die von Ihnen angegebene Bereitstellungs-ID. Weitere Informationen zu den Einschränkungen für die Bereitstellungs-ID finden Sie unter Bereitstellungsname.
    • GIT_REPO: die URI des Git-Repositorys.
    • REF: die Git-Referenz der Konfiguration. Die Referenz ist optional. Wenn Sie die Referenz nicht angeben, wird der standardmäßig konfigurierte Zweig des Git-Repositorys verwendet.
    • GIT_APP_ID: die Installations-ID der Cloud Build GitHub App, die für Pull- und Push-Anfrage-Trigger verwendet wird.
    • TOKEN: das persönliche Zugriffstoken für ein GitHub-Repository. Wenn angegeben, wird ein Secret in Secret Manager erstellt.
  4. Erstellen Sie eine Bereitstellung (oder aktualisieren Sie Ihre vorhandene Bereitstellung) mit dem im_cloudbuild_workspace Modul:

    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
    

    Ersetzen Sie:

    • PROJECT_ID: die Projekt-ID, unter der Infrastructure Manager ausgeführt wird.
    • LOCATION: der Standort, an dem Infra Manager ausgeführt wird. Eine Liste der Standorte finden Sie unter Infrastructure 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: der Name des Dienstkontos, mit dem Sie Infra Manager aufrufen.
    • SERVICE_ACCOUNT_PROJECT_ID ist die Projekt-ID des Dienst kontos. In der Regel ist dies dasselbe Projekt, in dem Infrastructure Manager ausgeführt wird.
    • GIT_REPO: das öffentliche Git-Repository.
    • DIRECTORY: das Verzeichnis mit der Terraform Konfiguration.
    • REF: die Git-Referenz der Konfiguration. Die Referenz ist optional. Wenn Sie die Referenz nicht angeben, wird der standardmäßig konfigurierte Zweig des Git-Repositorys verwendet.
  5. Erstellen Sie eine Pull-Anfrage für Ihr Repository, um zu bestätigen, dass Ihr Git-Repository korrekt mit Infra Manager verbunden ist.

    Die Ergebnisse der Validierung der verzweigten Terraform-Konfiguration finden Sie in der Pull-Anfrage in GitHub. view the pull request in GitHub.

Nachdem diese Automatisierung eingerichtet wurde, bewirken die Cloud Build-Trigger Folgendes:

  • Wenn eine Pull-Anfrage an das Repository gesendet wird, erstellt Infra Manager eine Vorschau der Bereitstellung mit der verzweigten Terraform-Konfiguration, die im Git-Repository gespeichert ist.
  • Wenn eine Pull-Anfrage in das Repository zusammengeführt wird, aktualisiert Infra Manager die Bereitstellung mit der verzweigten Terraform-Konfiguration, die im Git-Repository gespeichert ist.

Nächste Schritte