Puedes configurar canalizaciones automatizadas de Image Builder que se ejecuten cada vez que envíes cambios de configuración a tu repositorio de Git, como cuando envías a main.
La automatización de las compilaciones en eventos del repositorio garantiza que Cloud Build valide, compile y publique de inmediato tus imágenes de SO personalizadas en Compute Engine y Artifact Registry tras la revisión de código o la combinación.
Antes de comenzar
- Completa los pasos de configuración del entorno en Prepara tu entorno.
- Si planeas implementar tu canalización con Terraform o automatizar compilaciones desde un repositorio, conecta tu repositorio de GitHub, GitLab o Bitbucket con repositorios de Cloud Build (
2nd gen) o vínculos de conexión de Developer Connect. - Asegúrate de que tu repositorio contenga el archivo de orquestación
cloudbuild.yaml, el archivo de recetasimagebuilder.yamly cualquier secuencia de comandos de compilación a la que se haga referencia. - Si planeas usar Terraform, instala la versión 1.3 o posterior de la CLI de Terraform.
-
Si aún no lo hiciste, configura la autenticación.
La autenticación verifica tu identidad para acceder a los servicios y las APIs de Cloud de Confiance by S3NS . Para ejecutar código o muestras desde un entorno de desarrollo local, puedes autenticarte en Compute Engine seleccionando una de las siguientes opciones:
Selecciona la pestaña que corresponda a la forma en que planeas usar las muestras de esta página:
gcloud
-
Instala Google Cloud CLI y, luego, accede a gcloud CLI con tu identidad federada. Después de acceder, inicializa Google Cloud CLI con el siguiente comando:
gcloud init
-
- Configura una región y una zona predeterminadas.
-
Instala Google Cloud CLI.
-
Configura gcloud CLI para usar tu identidad federada.
Para obtener más información, consulta Accede a la gcloud CLI con tu identidad federada.
-
Crea credenciales de autenticación locales para tu cuenta de usuario:
gcloud auth application-default login
Si se devuelve un error de autenticación y usas un proveedor de identidad (IdP) externo, confirma que accediste a la gcloud CLI con tu identidad federada.
Terraform
Para usar las muestras de Terraform de esta página en un entorno de desarrollo local, instala e inicializa la gcloud CLI y, luego, configura las credenciales predeterminadas de la aplicación con tus credenciales de usuario.
Si deseas obtener más información, consulta Configura la autenticación para un entorno de desarrollo local.
Roles obligatorios
Para obtener los permisos que necesitas para crear activadores de eventos del repositorio, pídele a tu administrador que te otorgue los siguientes roles de IAM en tu proyecto:
- Editor de Cloud Build (
roles/cloudbuild.builds.editor) - Usuario de la cuenta de servicio (
roles/iam.serviceAccountUser)
Para obtener más información sobre cómo otorgar roles, consulta Administra el acceso a proyectos, carpetas y organizaciones.
También puedes obtener los permisos necesarios a través de roles personalizados o cualquier otro rol predefinido.
Configura la automatización del repositorio
Puedes configurar activadores de eventos del repositorio con gcloud CLI o Terraform. Selecciona una de las siguientes pestañas para configurar los activadores del repositorio:
gcloud
Puedes crear un activador de repositorio automatizado con el comando gcloud builds
triggers create y apuntar directamente al vínculo de tu repositorio de 2ª gen. conectado (--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
Reemplaza lo siguiente:
TRIGGER_NAME: Es el nombre del activador, por ejemplo,git-push-custom-os-builder.PROJECT_ID: el ID de tu proyectoREGION: Es la región en la que se aloja la conexión del repositorio y en la que se ejecuta el trabajo de la canalización de personalización de imágenes, por ejemplo,us-central1.CONNECTION_NAME: Es el nombre de tu conexión de Developer Connect, por ejemplo,github-connection.REPO_NAME: Es el nombre del repositorio de Git vinculado.CLOUDBUILD_YAML_PATH: Es la ruta de acceso relativa acloudbuild.yamlen tu directorio local.SERVICE_ACCOUNT_EMAIL: La dirección de correo electrónico exacta de tu cuenta de servicio de compilaciónSTAGING_BUCKET: Es el nombre de tu bucket de Cloud Storage deworkdir.RECIPE_PATH: Es la ruta de acceso relativa aimagebuilder.yamlen tu repositorio.
Terraform
Para configurar un activador de repositorio automatizado con Terraform, completa los siguientes pasos:
Agrega el recurso de activación a tu archivo de configuración
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" } }Reemplaza lo siguiente:
TRIGGER_NAME: Es el nombre del activador, por ejemplo,git-push-custom-os-builder.PROJECT_ID: el ID de tu proyectoREGION: Es la región Cloud de Confiance en la que se aloja la conexión de tu repositorio, por ejemplo,us-central1.CONNECTION_NAME: Es el nombre de tu conexión de Developer Connect, por ejemplo,github-connection.REPO_NAME: Es el nombre del repositorio de Git vinculado.CLOUDBUILD_YAML_PATH: Es la ruta de acceso relativa acloudbuild.yamlen tu directorio local.STAGING_BUCKET: Es el nombre de tu bucket de Cloud Storage de etapa de pruebas.RECIPE_PATH: Es la ruta de acceso relativa aimagebuilder.yamlen tu repositorio.SERVICE_ACCOUNT_EMAIL: La dirección de correo electrónico de tu cuenta de servicio de compilación
Implementa la configuración de Terraform actualizada:
terraform plan terraform apply
Para revisar la estructura completa del proyecto de infraestructura de Terraform de varios archivos, consulta Crea y administra canalizaciones con Terraform.
¿Qué sigue?
- Aprende a programar compilaciones de imagen de SO personalizadas periódicamente para aplicar parches de seguridad con Cloud Scheduler.
- Explora las acciones de personalización admitidas (
Shell,FileCopy,UpdateKernelCommandLine,InstallGPU).