Auf dieser Seite wird beschrieben, wie Sie Cloud Build-Trigger einrichten, um Bereitstellungen von Google Cloud -Ressourcen mithilfe Ihrer vorhandenen Repositories und Infrastructure Manager zu automatisieren.
Sobald Infra Manager eine Verbindung zu Ihrem Git-Repository herstellt, werden über Pull-Anfragen eine Vorschau einer Bereitstellung aufgerufen und über Commits eine Bereitstellungsvorschau erstellt oder die Bereitstellung aktualisiert.
Hinweis
- Prüfen Sie, ob Infra Manager aktiviert ist.
- Prüfen Sie, ob Sie die IAM-Berechtigungen zum Erstellen von Bereitstellungen haben:
roles/config.admin
- Sie benötigen ein Dienstkonto mit den erforderlichen Berechtigungen. Weitere Informationen finden Sie unter Dienstkonto konfigurieren.
- Suchen Sie das vorhandene Git-Repository mit der Terraform-Konfiguration. Wenn Sie die auf dieser Seite beschriebene Automatisierung einrichten, wird diese Terraform-Konfiguration von Infra Manager zum Aktualisieren von Ressourcen verwendet.
- Empfohlen: Richten Sie für Ihr Git-Repository einen Zweigschutz ein.
Bereitstellung von Google Cloud -Ressourcen automatisieren
In den folgenden Schritten wird die Einrichtung beschrieben, die erforderlich ist, um die Vorschau und Bereitstellung einer in einem Git-Repository gespeicherten Terraform-Konfiguration zu automatisieren. Eine Bereitstellung einer Terraform-Konfiguration kann eine Überarbeitung einer vorhandenen Bereitstellung sein. Durch Überarbeitungen werden bereitgestellte Google Cloud Ressourcen möglicherweise gelöscht oder ersetzt.
Nach Abschluss der Einrichtung wird durch einen Pull-Request im Git-Repository eine Vorschau der Bereitstellung in Infra Manager erstellt. Wenn ein Pull-Request zusammengeführt wird, wird die Terraform-Konfiguration automatisch von Infra Manager bereitgestellt.
Das im_cloudbuild_workspace
-Modul erstellt mehrere Ressourcen, darunter:
- Eine Cloud Build-Repository-Verbindung.
- Ein Cloud Build-Trigger, der ausgelöst wird, wenn eine Pull-Anfrage erstellt wird. Dieser Trigger bewirkt, dass Infra Manager eine Vorabversion mit der Terraform-Konfiguration im Repository erstellt.
- Ein 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 mithilfe der Terraform-Konfiguration im Repository erstellt oder aktualisiert.
So automatisieren Sie die Bereitstellung von Terraform-Konfigurationen, wenn das Repository aktualisiert wird:
- Installieren Sie die Cloud Build GitHub-App in Ihrem GitHub-Konto oder in einer Organisation, deren Inhaber Sie sind.
Erstellen Sie ein persönliches Zugriffstoken.
Achten Sie darauf, dass Ihr Token kein Ablaufdatum hat, und wählen Sie in GitHub die folgenden Berechtigungen aus:
repo
undread:user
. Wenn Ihre App in einer Organisation installiert ist, müssen Sie auch die Berechtigungread:org
auswählen.Speichern Sie das generierte persönliche Zugriffstoken an einem sicheren Ort. Sie verwenden das generierte Token in den folgenden Schritten.
Kopieren Sie das
im_cloudbuild_workspace
-Modul in die Dateimain.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 Einschränkungen für die Bereitstellungs-ID finden Sie unter Bereitstellungsname.
- GIT_REPO: der URI des Git-Repositorys.
- REF: die Git-Referenz der Konfiguration. Die Referenz ist optional. Wenn Sie keine Referenz angeben, wird der standardmäßig konfigurierte Branch des Git-Repositorys verwendet.
- GIT_APP_ID: Installations-ID der Cloud Build-GitHub-App, die für Trigger für Pull- und Push-Anfragen verwendet wird.
- TOKEN: Persönliches Zugriffstoken für ein GitHub-Repository. Wenn angegeben, wird ein Secret in Secret Manager erstellt.
Erstellen Sie eine Bereitstellung (oder aktualisieren Sie eine 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 Speicherort, 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 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 Dienstkontos. 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 keine Referenz angeben, wird der standardmäßig konfigurierte Branch des Git-Repositorys verwendet.
Um zu prüfen, ob Ihr Git-Repository richtig mit Infra Manager verbunden ist, erstellen Sie einen Pull-Request in Ihrem Repository.
Die Ergebnisse der Validierung der gegabelten Terraform-Konfiguration finden Sie in der Pull-Anfrage auf GitHub.
Nachdem diese Automatisierung eingerichtet wurde, führen die Cloud Build-Trigger zu folgenden Aktionen:
- Wenn ein Pull-Request an das Repository gesendet wird, erstellt Infra Manager eine Vorabversion mit der im Git-Repository gespeicherten Terraform-Konfiguration.
- Wenn eine Pull-Anfrage in das Repository zusammengeführt wird, aktualisiert Infra Manager die Bereitstellung mit der im Git-Repository gespeicherten Terraform-Konfiguration.
Nächste Schritte
- Mit Cloud Build können Sie Build-Ergebnisse für Ihre Build-Trigger ansehen.
- Mit Infra Manager bereitgestellte Ressourcen ansehen
- Google Cloud Ressourcen mit Audit-Logging von Infrastructure Manager überwachen