En connectant des déclencheurs de compilation Cloud Build à Infrastructure Manager, vous pouvez automatiser les déploiements d'infrastructure directement à partir de vos dépôts Git. Dans ce workflow, les demandes d'extraction génèrent un aperçu du déploiement, et les commits fusionnés créent ou mettent à jour automatiquement créent ou mettent à jour le 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 avec les autorisations nécessaires. Pour en savoir plus, consultez Configurer le compte de service.
- Identifiez le dépôt Git existant qui contient la configuration Terraform. Lorsque vous configurez l'automatisation décrite sur cette page, il s'agit de la configuration Terraform qu'Infra Manager utilise pour mettre à jour les ressources.
- Recommandé : Configurez la protection des branches pour votre dépôt Git.
Automatiser le déploiement des Google Cloud ressources
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. Le déploiement d'une configuration Terraform peut être une révision d'un déploiement existant. Les révisions peuvent supprimer ou remplacer desressources provisionnées Google Cloud .
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 au dépôt Cloud Build.
- Un déclencheur de compilation Cloud Build qui est appelé lorsqu'une demande d'extraction est créée. Ce déclencheur entraîne la création d'un déploiement d'aperçu par Infra Manager à l'aide de la configuration Terraform dans le dépôt.
- Un déclencheur de compilation Cloud Build qui est appelé lorsqu'une demande d'extraction est fusionnée avec le dépôt Git. Ce déclencheur entraîne la création ou la mise à jour du déploiement par Infra Manager à l'aide de la configuration Terraform dans le 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 dans votre compte GitHub ou dans une organisation dont vous êtes propriétaire.
Créez un jeton d'accès personnel.
Assurez-vous de définir votre jeton sans date d'expiration et sélectionnez les autorisations suivantes lorsque vous y êtes invité dans GitHub :
repoetread:user. Si votre application est installée dans une organisation, veillez également à sélectionner l'autorisationread:org.Une fois votre jeton d'accès personnel généré, enregistrez-le dans un endroit sûr. Vous utiliserez le jeton généré lors des étapes suivantes.
Copiez le module
im_cloudbuild_workspacedans le fichiermain.tfde 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 dans lequel Infrastructure Manager s'exécute.
- DEPLOYMENT_ID : identifiant de déploiement que vous spécifiez. Pour en savoir plus sur les contraintes concernant l'identifiant de déploiement, consultez 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 la référence, la branche configurée par défaut pour le 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 d'envoi.
- TOKEN : jeton d'accès personnel pour un dépôt GitHub. S'il est fourni, il crée un secret dans Secret Manager.
Créez un déploiement (ou mettez à jour votre déploiement existant) avec le
im_cloudbuild_workspacemodule :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=REFRemplacez :
- PROJECT_ID : ID du projet dans lequel Infrastructure Manager s'exécute.
- LOCATION : emplacement où Infra Manager s'exécute. Pour obtenir la liste des emplacements, consultez Emplacements d’Infrastructure Manager.
- DEPLOYMENT_ID : identifiant de déploiement que vous spécifiez. Pour en savoir plus sur les contraintes concernant l'identifiant de déploiement, consultez 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 la référence, la branche configurée par défaut pour le 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 dans votre dépôt.
Pour afficher les résultats de la validation de la configuration Terraform dupliquée, consultez la demande d'extraction dans GitHub.
Une fois cette automatisation configurée, les déclencheurs Cloud Build entraînent les actions suivantes :
- Lorsqu'une demande d'extraction est effectuée dans le dépôt, Infra Manager crée un déploiement d'aperçu à l'aide de la configuration Terraform dupliqué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 dupliquée stockée dans le dépôt Git.
Étape suivante
- Utilisez Cloud Build pour afficher les résultats de compilation de vos déclencheurs de compilation.
- Affichez les ressources déployées avec Infra Manager.
- Surveillez vos Google Cloud ressources avec la journalisation d'audit d'Infrastructure Manager.