Puoi configurare pipeline Image Builder automatizzate che vengono eseguite ogni volta che esegui il push delle modifiche alla configurazione nel repository Git, ad esempio il push in main.
L'automazione delle build sugli eventi del repository garantisce che Cloud Build convalida, compila e pubblica immediatamente le immagini del sistema operativo personalizzate in Compute Engine e Artifact Registry dopo la revisione del codice o l'unione.
Prima di iniziare
- Completa i passaggi di configurazione dell'ambiente in Prepara l'ambiente.
- Se intendi eseguire il deployment della pipeline utilizzando Terraform o automatizzare le build da un repository, connetti
il tuo repository GitHub, GitLab o Bitbucket utilizzando
i repository Cloud Build (
2nd gen) o i link di connessione Developer Connect. - Assicurati che il repository contenga il
file di orchestrazione
cloudbuild.yaml, il file di ricettaimagebuilder.yamle tutti gli script di build a cui viene fatto riferimento. - Se prevedi di utilizzare Terraform, installa Terraform CLI versione 1.3 o successive.
-
Se non l'hai ancora fatto, configura l'autenticazione.
L'autenticazione verifica la tua identità per l'accesso ad API e servizi Cloud de Confiance by S3NS . Per eseguire
codice o esempi da un ambiente di sviluppo locale, puoi autenticarti su
Compute Engine selezionando una delle seguenti opzioni:
Seleziona la scheda relativa a come prevedi di utilizzare gli esempi in questa pagina:
gcloud
-
Installa Google Cloud CLI, quindi accedi a gcloud CLI con la tua identità federata. Dopo aver eseguito l'accesso, inizializza Google Cloud CLI eseguendo il comando seguente:
gcloud init
-
- Imposta una regione e una zona predefinite.
-
Installa Google Cloud CLI.
-
Configura gcloud CLI per utilizzare la tua identità federata.
Per ulteriori informazioni, vedi Accedi a gcloud CLI con la tua identità federata.
-
Crea credenziali di autenticazione locali per il tuo account utente:
gcloud auth application-default login
Se viene restituito un errore di autenticazione e utilizzi un provider di identità (IdP) esterno, verifica di aver acceduto a gcloud CLI con la tua identità federata.
Terraform
Per utilizzare gli esempi di Terraform 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 di eventi del repository, chiedi all'amministratore di concederti i seguenti ruoli IAM nel progetto:
- Editor Cloud Build (
roles/cloudbuild.builds.editor) - 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.
Configurare l'automazione del repository
Puoi configurare i trigger di eventi del repository utilizzando gcloud CLI o Terraform. Seleziona una delle seguenti schede per configurare i trigger del repository:
gcloud
Puoi creare un trigger del repository automatizzato utilizzando il comando gcloud builds
triggers create e
puntando direttamente al link del repository di seconda generazione connesso (--repository).
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
Sostituisci quanto segue:
TRIGGER_NAME: il nome del trigger, ad esempiogit-push-custom-os-builder.PROJECT_ID: il tuo ID progetto.REGION: la regione in cui è ospitata la connessione al repository e in cui viene eseguito il job della pipeline di personalizzazione delle immagini, ad esempious-central1.CONNECTION_NAME: il nome della connessione Developer Connect, ad esempiogithub-connection.REPO_NAME: il nome del repository Git collegato.CLOUDBUILD_YAML_PATH: il percorso relativo acloudbuild.yamlnella directory locale.SERVICE_ACCOUNT_EMAIL: l'indirizzo email esatto delaccount di serviziot di build.STAGING_BUCKET: il nome del bucket di stagingworkdirdi Cloud Storage.RECIPE_PATH: il percorso relativo aimagebuilder.yamlnel repository.
Terraform
Per configurare un trigger del repository automatizzato utilizzando Terraform, completa i passaggi seguenti:
Aggiungi la risorsa di attivazione al file di configurazione
main.tf: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" } }Sostituisci quanto segue:
TRIGGER_NAME: il nome del trigger, ad esempiogit-push-custom-os-builder.PROJECT_ID: il tuo ID progetto.REGION: la Cloud de Confiance regione in cui è ospitata la connessione al repository, ad esempious-central1.CONNECTION_NAME: il nome della connessione Developer Connect, ad esempiogithub-connection.REPO_NAME: il nome del repository Git collegato.CLOUDBUILD_YAML_PATH: il percorso relativo acloudbuild.yamlnella directory locale.STAGING_BUCKET: il nome del bucket di staging di Cloud Storage.RECIPE_PATH: il percorso relativo aimagebuilder.yamlnel repository.SERVICE_ACCOUNT_EMAIL: l'indirizzo email del account di serviziot di build.
Esegui il deployment della configurazione Terraform aggiornata:
terraform plan terraform apply
Per esaminare la struttura completa del progetto di infrastruttura Terraform multiformato, consulta Creare e gestire pipeline utilizzando Terraform.
Passaggi successivi
- Scopri come pianificare build di immagini OS personalizzate periodicamente per l'applicazione di patch di sicurezza utilizzando Cloud Scheduler.
- Esplora le azioni di personalizzazione supportate
(
Shell,FileCopy,UpdateKernelCommandLine,InstallGPU).