HashiCorp Terraform est un outil IaC (Infrastructure as Code) qui vous permet de provisionner et de gérer l'infrastructure cloud. Terraform fournit des plug-ins appelés fournisseurs qui vous permettent d'interagir avec des fournisseurs cloud et d'autres API. Vous pouvez utiliser le fournisseur Terraform pour Google Cloud pour provisionner et gérer les ressources Google Cloud , y compris Cloud Build.
Cette page vous présente l'utilisation de Terraform avec Cloud Build, y compris une présentation du fonctionnement de Terraform et des ressources pour vous aider à commencer à utiliser Terraform avec Google Cloud. Vous trouverez également des liens vers la documentation de référence Terraform pour Cloud Build, des exemples de code et des guides sur l'utilisation de Terraform pour provisionner des ressources Cloud Build.
Pour savoir comment commencer à utiliser Terraform pour Google Cloud, consultez Installer et configurer Terraform ou la présentation rapide Terraform pour Google Cloud .
Fonctionnement de Terraform
Terraform possède une syntaxe déclarative et axée sur la configuration qui vous permet de décrire l'infrastructure que vous souhaitez provisionner dans votre projet Google Cloud . Après avoir créé cette configuration dans un ou plusieurs fichiers de configuration Terraform, vous pouvez utiliser la CLI Terraform pour appliquer cette configuration à vos ressources Cloud Build.
Les étapes suivantes expliquent le fonctionnement de Terraform :
- Vous devez décrire l'infrastructure que vous souhaitez provisionner dans un fichier de configuration Terraform. Vous n'avez pas besoin d'écrire de code décrivant comment provisionner l'infrastructure. Terraform provisionne l'infrastructure pour vous.
- Vous exécutez la commande
terraform plan
, qui évalue votre configuration et génère un plan d'exécution. Vous pouvez examiner le plan et apporter les modifications nécessaires. -
Vous exécutez la commande
terraform apply
, qui effectue les actions suivantes :- Il provisionne votre infrastructure en fonction de votre plan d'exécution en appelant les API Cloud Build correspondantes en arrière-plan.
- Il crée un fichier d'état Terraform, qui est un fichier JSON qui mappe les ressources de votre fichier de configuration avec les ressources de l'infrastructure réelle. Terraform utilise ce fichier pour conserver un enregistrement de l'état le plus récent de votre infrastructure et pour déterminer quand créer, mettre à jour et détruire des ressources.
-
Lorsque vous exécutez
terraform apply
, Terraform utilise le mappage dans le fichier d'état pour comparer l'infrastructure existante au code et effectuer les mises à jour si nécessaire :- Si un objet de ressource est défini dans le fichier de configuration, mais n'existe pas dans le fichier d'état, Terraform le crée.
- Si un objet de ressource existe dans le fichier d'état, mais possède une configuration différente de celle contenue dans votre fichier de configuration, Terraform met à jour la ressource en fonction de votre fichier de configuration.
- Si un objet de ressource dans le fichier d'état correspond à votre fichier de configuration, Terraform laisse la ressource telle quelle.
Ressources Terraform pour Cloud Build
Les ressources sont les éléments fondamentaux du langage Terraform. Chaque bloc de ressources décrit un ou plusieurs objets d'infrastructure, tels que des réseaux virtuels ou des instances de calcul.
Le tableau suivant répertorie les ressources Terraform disponibles pour Cloud Build:
Service Cloud Build | Ressources Terraform | Sources de données |
---|---|---|
Cloud Build v1 | google_cloudbuild_trigger
|
|
Cloud Build v2 | google_cloudbuildv2_connection_iam_policy |
Guides basés sur Terraform pour Cloud Build
Le tableau suivant répertorie les guides et tutoriels d'instructions basés sur Terraform pour Cloud Build:
Guide | Détails |
---|---|
Se connecter à un dépôt GitHub | Ce guide explique comment connecter un dépôt GitHub à Cloud Build à l'aide de Terraform. |
Se connecter à un hôte GitHub Enterprise | Ce guide explique comment connecter un hôte GitHub Enterprise à Cloud Build à l'aide de Terraform. |
Se connecter à un dépôt GitHub Enterprise | Ce guide explique comment connecter un dépôt GitHub Enterprise à Cloud Build à l'aide de Terraform. |
Se connecter à un hôte GitLab Enterprise Edition | Ce guide explique comment connecter un hôte GitLab Enterprise Edition à Cloud Build à l'aide de Terraform. |
Se connecter à un dépôt GitLab Enterprise Edition | Ce guide explique comment associer un dépôt GitLab Enterprise Edition à Cloud Build à l'aide de Terraform. |
Se connecter à un hôte Bitbucket Data Center | Ce guide explique comment connecter un hôte Bitbucket Data Center à Cloud Build à l'aide de Terraform. |
Se connecter à un dépôt Bitbucket Data Center | Ce guide explique comment connecter un dépôt Bitbucket Data Center à Cloud Build à l'aide de Terraform. |
Se connecter à un hôte Bitbucket Cloud | Ce guide explique comment connecter un hôte Bitbucket Cloud à Cloud Build à l'aide de Terraform. |
Se connecter à un dépôt Bitbucket Cloud | Ce guide explique comment connecter un dépôt Bitbucket Cloud à Cloud Build à l'aide de Terraform. |
Déployer sur Compute Engine | Ce guide explique comment effectuer des déploiements bleu-vert sans temps d'arrêt sur des groupes d'instances gérés (MIG, Managed Instance Group) Compute Engine à l'aide de Cloud Build et de Terraform. |
Modules et plans Terraform pour Cloud Build
Les modules et les plans vous aident à automatiser le provisionnement et la gestion des ressources Google Cloud à grande échelle. Un module est un ensemble de fichiers de configuration Terraform réutilisables qui crée une abstraction logique des ressources Terraform. Un plan comprend un package de modules déployables et réutilisables ainsi qu'une règle qui implémente et documente une solution spécifique.
Le tableau suivant répertorie les modules et les modèles liés à Cloud Build:
Module ou plan | Détails |
---|---|
Pipeline CI/CD sécurisé | Ce module permet aux clients de déployer rapidement un pipeline CI/CD sécurisé, en implémentant de nombreuses fonctions décrites dans Déplacer la sécurité vers la gauche. Google Cloud |
terraform-google-bootstrap |
Ce module permet de démarrer une Google Cloud organisation en créant toutes les ressources et autorisations requises pour commencer à utiliser le kit Cloud Foundation (CFT). Pour les utilisateurs qui souhaitent utiliser Cloud Build et Cloud Source Repositories pour le code de base, ce module contient un sous-module qui démarre toutes les ressources requises. |
Étape suivante
- Exemples de code Terraform pour Cloud Build
- Documentation Terraform sur Google Cloud
- Documentation du fournisseurGoogle Cloud dans HashiCorp
- Infrastructure as Code pour Google Cloud