HashiCorp Terraform è uno strumento Infrastructure as Code (IaC) che consente di eseguire il provisioning e di gestire l'infrastruttura cloud. Terraform fornisce plug-in noti con il nome provider che ti consentono di interagire con i provider cloud e altre API. Puoi utilizzare il provider Terraform per Trusted Cloud per eseguire il provisioning e gestire le risorse Trusted Cloud by S3NS , tra cui Compute Engine.
Questa pagina illustra come utilizzare Terraform con Compute Engine, inclusa un'introduzione al funzionamento di Terraform e alcune risorse per iniziare a utilizzare Terraform con Trusted Cloud. Troverai anche link alla documentazione di riferimento di Terraform per Compute Engine, esempi di codice e guide per l'utilizzo di Terraform per il provisioning delle risorse Compute Engine.
Per istruzioni su come iniziare a utilizzare Terraform per Trusted Cloud, consulta Installa e configura Terraform o la guida rapida a Terraform per Trusted Cloud .
Come funziona Terraform
Terraform ha una sintassi dichiarativa e orientata alla configurazione che puoi utilizzare per descrivere l'infrastruttura di cui vuoi eseguire il provisioning nel tuo progetto Trusted Cloud . Dopo aver creato questa configurazione in uno o più file di configurazione Terraform, puoi utilizzare Terraform CLI per applicarla alle risorse Compute Engine.
I passaggi seguenti spiegano come funziona Terraform:
- Puoi descrivere l'infrastruttura di cui vuoi eseguire il provisioning in un file di configurazione Terraform. Non è necessario scrivere codice che descriva come eseguire il provisioning dell'infrastruttura. Terraform esegue il provisioning dell'infrastruttura per conto tuo.
- Puoi eseguire il comando
terraform plan
, che valuta la configurazione e genera un piano di esecuzione. Puoi anche rivedere il piano e apportare le modifiche necessarie. -
Puoi eseguire il comando
terraform apply
che:- Esegue il provisioning dell'infrastruttura in base al piano di esecuzione richiamando le API Compute Engine corrispondenti in background.
- Crea un file di stato Terraform, ovvero un file JSON che mappa le risorse nel tuo file di configurazione alle risorse nell'infrastruttura reale. Terraform utilizza questo file per tenere traccia dello stato più recente dell'infrastruttura e per determinare quando creare, aggiornare ed eliminare le risorse.
-
Quando esegui
terraform apply
, Terraform utilizza la mappatura nel file di stato per confrontare l'infrastruttura esistente con il codice e apportare gli aggiornamenti necessari:- Se un oggetto della risorsa è definito nel file di configurazione, ma non esiste nel file dello 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.
Risorse Terraform per Compute Engine
Le risorse sono gli elementi fondamentali del linguaggio Terraform. Ogni blocco di risorse descrive uno o più oggetti di infrastruttura, come reti virtuali o istanze di computing.
La tabella seguente elenca le risorse Terraform disponibili per Compute Engine:
Guide basate su Terraform per Compute Engine
La seguente tabella elenca guide illustrative e tutorial basati su Terraform per Compute Engine:
Guida | Dettagli |
---|---|
Crea e avvia un'istanza di Compute Engine | Spiega come creare un'istanza di una macchina virtuale (VM). |
Crea una VM con dischi SSD locali | Spiega come creare una VM con spazio di archiviazione su disco SSD locale. |
Crea snapshot dei dischi | Spiega come creare snapshot standard per eseguire periodicamente il backup dei dati dai dischi. |
Duplica un disco con i cloni | Spiega come creare cloni di dischi di zona di un disco esistente. |
Crea e gestisci i dischi regionali | Spiega come creare e gestire i dischi regionali. |
Crea e utilizza VM spot | Spiega come creare e gestire le VM spot. Le VM spot sono istanze VM che rappresentano la capacità in eccesso di Compute Engine. Le VM spot sono disponibili a prezzi molto inferiori rispetto al prezzo on demand delle VM standard |
Aggiungi chiavi SSH alle VM | Descrive come aggiungere chiavi SSH alle istanze VM che utilizzano OS Login e alle VM che utilizzano chiavi SSH basate su metadati. |
Esecuzione degli script di arresto | Spiega come creare ed eseguire script di arresto che eseguono comandi subito prima dell'arresto o del riavvio di un'istanza VM. |
Crea una prenotazione per un singolo progetto | Spiega come creare una prenotazione per un singolo progetto, che può essere utilizzata solo dalle istanze VM nello stesso progetto. |
Crea modelli di istanza | Descrive come creare e gestire i modelli di istanza. |
Scalabilità basata sulle pianificazioni | Descrive come creare pianificazioni di scalabilità per un MIG esistente. La scalabilità automatica basata sulla pianificazione consente di migliorare la disponibilità dei workload pianificando la capacità in anticipo rispetto al carico previsto. |
Aggiungi spazio di archiviazione di disco permanente alla VM | Spiega come creare un volume del disco permanente vuoto a livello di zona e non di avvio, per poi collegarlo alla VM. |
Configura OS Login | Descrive come configurare OS Login. |
Collega un disco non di avvio a una VM | Spiega come collegare un disco a livello di zona e non di avvio alla VM. |
Crea una VM che utilizza un service account gestito dall'utente | Spiega come creare un'istanza VM configurata per utilizzare un service account gestito dall'utente. Un service account è un tipo speciale di account utilizzato in genere da un'applicazione o da un workload di computing per effettuare chiamate API autorizzate. |
Aumenta le dimensioni di un disco permanente | Spiega come aumentare le dimensioni di un disco permanente. |
Attiva i display virtuali su una VM | Descrive come attivare i display virtuali su un'istanza VM. |
Crea un MIG in un'unica zona | Descrive come creare un gruppo di istanze gestite (MIG) in un'unica zona. Avere tutte le VM del MIG in un'unica zona consente di ridurre al minimo la latenza, aspetto utile per alcuni workload, ad esempio quelli batch. |
Crea un'istanza VM con un nome host personalizzato | Spiega come creare un'istanza VM con un nome host personalizzato. |
Configura un controllo di integrità e la riparazione automatica basati sull'applicazione | Descrive come configurare un controllo di integrità basato su applicazione per riparare automaticamente le VM in un MIG. |
Crea un MIG che usa VM preemptible | Descrive come creare un MIG che usa istanze VM preemptible. Le VM preemptible sono utili se il tuo workload può tollerare le interruzioni e vuoi sfruttare i risparmi sui costi associati alle VM preemptible. |
Aggiungi e rimuovi VM da un MIG | Descrive come aggiungere e rimuovere VM da un MIG. |
Crea un MIG con la scalabilità automatica abilitata | Descrive come creare un MIG con scalabilità automatica che aggiunge e rimuove automaticamente le VM in base all'utilizzo medio della CPU nel gruppo. |
Crea un MIG con dischi stateful | Descrive come creare un MIG che usa istanze VM preemptible. Le VM preemptible sono utili se il tuo workload può tollerare le interruzioni e vuoi sfruttare i risparmi sui costi associati alle VM preemptible. |
Creazione di istanze VM SQL Server | Spiega come creare istanze VM Microsoft SQL Server. SQL Server è un sistema di database che viene eseguito su Windows Server e su alcune distribuzioni Linux. Puoi utilizzare SQL Server su Compute Engine come parte del backend per le tue applicazioni, come ambiente di sviluppo e test flessibile o in aggiunta ai tuoi sistemi on-premise per il backup e il disaster recovery. |
Crea un'assegnazione delle policy del sistema operativo | Spiega come creare un'assegnazione delle policy del sistema operativo. Puoi utilizzare le policy del sistema operativo per mantenere configurazioni software coerenti nelle istanze VM Linux e Windows. |
Configurazione dei metadati stateful nei MIG | Descrive come configurare i metadati stateful nei MIG. I metadati dell'istanza sono utili per impostare proprietà per le tue applicazioni e comunicare con le tue applicazioni tramite il server dei metadati. |
Configurazione dei dischi permanenti stateful nei MIG | Spiega come configurare i dischi permanenti stateful nei MIG. La configurazione dei dischi permanenti come stateful ti consente di usufruire della riparazione automatica delle istanze VM e degli aggiornamenti automatici, preservando al contempo lo stato dei dischi. |
Configurazione di indirizzi IP stateful nei MIG | Descrive come configurare gli indirizzi IP stateful nei MIG. La configurazione di indirizzi IP stateful in un MIG, assicura che gli indirizzi IP vengano conservati quando le istanze VM nel gruppo vengono riparate automaticamente, aggiornate e ricreate. |
Imposta una forma di distribuzione di destinazione per le VM in un MIG a livello di regione | Spiega come impostare una forma di distribuzione di destinazione per le VM. |
Crea un MIG con VM in più zone all'interno di una regione | Descrive come creare un MIG in cui le VM siano distribuite in più zone all'interno di una regione. La distribuzione del carico dell'applicazione in più zone protegge il tuo workload da errori a livello di zona. |
Disattiva e riattiva la ridistribuzione proattiva delle VM in un MIG a livello di regione | Descrive come disattivare e riattivare la ridistribuzione proattiva delle VM in un MIG a livello di regione. In un MIG a livello di regione, per mantenere un numero pari di istanze VM nelle zone selezionate della regione, utilizza la ridistribuzione proattiva delle istanze. Questa opzione di configurazione massimizza la disponibilità della tua applicazione in caso di guasto a livello di zona. |
Moduli e progetti base Terraform per Compute Engine
I moduli e i progetti base ti aiutano ad automatizzare il provisioning e la gestione delle risorse Trusted Cloud su larga scala. Un modulo è un insieme riusabile di file di configurazione di Terraform che crea un'astrazione logica delle risorse Terraform. Un progetto base è un pacchetto di moduli di cui è possibile eseguire il deployment e che sono riutilizzabili, nonché una policy che implementa e documenta una soluzione specifica.
La tabella seguente elenca i moduli e i progetti base relativi a Compute Engine:
Modulo o progetto base | Dettagli |
---|---|
terraform-google-vm |
Raccolta di sottomoduli guidati che puoi utilizzare come componenti di base per eseguire il provisioning delle VM in Trusted Cloud. |
terraform-google-startup-scripts |
Fornisce una raccolta di script di avvio utili da incorporare nelle VM. |
terraform-google-container-vm |
Esegue il deployment di container sulle istanze Compute Engine |
Passaggi successivi
- Esempi di codice Terraform per Compute Engine
- Documentazione di Terraform su Trusted Cloud
- Documentazione del providerTrusted Cloud in HashiCorp
- Infrastructure as Code per Trusted Cloud