Sie können automatisierte Image Builder-Pipelines konfigurieren, die ausgeführt werden, wenn Sie Konfigurationsänderungen in Ihr Git-Repository übertragen, z. B. in main.
Durch die Automatisierung von Builds bei Repository-Ereignissen wird sichergestellt, dass Cloud Build Ihre benutzerdefinierten Betriebssystem-Images nach der Codeüberprüfung oder dem Zusammenführen sofort validiert, erstellt und in Compute Engine und Artifact Registry veröffentlicht.
Hinweis
- Führen Sie die Einrichtungsschritte für die Umgebung unter Umgebung vorbereiten aus.
- Wenn Sie Ihre Pipeline mit Terraform bereitstellen oder Builds aus einem Repository automatisieren möchten, verbinden Sie Ihr GitHub-, GitLab- oder Bitbucket-Repository mit Cloud Build-Repositories (
2nd gen) oder Developer Connect-Verbindungslinks. - Achten Sie darauf, dass Ihr Repository die
cloudbuild.yaml-Orchestrationsdatei, dieimagebuilder.yaml-Rezeptdatei und alle referenzierten Build-Skripts enthält. - Wenn Sie Terraform verwenden möchten, installieren Sie die Terraform-Befehlszeile Version 1.3 oder höher.
-
Richten Sie die Authentifizierung ein, falls Sie dies noch nicht getan haben.
Bei der Authentifizierung wird Ihre Identität für den Zugriff auf Cloud de Confiance by S3NS Dienste und APIs überprüft. Zur Ausführung von Code oder Beispielen aus einer lokalen Entwicklungsumgebung können Sie sich so bei Compute Engine authentifizieren:
Wählen Sie den Tab für die geplante Verwendung der Beispiele auf dieser Seite aus:
gcloud
-
Installieren Sie die Google Cloud CLI und melden Sie sich dann mit Ihrer föderierten Identität in der gcloud CLI an. Nach der Anmeldung initialisieren Sie die Google Cloud CLI mit dem folgenden Befehl:
gcloud init
-
- Legen Sie eine Standardregion und -zone fest.
-
Installieren Sie die Google Cloud CLI.
-
Konfigurieren Sie die gcloud CLI für die Verwendung Ihrer föderierten Identität.
Weitere Informationen finden Sie unter Mit Ihrer föderierten Identität in der gcloud CLI anmelden.
-
Erstellen Sie lokale Anmeldedaten zur Authentifizierung für Ihr Nutzerkonto:
gcloud auth application-default login
Wenn ein Authentifizierungsfehler zurückgegeben wird und Sie einen externen Identitätsanbieter (IdP) verwenden, prüfen Sie, ob Sie sich mit Ihrer föderierten Identität in der gcloud CLI angemeldet haben.
Terraform
Wenn Sie die Terraform-Beispiele auf dieser Seite in einer lokalen Entwicklungsumgebung verwenden möchten, installieren und initialisieren Sie die gcloud CLI und richten Sie dann die Standardanmeldedaten für Anwendungen mit Ihren Nutzeranmeldedaten ein.
Weitere Informationen finden Sie unter Authentifizierung für eine lokale Entwicklungsumgebung einrichten.
Erforderliche Rollen
Bitten Sie Ihren Administrator, Ihnen die folgenden IAM-Rollen für das Projekt zuzuweisen, damit Sie die nötigen Berechtigungen zum Erstellen von Repository-Ereignistriggern haben:
- Cloud Build-Bearbeiter (
roles/cloudbuild.builds.editor) - Service Account User (
roles/iam.serviceAccountUser)
Weitere Informationen zum Zuweisen von Rollen finden Sie unter Zugriff auf Projekte, Ordner und Organisationen verwalten.
Sie können die erforderlichen Berechtigungen auch über benutzerdefinierte Rollen oder andere vordefinierte Rollen erhalten.
Repository-Automatisierung konfigurieren
Sie können Repository-Ereignistrigger mit der gcloud CLI oder mit Terraform konfigurieren. Wählen Sie einen der folgenden Tabs aus, um Repository-Trigger zu konfigurieren:
gcloud
Sie können einen automatisierten Repository-Trigger mit dem Befehl gcloud builds
triggers create erstellen und
direkt auf den Link zu Ihrem verbundenen Repository der 2. Generation (--repository) verweisen.
gcloud builds triggers create repository \
--name="TRIGGER_NAME" \
--repository="projects/PROJECT_ID/locations/REGION/connections/CONNECTION_NAME/repositories/REPO_NAME" \
--branch-pattern="^main$" \
--build-config="CLOUDBUILD_YAML_PATH" \
--service-account="projects/PROJECT_ID/serviceAccounts/SERVICE_ACCOUNT_EMAIL" \
--substitutions="_GCS_WORKDIR=gs://STAGING_BUCKET/workdir/,_IMAGE_BUILDER_CONFIG_PATH=RECIPE_PATH,_SERVICE_ACCOUNT=projects/PROJECT_ID/serviceAccounts/SERVICE_ACCOUNT_EMAIL,_IMAGE_OUTPUT_PATH=image-builder/binaryOut" \
--region=REGION \
--project=PROJECT_ID
Ersetzen Sie Folgendes:
TRIGGER_NAME: Der Name für Ihren Trigger, z. B.git-push-custom-os-builder.PROJECT_ID: Ihre Projekt-ID.REGION: Die Region, in der Ihre Repository-Verbindung gehostet wird und in der der Job für die Anpassung der Images ausgeführt wird, z. B.us-central1.CONNECTION_NAME: Der Name Ihrer Developer Connect-Verbindung, z. B.github-connection.REPO_NAME: Der Name des verknüpften Git-Repositorys.CLOUDBUILD_YAML_PATH: der relative Pfad zucloudbuild.yamlin Ihrem lokalen Verzeichnis.SERVICE_ACCOUNT_EMAIL: die genaue E-Mail-Adresse Ihres Dienstkontos für den Build.STAGING_BUCKET: Der Name Ihres Cloud Storage-Staging-Bucketsworkdir.RECIPE_PATH: der relative Pfad zuimagebuilder.yamlin Ihrem Repository.
Terraform
Führen Sie die folgenden Schritte aus, um einen automatisierten Repository-Trigger mit Terraform zu konfigurieren:
Fügen Sie die Triggerressource Ihrer Konfigurationsdatei
main.tfhinzu:resource "google_cloudbuild_trigger" "repository_trigger" { name = "TRIGGER_NAME" location = "REGION" project = "PROJECT_ID" description = "Triggers custom OS image builds on repository push events" repository_event_config { repository = "projects/PROJECT_ID/locations/REGION/connections/CONNECTION_NAME/repositories/REPO_NAME" push { branch = "^main$" } } filename = "CLOUDBUILD_YAML_PATH" substitutions = { _GCS_WORKDIR = "gs://STAGING_BUCKET/workdir/" _IMAGE_BUILDER_CONFIG_PATH = "RECIPE_PATH" _SERVICE_ACCOUNT = "projects/PROJECT_ID/serviceAccounts/SERVICE_ACCOUNT_EMAIL" } }Ersetzen Sie Folgendes:
TRIGGER_NAME: der Name für Ihren Trigger, z. B.git-push-custom-os-builder.PROJECT_ID: Ihre Projekt-ID.REGION: die Cloud de Confiance Region, in der Ihre Repository-Verbindung gehostet wird, z. B.us-central1.CONNECTION_NAME: der Name Ihrer Developer Connect-Verbindung, z. B.github-connection.REPO_NAME: Der Name des verknüpften Git-Repositorys.CLOUDBUILD_YAML_PATH: der relative Pfad zucloudbuild.yamlin Ihrem lokalen Verzeichnis.STAGING_BUCKET: Name Ihres Cloud Storage-Staging-Buckets.RECIPE_PATH: der relative Pfad zuimagebuilder.yamlin Ihrem Repository.SERVICE_ACCOUNT_EMAIL: die E-Mail-Adresse Ihres Build-Dienstkontos.
Stellen Sie die aktualisierte Terraform-Konfiguration bereit:
terraform plan terraform apply
Die vollständige Struktur des Terraform-Infrastrukturprojekts mit mehreren Dateien finden Sie unter Pipelines mit Terraform erstellen und verwalten.
Nächste Schritte
- Benutzerdefinierte Betriebssystem-Image-Builds mit Cloud Scheduler planen, um regelmäßig Sicherheitspatches zu installieren.
- Unterstützte Anpassungsaktionen ansehen (
Shell,FileCopy,UpdateKernelCommandLine,InstallGPU).