Restez organisé à l'aide des collections
Enregistrez et classez les contenus selon vos préférences.
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 (fournisseurGoogle 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'infrastructureGoogle Cloud . Vous pouvez utiliser le fournisseurGoogle Cloud pour configurer et gérer toutes les ressources Google Cloud à l'aide de la même syntaxe et des mêmes outils déclaratifs.
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 évite toute mauvaise surprise lorsque vous modifiez votre infrastructure via Terraform.
Terraform vous permet d'empaqueter et de réutiliser du code commun sous la forme de modules.
Les modules présentent des interfaces standards pour créer des ressources cloud. Ils simplifient les projets en augmentant la lisibilité et permettent aux équipes d'organiser l'infrastructure en blocs lisibles. En outre, Google Cloudpublie 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 le gérer efficacement. Le fichier d'état Terraform suit 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' Google Cloud infrastructure 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.
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 ensuite 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 l'état le plus récent de votre infrastructure et pour 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 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 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.
Google Cloud fournisseurs
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
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.
Sauf indication contraire, le contenu de cette page est régi par une licence Creative Commons Attribution 4.0, et les échantillons de code sont régis par une licence Apache 2.0. Pour en savoir plus, consultez les Règles du site Google Developers. Java est une marque déposée d'Oracle et/ou de ses sociétés affiliées.
Dernière mise à jour le 2025/09/04 (UTC).
[[["Facile à comprendre","easyToUnderstand","thumb-up"],["J'ai pu résoudre mon problème","solvedMyProblem","thumb-up"],["Autre","otherUp","thumb-up"]],[["Difficile à comprendre","hardToUnderstand","thumb-down"],["Informations ou exemple de code incorrects","incorrectInformationOrSampleCode","thumb-down"],["Il n'y a pas l'information/les exemples dont j'ai besoin","missingTheInformationSamplesINeed","thumb-down"],["Problème de traduction","translationIssue","thumb-down"],["Autre","otherDown","thumb-down"]],["Dernière mise à jour le 2025/09/04 (UTC)."],[[["\u003cp\u003eTerraform is an Infrastructure as Code (IaC) tool for provisioning and managing cloud infrastructure, particularly effective for Google Cloud through its dedicated providers.\u003c/p\u003e\n"],["\u003cp\u003eUsing Terraform on Google Cloud offers benefits such as creating reproducible environments, generating execution plans, reusing code through modules, and effectively managing the state of your infrastructure.\u003c/p\u003e\n"],["\u003cp\u003eTerraform utilizes a declarative syntax where you define your desired infrastructure end-state, and it uses its CLI to provision and manage your configuration accordingly.\u003c/p\u003e\n"],["\u003cp\u003eThe \u003ccode\u003eterraform apply\u003c/code\u003e command provisions infrastructure based on an execution plan, interfacing with Google Cloud APIs and maintaining a state file to track resource changes.\u003c/p\u003e\n"],["\u003cp\u003eThe \u003ccode\u003egoogle\u003c/code\u003e and \u003ccode\u003egoogle-beta\u003c/code\u003e providers are used to provision and manage both general and beta Google Cloud APIs, respectively, and are developed using the Magic Modules tool.\u003c/p\u003e\n"]]],[],null,["# Overview of Terraform on Google Cloud\n\nHashicorp Terraform is an Infrastructure as code (IaC) tool that lets you\nprovision and manage cloud infrastructure. Terraform provides plugins called\n*providers* that lets you interact with cloud providers and other\nAPIs. You can use the *Terraform provider for Google Cloud*\n(*Google Cloud provider*) to provision and manage Google Cloud\ninfrastructure.\n\nBenefits of using Terraform\n---------------------------\n\nThis section explains some of the benefits of using Terraform to provision and\nmanage Google Cloud infrastructure:\n\n- Terraform is the most commonly used tool to provision and automate Google Cloud infrastructure. You can use the [Google Cloud\n provider](https://registry.terraform.io/providers/hashicorp/google/latest/docs) to configure and manage all Google Cloud resources using the same declarative syntax and tooling.\n- Terraform lets you specify your preferred end state for your infrastructure. You can then deploy the same configuration multiple times to create reproducible development, test, and production environments.\n- Terraform lets you generate an execution plan that shows what Terraform will do when you apply your configuration. This lets you avoid any surprises when you modify your infrastructure through Terraform.\n- Terraform lets you package and reuse common code in the form of [modules](https://registry.terraform.io/namespaces/terraform-google-modules). Modules present standard interfaces for creating cloud resources. They simplify projects by increasing readability and allow teams to organize infrastructure in readable blocks. Additionally, Google Cloud publishes a number of opinionated deployable modules as [blueprints](/docs/terraform/blueprints/terraform-blueprints) and getting-started examples as [Jump Start\n Solutions](/solutions?jump-start-solutions#section-3).\n- Terraform records the current state of your infrastructure and lets you manage state effectively. The Terraform state file keeps track of all resources in a deployment.\n\nUsing Terraform\n---------------\n\nTerraform has a declarative and configuration-oriented syntax, which you can use\nto [author the infrastructure](https://developer.hashicorp.com/terraform/language)\nthat you want to provision. Using this syntax, you'll define your preferred\nend-state for your infrastructure in a *Terraform configuration file* . You'll then\nuse the [Terraform CLI](/docs/terraform/basic-commands) to provision\ninfrastructure based on the configuration file.\n\nThe following steps explain how Terraform works:\n\n1. You describe the Google Cloud infrastructure you want to provision in a Terraform configuration file. You don't need to author code describing *how* to provision this configuration.\n2. You run the `terraform plan` command, which evaluates your configuration and generates an execution plan. You can review the plan and make changes as needed.\n3. Then, you run the `terraform apply` command, which performs the following actions:\n - It provisions your infrastructure based on your execution plan by invoking the corresponding Google Cloud APIs in the background.\n - It creates a *Terraform state file*, which is a JSON formatted mapping of resources in your configuration file to the resources in the real world infrastructure. Terraform uses this file to know the latest state of your infrastructure, and to determine when to create, update, and destroy resources.\n4. Subsequently, when you run `terraform apply`, Terraform uses the mapping in the state file to compare the existing infrastructure to the code, and make updates as necessary:\n - If a resource object defined in the configuration file does not exist in the state file, Terraform creates it.\n - If a resource object exists in the state file, but has a different configuration from your configuration file, Terraform updates the resource to match your configuration file.\n - If a resource object in the state file matches your configuration file, Terraform leaves the resource unchanged.\n\nGoogle Cloud providers\n----------------------\n\nThere are two providers that let you provision and manage Google Cloud\ninfrastructure:\n\n- `google`: Use this provider to provision and manage Google Cloud APIs.\n- `google-beta`: Use this provider to provision and manage Google Cloud beta APIs.\n\nFor instructions on using these providers, see the\n[Google Cloud provider configuration reference](https://registry.terraform.io/providers/hashicorp/google/latest/docs/guides/provider_reference).\n\n`google` and `google-beta` providers are developed using a tool called\n*Magic Modules* . Magic Modules allows contributors to make changes against a\nsingle codebase and develop both `google` and `google-beta` providers\nsimultaneously.\n\nYou can contribute to the Google Cloud providers using Magic Modules\nby following the instructions in the\n[Magic Modules contribution guide](https://googlecloudplatform.github.io/magic-modules/get-started/generate-providers/).\n\nWhat's next\n-----------\n\n- Learn how to [create a basic web server on Compute Engine using Terraform](/docs/terraform/get-started-with-terraform)\n- Learn how to [store Terraform state in a Cloud Storage bucket](/docs/terraform/resource-management/store-state)\n- Look through the various [Terraform for Google Cloud samples](/docs/samples?language=terraform)\n- Look through the [Terraform modules and blueprints for Google Cloud](/docs/terraform/blueprints/terraform-blueprints)"]]