Cette page décrit la procédure de configuration des déclencheurs Cloud Build pour automatiser les déploiements de ressources Google Cloud à l'aide de vos dépôts existants et d'Infrastructure Manager.
Une fois qu'Infra Manager se connecte à votre dépôt Git, les requêtes pull appellent un aperçu d'un déploiement, et les commits appellent la création d'un aperçu de déploiement ou la mise à jour du déploiement.
Avant de commencer
- Assurez-vous que Infra Manager est activé.
- Assurez-vous de disposer des autorisations IAM nécessaires pour créer des déploiements :
roles/config.admin
- Assurez-vous de disposer d'un compte de service disposant des autorisations nécessaires. Pour en savoir plus, consultez la section Configurer le compte de service.
- Identifiez le dépôt Git existant contenant la configuration Terraform. Lorsque vous configurez l'automatisation décrite sur cette page, c'est la configuration Terraform qu'Infra Manager utilise pour mettre à jour les ressources.
- Recommandation: Configurez la protection des branches pour votre dépôt Git.
Automatiser le déploiement des ressources Google Cloud
Les étapes suivantes décrivent la configuration requise pour automatiser l'aperçu et le déploiement d'une configuration Terraform stockée dans un dépôt Git. Un déploiement d'une configuration Terraform peut être une révision d'un déploiement existant. Les révisions peuvent supprimer ou remplacer les ressources Google Cloud provisionnées.
Une fois la configuration terminée, une demande d'extraction dans le dépôt Git entraîne la création d'un aperçu du déploiement par Infra Manager. Lorsqu'une demande d'extraction est fusionnée, Infra Manager déploie automatiquement la configuration Terraform.
Le module im_cloudbuild_workspace
crée plusieurs ressources, y compris les suivantes:
- Une connexion à un dépôt Cloud Build.
- Déclencheur Cloud Build appelé lorsqu'une demande d'extraction est créée. Ce déclencheur permet à Infra Manager de créer un déploiement en avant-première à l'aide de la configuration Terraform du dépôt.
- Déclencheur Cloud Build appelé lorsqu'une demande d'extraction est fusionnée avec le dépôt Git. Ce déclencheur permet à Infra Manager de créer ou de mettre à jour le déploiement à l'aide de la configuration Terraform du dépôt.
Pour automatiser les déploiements de configuration Terraform lorsque le dépôt est mis à jour:
- Installez l'application GitHub Cloud Build sur votre compte GitHub ou dans une organisation dont vous êtes propriétaire.
Créez un jeton d'accès personnel.
Assurez-vous de ne pas définir de date d'expiration pour votre jeton et sélectionnez les autorisations suivantes lorsque vous y êtes invité dans GitHub:
repo
etread:user
. Si votre application est installée dans une organisation, veillez également à sélectionner l'autorisationread:org
.Après avoir généré votre jeton d'accès personnel, enregistrez-le dans un endroit sécurisé. Vous utiliserez le jeton généré dans les étapes suivantes.
Copiez le module
im_cloudbuild_workspace
dans le fichiermain.tf
de votre dépôt Git:module "im-workspace" { source = "terraform-google-modules/bootstrap/google//modules/im_cloudbuild_workspace" version = "~> 7.0" project_id = PROJECT_ID deployment_id = DEPLOYMENT_ID im_deployment_repo_uri = GIT_REPO im_deployment_ref = REF github_app_installation_id = GIT_APP_ID github_personal_access_token = TOKEN }
Remplacez :
- PROJECT_ID: ID du projet sur lequel s'exécute Infrastructure Manager.
- DEPLOYMENT_ID: identifiant de déploiement que vous spécifiez. Pour en savoir plus sur les contraintes liées à l'identifiant de déploiement, consultez la section Nom du déploiement.
- GIT_REPO: URI du dépôt Git.
- REF: référence Git de la configuration. La référence est facultative. Si vous ne spécifiez pas de référence, la branche configurée par défaut du dépôt Git est utilisée.
- GIT_APP_ID: ID d'installation de l'application GitHub Cloud Build utilisée pour les déclencheurs de requêtes d'extraction et de transfert.
- TOKEN: jeton d'accès personnel pour un dépôt GitHub. Si fourni, crée un secret dans Secret Manager.
Créez un déploiement (ou mettez à jour votre déploiement existant) avec le module
im_cloudbuild_workspace
:gcloud infra-manager deployments apply projects/PROJECT_ID/locations/LOCATION/deployments/DEPLOYMENT_ID \ --service-account projects/SERVICE_ACCOUNT_PROJECT_ID/serviceAccounts/SERVICE_ACCOUNT \ --git-source-repo=GIT_REPO \ --git-source-directory=DIRECTORY \ --git-source-ref=REF
Remplacez :
- PROJECT_ID: ID du projet sur lequel s'exécute Infrastructure Manager.
- LOCATION: emplacement où Infra Manager s'exécute. Pour obtenir la liste des emplacements, consultez la page Emplacements Infrastructure Manager.
- DEPLOYMENT_ID: identifiant de déploiement que vous spécifiez. Pour en savoir plus sur les contraintes liées à l'identifiant de déploiement, consultez la section Nom du déploiement.
- SERVICE_ACCOUNT: nom du compte de service que vous utilisez pour appeler Infra Manager.
- SERVICE_ACCOUNT_PROJECT_ID correspond à l'ID du projet du compte de service. Il s'agit généralement du même projet que celui dans lequel Infrastructure Manager s'exécute.
- GIT_REPO: dépôt Git public.
- DIRECTORY: répertoire contenant la configuration Terraform.
- REF: référence Git de la configuration. La référence est facultative. Si vous ne spécifiez pas de référence, la branche configurée par défaut du dépôt Git est utilisée.
Pour vérifier que votre dépôt Git est correctement connecté à Infra Manager, créez une demande d'extraction sur votre dépôt.
Pour consulter les résultats de la validation de la configuration Terraform dissociée, consultez la demande d'extraction sur GitHub.
Maintenant que cette automatisation est configurée, les déclencheurs Cloud Build provoquent les événements suivants:
- Lorsqu'une demande d'extraction est envoyée au dépôt, Infra Manager crée un déploiement d'aperçu à l'aide de la configuration Terraform dissociée stockée dans le dépôt Git.
- Lorsqu'une demande d'extraction est fusionnée dans le dépôt, Infra Manager met à jour le déploiement à l'aide de la configuration Terraform dissociée stockée dans le dépôt Git.
Étape suivante
- Utilisez Cloud Build pour afficher les résultats des compilations réalisées par vos déclencheurs de compilation.
- Afficher les ressources déployées avec Infra Manager.
- Surveillez vos ressources Google Cloud avec la journalisation d'audit Infrastructure Manager.