Vous pouvez configurer des pipelines Image Builder automatisés qui s'exécutent chaque fois que vous transférez des modifications de configuration vers votre dépôt Git, par exemple vers main.
L'automatisation des compilations sur les événements de dépôt garantit que Cloud Build valide, compile et publie immédiatement vos images d'OS personnalisées dans Compute Engine et Artifact Registry après la revue de code ou la fusion.
Avant de commencer
- Suivez les étapes de configuration de l'environnement dans Préparer votre environnement.
- Si vous prévoyez de déployer votre pipeline à l'aide de Terraform ou d'automatiser les compilations à partir d'un dépôt, connectez votre dépôt GitHub, GitLab ou Bitbucket à l'aide des dépôts Cloud Build (
2nd gen) ou des liens de connexion Developer Connect. - Assurez-vous que votre dépôt contient votre fichier d'orchestration
cloudbuild.yaml, votre fichier de recetteimagebuilder.yamlet tous les scripts de compilation référencés. - Si vous prévoyez d'utiliser Terraform, installez la CLI Terraform version 1.3 ou ultérieure.
-
Si ce n'est pas déjà fait, configurez l'authentification.
L'authentification permet de valider votre identité pour accéder aux services et aux API Cloud de Confiance by S3NS . Pour exécuter du code ou des exemples depuis un environnement de développement local, vous pouvez vous authentifier auprès de Compute Engine en sélectionnant l'une des options suivantes :
Sélectionnez l'onglet correspondant à la façon dont vous prévoyez d'utiliser les exemples de cette page :
gcloud
-
Installez la Google Cloud CLI, puis connectez-vous à la gcloud CLI avec votre identité fédérée. Après vous être connecté, initialisez la Google Cloud CLI en exécutant la commande suivante :
gcloud init
-
- Définissez une région et une zone par défaut.
-
Installez la Google Cloud CLI.
-
Configurez la gcloud CLI afin d'utiliser votre identité fédérée.
Pour en savoir plus, consultez Se connecter à la gcloud CLI avec votre identité fédérée.
-
Créez des identifiants d'authentification locaux pour votre compte utilisateur :
gcloud auth application-default login
Si une erreur d'authentification est renvoyée et que vous utilisez un fournisseur d'identité (IdP) externe, vérifiez que vous vous êtes connecté à la gcloud CLI avec votre identité fédérée.
Terraform
Pour utiliser les exemples Terraform de cette page dans un environnement de développement local, installez et initialisez la gcloud CLI, puis configurez les Identifiants par défaut de l'application avec vos identifiants utilisateur.
Pour en savoir plus, consultez Configurer l'authentification pour un environnement de développement local.
Rôles requis
Pour obtenir les autorisations nécessaires pour créer des déclencheurs d'événements de dépôt, demandez à votre administrateur de vous accorder les rôles IAM suivants sur votre projet :
- Éditeur Cloud Build (
roles/cloudbuild.builds.editor) -
Utilisateur du compte de service (
roles/iam.serviceAccountUser)
Pour en savoir plus sur l'attribution de rôles, consultez la page Gérer l'accès aux projets, aux dossiers et aux organisations.
Vous pouvez également obtenir les autorisations requises avec des rôles personnalisés ou d'autres rôles prédéfinis.
Configurer l'automatisation des dépôts
Vous pouvez configurer des déclencheurs d'événements de dépôt à l'aide de la gcloud CLI ou de Terraform. Sélectionnez l'un des onglets suivants pour configurer les déclencheurs de dépôt :
gcloud
Vous pouvez créer un déclencheur de dépôt automatisé à l'aide de la commande gcloud builds
triggers create et en pointant directement vers le lien de votre dépôt de deuxième génération connecté (--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
Remplacez les éléments suivants :
TRIGGER_NAME: nom de votre déclencheur, par exemplegit-push-custom-os-builder.PROJECT_ID: ID de votre projet.REGION: région dans laquelle votre connexion au dépôt est hébergée et dans laquelle le job de pipeline de personnalisation d'image est exécuté, par exempleus-central1.CONNECTION_NAME: nom de votre connexion Developer Connect, par exemplegithub-connection.REPO_NAME: nom du dépôt Git associé.CLOUDBUILD_YAML_PATH: chemin relatif verscloudbuild.yamldans votre répertoire local.SERVICE_ACCOUNT_EMAIL: adresse e-mail exacte de votre compte de service de compilation.STAGING_BUCKET: nom de votre bucketworkdirCloud Storage intermédiaire.RECIPE_PATH: chemin relatif versimagebuilder.yamldans votre dépôt.
Terraform
Pour configurer un déclencheur de dépôt automatisé à l'aide de Terraform, procédez comme suit :
Ajoutez la ressource de déclencheur à votre fichier de configuration
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" } }Remplacez les éléments suivants :
TRIGGER_NAME: nom de votre déclencheur, par exemplegit-push-custom-os-builder.PROJECT_ID: ID de votre projet.REGION: région Cloud de Confiance où votre connexion au dépôt est hébergée, par exempleus-central1.CONNECTION_NAME: nom de votre connexion Developer Connect, par exemplegithub-connection.REPO_NAME: nom du dépôt Git associé.CLOUDBUILD_YAML_PATH: chemin relatif verscloudbuild.yamldans votre répertoire local.STAGING_BUCKET: nom de votre bucket Cloud Storage intermédiaire.RECIPE_PATH: chemin relatif versimagebuilder.yamldans votre dépôt.SERVICE_ACCOUNT_EMAIL: adresse e-mail de votre compte de service de compilation.
Déployez la configuration Terraform mise à jour :
terraform plan terraform apply
Pour examiner la structure complète du projet d'infrastructure Terraform multifichier, consultez Créer et gérer des pipelines à l'aide de Terraform.
Étapes suivantes
- Découvrez comment planifier des compilations d'images d'OS personnalisées de manière périodique pour l'application de correctifs de sécurité à l'aide de Cloud Scheduler.
- Découvrez les actions de personnalisation acceptées (
Shell,FileCopy,UpdateKernelCommandLine,InstallGPU).