Hashicorp Terraform est un outil IaC (Infrastructure as Code) qui vous permet de provisionner et de gérer une 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 (fournisseur Google Cloud) pour provisionner et gérer l'infrastructure Google Cloud.
Avantages de l'utilisation de Terraform
Cette section explique certains des avantages à utiliser Terraform pour provisionner et gérer l'infrastructure Google Cloud :
- Terraform est l'outil le plus couramment utilisé pour provisionner et automatiser l'infrastructure Google Cloud. Vous pouvez utiliser le fournisseur Google Cloud pour configurer et gérer toutes les ressources Google Cloud à l'aide de la même syntaxe déclarative et des mêmes outils.
- Terraform vous permet de spécifier l'état final souhaité pour votre infrastructure. Vous pouvez ensuite déployer la même configuration plusieurs fois pour créer des environnements de développement, de test et de production reproductibles.
- Terraform vous permet de générer un plan d'exécution qui montre ce que Terraform fera lorsque vous appliquerez votre configuration. Cela vous permet d'éviter les surprises lorsque vous modifiez votre infrastructure via Terraform.
- Terraform vous permet d'empaqueter et de réutiliser le code commun sous la forme de modules. Les modules présentent des interfaces standards pour la création de ressources cloud. Ils simplifient les projets en améliorant la lisibilité et permettent aux équipes d'organiser l'infrastructure en blocs lisibles. En outre, Google Cloud publie un certain nombre de modules déployables avisés en tant que plans et d'exemples de démarrage en tant que solutions de démarrage rapide.
- Terraform enregistre l'état actuel de votre infrastructure et vous permet de gérer l'état efficacement. Le fichier d'état Terraform permet d'effectuer le suivi de toutes les ressources d'un déploiement.
Installation à l'aide de Terraform
Terraform possède une syntaxe déclarative et axée sur la configuration qui vous permet de créer l'infrastructure que vous souhaitez provisionner. Cette syntaxe vous permet de définir l'état final souhaité pour votre infrastructure dans un fichier de configuration Terraform. Vous utiliserez ensuite la CLI Terraform pour provisionner l'infrastructure en fonction du fichier de configuration.
Les étapes suivantes expliquent le fonctionnement de Terraform :
- Vous devez décrire l'infrastructure Google Cloud que vous souhaitez provisionner dans un fichier de configuration Terraform. Vous n'avez pas besoin de créer de code décrivant comment provisionner cette configuration.
- 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 des modifications si nécessaire. - Ensuite, 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 Google Cloud correspondantes en arrière-plan.
- Il crée un fichier d'état Terraform, qui est un mappage au format JSON des ressources de votre fichier de configuration avec les ressources de l'infrastructure réelle. Terraform utilise ce fichier pour connaître le dernier état de votre infrastructure et déterminer quand créer, mettre à jour et détruire des ressources.
- Par la suite, lorsque vous exécutez
terraform apply
, Terraform utilise le mappage du fichier d'état pour comparer l'infrastructure existante au code et effectuer des mises à jour si nécessaire :- Si un objet de ressource défini dans le fichier de configuration 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.
Fournisseurs Google Cloud
Deux fournisseurs vous permettent de provisionner et de gérer l'infrastructure Google Cloud:
google
: utilisez ce fournisseur pour provisionner et gérer les API Google Cloud.google-beta
: utilisez ce fournisseur pour provisionner et gérer les API bêta Google Cloud.
Pour obtenir des instructions sur l'utilisation de ces fournisseurs, consultez la documentation de référence sur la configuration du fournisseur Google Cloud.
Les fournisseurs google
et google-beta
sont développés à l'aide d'un outil appelé module Magic. Les modules magiques permettent aux contributeurs d'apporter des modifications à une seule base de code et de développer simultanément des fournisseurs google
et google-beta
.
Vous pouvez contribuer aux fournisseurs Google Cloud à l'aide des modules Magic Modules en suivant les instructions du guide de contribution aux modules Magic Modules.
Étapes suivantes
- Apprenez à créer un serveur Web de base sur Compute Engine à l'aide de Terraform.
- Découvrez comment stocker l'état Terraform dans un bucket Cloud Storage.
- Consultez les différents exemples Terraform pour Google Cloud.
- Consultez les modules et plans Terraform pour Google Cloud.