Puoi pianificare esecuzioni ricorrenti di Image Builder utilizzando i trigger di Cloud Scheduler e Cloud Build. Quando pianifichi build di immagini sistema operativo personalizzate, Cloud Build aggiorna automaticamente le immagini di base con patch del sistema operativo e policy di sicurezza dell'organizzazione senza richiedere un intervento manuale.
Prima di iniziare
- Completa i passaggi di configurazione dell'ambiente in Prepara l'ambiente.
-
Se non l'hai ancora fatto, configura l'autenticazione.
L'autenticazione verifica la tua identità per l'accesso ad API e servizi Google Cloud . Per eseguire codice o esempi da un ambiente di sviluppo locale, puoi autenticarti su Compute Engine selezionando una delle seguenti opzioni:
Seleziona la scheda in base a come prevedi di utilizzare gli esempi in questa pagina:
gcloud
-
Installa Google Cloud CLI. Dopo l'installazione, inizializza Google Cloud CLI eseguendo il comando seguente:
gcloud initSe utilizzi un provider di identità (IdP) esterno, devi prima accedere a gcloud CLI con la tua identità federata.
-
- Imposta una regione e una zona predefinite.
-
Installa Google Cloud CLI.
-
Se utilizzi un provider di identità (IdP) esterno, devi prima accedere a gcloud CLI con la tua identità federata.
-
Se utilizzi una shell locale, crea le credenziali di autenticazione locale per il tuo account utente:
gcloud auth application-default login
Non è necessario farlo se utilizzi Cloud Shell.
Se viene restituito un errore di autenticazione e utilizzi un provider di identità (IdP) esterno, verifica di aver eseguito l'accesso a gcloud CLI con la tua identità federata.
Vai
Per utilizzare gli esempi di Go in questa pagina in un ambiente di sviluppo locale, installa e inizializza gcloud CLI, quindi configura Credenziali predefinite dell'applicazione con le tue credenziali utente.
Per saperne di più, consulta Configura l'autenticazione per un ambiente di sviluppo locale.
Ruoli obbligatori
Per ottenere le autorizzazioni necessarie per creare trigger e pianificare build, chiedi all'amministratore di concederti i seguenti ruoli IAM nel progetto:
- Cloud Build Editor (
roles/cloudbuild.builds.editor) - Cloud Scheduler Job Runner (
roles/cloudscheduler.jobRunner) o Cloud Scheduler Admin (roles/cloudscheduler.admin) - Utente Service Account (
roles/iam.serviceAccountUser)
Per saperne di più sulla concessione dei ruoli, consulta Gestisci l'accesso a progetti, cartelle e organizzazioni.
Potresti anche riuscire a ottenere le autorizzazioni richieste tramite i ruoli personalizzati o altri ruoli predefiniti.
Crea una pipeline di build pianificata
Puoi configurare build di immagini ricorrenti utilizzando gcloud CLI o la libreria client Go:
gcloud
Per pianificare build ricorrenti di immagini sistema operativo utilizzando gcloud CLI, completa i seguenti passaggi:
Crea un trigger di Cloud Build manuale che specifichi il file
cloudbuild.yamldi destinazione eseguendo il comandogcloud builds triggers create manual. Poiché Cloud Scheduler richiama questo trigger manualmente anziché in base agli eventi del repository, non specificare filtri per le richieste di push o pull:gcloud builds triggers create manual \ --name="TRIGGER_NAME" \ --region=REGION \ --build-config=CLOUDBUILD_YAML_PATH \ --project=PROJECT_IDRecupera l'ID univoco (
trigger_id) generato per il nuovo trigger eseguendo il comandogcloud builds triggers describe:gcloud builds triggers describe TRIGGER_NAME \ --region=REGION \ --format="value(id)" \ --project=PROJECT_IDPer creare un job Cloud Scheduler che invii una richiesta
HTTP POSTall'API Cloud Build (projects.locations.triggers.run) in base alla pianificazione cron unix richiesta, ad esempio settimanalmente il lunedì alle 06:00 utilizzando'0 6 * * 1', esegui il comandogcloud scheduler jobs create http: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
Sostituisci quanto segue:
TRIGGER_NAME: il nome del trigger di build Cloud Build, ad esempioweekly-ubuntu-builder.REGION: la regione in cui creare il trigger, ad esempious-central1.CLOUDBUILD_YAML_PATH: il percorso del filecloudbuild.yamlnella directory locale, ad esempiocloudbuild.yaml.PROJECT_ID: il tuo ID progetto.JOB_NAME: il nome del job cron di Cloud Scheduler, ad esempioweekly-custom-os-patching.CRON_SCHEDULE: l'espressione di pianificazione cron Unix, ad esempio'0 6 * * 1'.TRIGGER_ID: l'ID univoco (trigger_id) generato per il trigger.SERVICE_ACCOUNT_EMAIL: l'indirizzo email del account di servizio che autorizza Cloud Scheduler a richiamare il trigger. Questo account di servizio richiede le autorizzazioniroles/cloudbuild.builds.editor.
Vai
Per pianificare le pipeline in modo programmatico utilizzando le librerie client Go di Cloud Build e Cloud Scheduler, utilizza la funzione scheduleBuild.
Prima di eseguire questo esempio, completa i seguenti prerequisiti:
- Carica il file di configurazione
imagebuilder.yamlnel bucket Cloud Storage, ad esempiogs://STAGING_BUCKET/imagebuilder.yaml. - Concedi al account di servizio di pianificazione
cloud-build-trigger-scheduler@PROJECT_ID.iam.gserviceaccount.comil ruolo Cloud Build Editor (roles/cloudbuild.builds.editor) nel tuo progetto e il ruolo Service Account User (roles/iam.serviceAccountUser) nel account di servizio che esegue la build. Per saperne di più, consulta Pianifica le build nella documentazione di Cloud Build.
Passaggi successivi
- Scopri come automatizzare le build sugli eventi del repository su eventi di push, tag o unione Git utilizzando Terraform.
- Consulta lo schema della formula di personalizzazione per definire i pacchetti software e le procedure di convalida.