Mantieni tutto organizzato con le raccolte
Salva e classifica i contenuti in base alle tue preferenze.
Hashicorp Terraform è uno strumento Infrastructure as Code (IaC) che consente di eseguire il provisioning e gestire l'infrastruttura cloud. Terraform fornisce plug-in chiamati
provider che ti consentono di interagire con i provider cloud e altre
API. Puoi utilizzare il provider Terraform per Google Cloud
(Google Cloud provider) per eseguire il provisioning e gestire Google Cloud
l'infrastruttura.
Vantaggi dell'utilizzo di Terraform
Questa sezione illustra alcuni dei vantaggi dell'utilizzo di Terraform per eseguire il provisioning e gestire Google Cloud l'infrastruttura:
Terraform è lo strumento più utilizzato per il provisioning e l'automazione dell'Google Cloud infrastruttura. Puoi utilizzare il Google Cloud
provider
per configurare e gestire tutte le Google Cloud risorse utilizzando la stessa
sintassi e gli stessi strumenti dichiarativi.
Terraform ti consente di specificare lo stato finale che preferisci per la tua infrastruttura.
Puoi quindi eseguire il deployment della stessa configurazione più volte per creare ambienti di sviluppo, test e produzione riproducibili.
Terraform ti consente di generare un piano di esecuzione che mostra cosa farà Terraform quando applichi la configurazione. In questo modo, eviterai sorprese quando modifichi l'infrastruttura tramite Terraform.
Terraform ti consente di pacchettizzare e riutilizzare il codice comune sotto forma di
moduli.
I moduli presentano interfacce standard per la creazione di risorse cloud. Simplificano i progetti aumentando la leggibilità e consentono ai team di organizzare l'infrastruttura in blocchi leggibili. Inoltre, Google Cloud
pubblica una serie di moduli di deployment con opinioni come
blueprint ed esempi di inizio come soluzioni già pronte.
Terraform registra lo stato attuale dell'infrastruttura e ti consente di gestirlo in modo efficace. Il file di stato Terraform tiene traccia di tutte le risorse di un deployment.
Utilizzo di Terraform
Terraform ha una sintassi dichiarativa e orientata alla configurazione che puoi utilizzare per creare l'infrastruttura che vuoi eseguire il provisioning. Utilizzando questa sintassi, definirai lo stato finale preferito per la tua infrastruttura in un file di configurazione Terraform. Poi,
utilizzerai l'interfaccia a riga di comando Terraform per eseguire il provisioning
dell'infrastruttura in base al file di configurazione.
I passaggi seguenti spiegano come funziona Terraform:
Descrivi l' Google Cloud infrastruttura che vuoi eseguire il provisioning
in un file di configurazione Terraform. Non è necessario scrivere codice
che descriva come eseguire il provisioning di questa configurazione.
Esegui il comando terraform plan, che valuta la configurazione
e genera un piano di esecuzione. Puoi esaminare il piano e apportare le modifiche necessarie.
Poi esegui il comando terraform apply, che esegue le seguenti azioni:
Esegue il provisioning dell'infrastruttura in base al piano di esecuzione richiamando Google Cloud le API corrispondenti in background.
Viene creato un file di stato Terraform, ovvero una mappatura in formato JSON delle risorse nel file di configurazione alle risorse nell'infrastruttura reale. Terraform utilizza questo file per conoscere lo stato più recente della tua infrastruttura e per determinare quando creare, aggiornare ed eliminare le risorse.
Successivamente, quando esegui terraform apply, Terraform utilizza la mappatura nel
file dello stato per confrontare l'infrastruttura esistente con il codice e apportare
gli aggiornamenti necessari:
Se un oggetto della risorsa definito nel file di configurazione non esiste nel
file di stato, Terraform lo crea.
Se nel file dello stato esiste un oggetto della risorsa, ma la sua configurazione è diversa da quella del file di configurazione, Terraform aggiorna la risorsa in modo che corrisponda al file di configurazione.
Se un oggetto della risorsa nel file dello stato corrisponde al tuo file di configurazione, Terraform lascia la risorsa invariata.
Google Cloud fornitori
Esistono due fornitori che ti consentono di eseguire il provisioning e gestire Google Cloud
l'infrastruttura:
google: utilizza questo provider per eseguire il provisioning e gestire le API. Google Cloud
google-beta: utilizza questo provider per eseguire il provisioning e gestire Google Cloud
le API beta.
I fornitori google e google-beta vengono sviluppati utilizzando uno strumento chiamato
Magic Modules. Magic Modules consente ai collaboratori di apportare modifiche a un singolo codebase e di sviluppare contemporaneamente i provider google e google-beta.
[[["Facile da capire","easyToUnderstand","thumb-up"],["Il problema è stato risolto","solvedMyProblem","thumb-up"],["Altra","otherUp","thumb-up"]],[["Difficile da capire","hardToUnderstand","thumb-down"],["Informazioni o codice di esempio errati","incorrectInformationOrSampleCode","thumb-down"],["Mancano le informazioni o gli esempi di cui ho bisogno","missingTheInformationSamplesINeed","thumb-down"],["Problema di traduzione","translationIssue","thumb-down"],["Altra","otherDown","thumb-down"]],["Ultimo aggiornamento 2025-09-02 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)"]]