Sie können wiederkehrende Image Builder-Ausführungen mit Cloud Scheduler- und Cloud Build-Triggern planen. Wenn Sie benutzerdefinierte Betriebssystem-Image-Builds planen, aktualisiert Cloud Build Ihre Baseline-Images automatisch mit Betriebssystem-Patches und Sicherheitsrichtlinien der Organisation, ohne dass ein manueller Eingriff erforderlich ist.
Hinweis
- Führen Sie die Schritte zur Einrichtung der Umgebung unter Umgebung vorbereiten aus.
-
Richten Sie die Authentifizierung ein, falls Sie dies noch nicht getan haben.
Bei der Authentifizierung wird Ihre Identität für den Zugriff auf Google Cloud Dienste und APIs überprüft. Zum Ausführen von Code oder Beispielen aus einer lokalen Entwicklungsumgebung können Sie sich so bei der Compute Engine authentifizieren:
Wählen Sie den Tab für die gewünschte Verwendung der Beispiele auf dieser Seite aus:
gcloud
-
Installieren Sie die Google Cloud CLI. Initialisieren Sie die Google Cloud CLI nach der Installation mit dem folgenden Befehl:
gcloud initWenn Sie einen externen Identitätsanbieter (IdP) verwenden, müssen Sie sich zuerst mit Ihrer föderierten Identität in der gcloud CLI anmelden.
-
- Legen Sie eine Standardregion und -zone fest.
-
Installieren Sie die Google Cloud CLI.
-
Wenn Sie einen externen Identitätsanbieter (IdP) verwenden, müssen Sie sich zuerst mit Ihrer föderierten Identität in der gcloud CLI anmelden.
-
Wenn Sie eine lokale Shell verwenden, erstellen Sie lokale Authentifizierungsdaten für Ihr Nutzerkonto:
gcloud auth application-default login
Wenn Sie Cloud Shell verwenden, ist dies nicht erforderlich.
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.
Go
Wenn Sie die Go-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 Ihr Projekt zuzuweisen, um die Berechtigungen zu erhalten, die Sie zum Erstellen von Triggern und Planen von Builds benötigen:
- Cloud Build-Bearbeiter (
roles/cloudbuild.builds.editor) - Cloud Scheduler-Job-Ausführer (
roles/cloudscheduler.jobRunner) oder Cloud Scheduler-Administrator (roles/cloudscheduler.admin) - 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.
Geplante Build-Pipeline erstellen
Sie können wiederkehrende Image-Builds mit der gcloud CLI oder der Go-Clientbibliothek konfigurieren:
gcloud
So planen Sie wiederkehrende Betriebssystem-Image-Builds mit der gcloud CLI:
Erstellen Sie einen manuellen Cloud Build-Trigger, der Ihre
cloudbuild.yaml-Zieldatei angibt, indem Sie den Befehlgcloud builds triggers create manualausführen. Da Cloud Scheduler diesen Trigger manuell und nicht bei Repository-Ereignissen aufruft, geben Sie keine Push- oder Pull-Anfragefilter an:gcloud builds triggers create manual \ --name="TRIGGER_NAME" \ --region=REGION \ --build-config=CLOUDBUILD_YAML_PATH \ --project=PROJECT_IDRufen Sie die eindeutige ID (
trigger_id) ab, die für den neuen Trigger generiert wurde. Führen Sie dazu den Befehlgcloud builds triggers describeaus:gcloud builds triggers describe TRIGGER_NAME \ --region=REGION \ --format="value(id)" \ --project=PROJECT_IDWenn Sie einen Cloud Scheduler-Job erstellen möchten, der gemäß Ihrem erforderlichen Unix-Cron-Zeitplan eine
HTTP POST-Anfrage an die Cloud Build API (projects.locations.triggers.run) sendet, z. B. wöchentlich montags um 6:00 Uhr mit'0 6 * * 1', führen Sie dengcloud scheduler jobs create http-Befehl aus:gcloud scheduler jobs create http JOB_NAME \ --schedule="CRON_SCHEDULE" \ --uri="https://cloudbuild.googleapis.com/v1/projects/PROJECT_ID/locations/REGION/triggers/TRIGGER_ID:run" \ --message-body="{}" \ --oauth-service-account-email="SERVICE_ACCOUNT_EMAIL" \ --location=REGION \ --project=PROJECT_ID
Ersetzen Sie Folgendes:
TRIGGER_NAME: der Name für Ihren manuellen Cloud Build-Trigger, z. B.weekly-ubuntu-builder.REGION: die Region, in der der Trigger erstellt werden soll, z. B.us-central1.CLOUDBUILD_YAML_PATH: der Pfad zu Ihrercloudbuild.yaml-Datei in Ihrem lokalen Verzeichnis, z. B.cloudbuild.yaml.PROJECT_ID: Ihre Projekt-ID.JOB_NAME: der Name für Ihren Cloud Scheduler-Cronjob, z. B.weekly-custom-os-patching.CRON_SCHEDULE: der Unix-Cron-Zeitplanausdruck, z. B.'0 6 * * 1'.TRIGGER_ID: die eindeutige ID (trigger_id), die für Ihren Trigger generiert wurde.SERVICE_ACCOUNT_EMAIL: die E-Mail-Adresse des Dienstkontos, die Cloud Scheduler zum Aufrufen des Triggers autorisiert. Für dieses Dienstkonto sindroles/cloudbuild.builds.editor-Berechtigungen erforderlich.
Go
Wenn Sie Pipelines programmatisch mit den Go-Clientbibliotheken von Cloud Build und Cloud Scheduler planen möchten, verwenden Sie die Funktion scheduleBuild.
Bevor Sie dieses Beispiel ausführen, müssen die folgenden Voraussetzungen erfüllt sein:
- Laden Sie die Konfigurationsdatei
imagebuilder.yamlin Ihren Cloud Storage-Bucket hoch, z. B.gs://STAGING_BUCKET/imagebuilder.yaml. - Weisen Sie dem Planungsdienstkonto
cloud-build-trigger-scheduler@PROJECT_ID.iam.gserviceaccount.comdie Rolle „Cloud Build-Bearbeiter“ (roles/cloudbuild.builds.editor) für Ihr Projekt und die Rolle „Dienstkontonutzer“ (roles/iam.serviceAccountUser) für das Dienstkonto zu, das den Build ausführt. Weitere Informationen finden Sie in der Cloud Build-Dokumentation unter Builds planen.
Nächste Schritte
- Builds bei Repository-Ereignissen automatisieren, z. B. bei Git-Push-, Tag- oder Zusammenführungsereignissen mit Terraform.
- Sehen Sie sich das Schema für Anpassungsrezepte an, um Softwarepakete und Validierungsverfahren zu definieren.