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 cloud provider e altre API. Puoi utilizzare il provider Terraform per Google Cloud per eseguire il provisioning e gestire le risorse Google Cloud, tra cui Compute Engine.
Come funziona Terraform
Terraform ha una sintassi dichiarativa e orientata alla configurazione, che puoi per descrivere l'infrastruttura di cui vuoi eseguire il provisioning progetto Google Cloud. Dopo aver creato questa configurazione in una o più Nei file di configurazione di Terraform, puoi utilizzare l'interfaccia a riga di comando di Terraform per applicare configurazione alle tue risorse Compute Engine.
I passaggi seguenti spiegano come funziona Terraform:
- Descrivi l'infrastruttura di cui vuoi eseguire il provisioning in un Terraform di configurazione del deployment. Non è necessario scrivere codice che descriva come eseguire il provisioning dell'infrastruttura. Terraform esegue il provisioning dell'infrastruttura per te.
- Esegui il comando
terraform plan
, che valuta la configurazione e genera un piano di esecuzione. Puoi esaminare il piano e apportare le modifiche necessarie. -
Esegui il comando
terraform apply
, che esegue le seguenti azioni:- 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 del file di configurazione alle risorse nell'infrastruttura reale. Terraform utilizza questo file per tenere un registro 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.
Guide basate su Terraform per Compute Engine
Nella tabella seguente sono elencate tutte le guide e i tutorial basati su Terraform per Compute Engine:
Guida | Dettagli |
---|---|
Crea avvia un'istanza Compute Engine | Spiega come creare un'istanza di una macchina virtuale (VM). |
Crea una VM con un SSD locale dischi | Spiega come creare una VM con spazio di archiviazione su disco SSD locale. |
Crea disco snapshot | Spiega come creare snapshot standard di cui eseguire periodicamente il backup e i dati provenienti dai dischi. |
Duplicare un disco con i cloni | Spiega come creare cloni di dischi a livello di zona di un disco esistente. |
Crea gestire dischi replicati in modo sincrono | Spiega come creare e gestire i dischi replicati. |
Creazione e utilizzo Spot VM | Spiega come creare e gestire le VM spot. Le VM spot sono istanze VM che rappresentano l'eccesso di capacità di Compute Engine. Le VM spot sono disponibili all'indirizzo molto più bassi rispetto al prezzo on demand delle VM standard |
Aggiungi chiavi SSH a VM | Descrive come aggiungere chiavi SSH alle istanze VM che utilizzano OS Login VM che utilizzano chiavi SSH basate su metadati. |
Eseguire 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. |
Creare 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. |
Creare modelli di istanza | Descrive come creare e gestire i modelli di istanza. |
Scalabilità in base alle pianificazioni | Descrive come creare pianificazioni di scalabilità per un gruppo di istanze gestite esistente. La scalabilità automatica basata su pianificazione consente di migliorare la disponibilità carichi di lavoro pianificando la capacità prima del carico previsto. |
Aggiungi Archiviazione su Persistent Disk sulla VM | Spiega come creare un volume del disco permanente a livello di zona vuoto e non di avvio e collegarlo alla VM. |
Configura il sistema operativo Accedi | Descrive come configurare l'accesso OS. |
Collega un disco non di avvio a un VM | Spiega come collegare un disco a livello di zona non di avvio alla VM. |
Crea una VM che utilizza un account di servizio gestito dall'utente | Spiega come creare un'istanza VM configurata per l'utilizzo di un'istanza VM account di servizio dall'utente. Un account di servizio è un tipo speciale di account utilizzato in genere da un'applicazione o da un carico di lavoro di calcolo per effettuare chiamate API autorizzate. |
Aumenta le dimensioni di un disco permanente | Spiega come aumentare le dimensioni di un disco permanente. |
Abilitare i display virtuali su una VM | Descrive come attivare i display virtuali su un'istanza VM. |
Crea un gruppo di istanze gestite in una singola zona | Descrive come creare un gruppo di istanze gestite (MIG) in una singola zona. Mettere tutte le VM del gruppo di istanze gestite in un'unica zona latenza, che è utile per determinati carichi di lavoro, ad esempio carichi di lavoro con scale out impegnativi. |
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à basato sull'applicazione e la riparazione automatica | Descrive come configurare un controllo di integrità basato sull'applicazione per la riparazione automatica VM in un gruppo di istanze gestite. |
Crea un gruppo di istanze gestite che utilizza VM prerilasciabili | Descrive come creare un gruppo di istanze gestite che utilizza istanze VM prerilasciabili. Le VM prerilasciabili sono utili se il carico di lavoro può tollerare le interruzioni sfruttare i risparmi sui costi associati all'uso delle VM in esecuzione. |
Aggiungere e rimuovere VM da un gruppo di istanze gestite | Descrive come aggiungere e rimuovere VM da un gruppo di istanze gestite. |
Crea un gruppo di istanze gestite con la scalabilità automatica abilitata | Descrive come creare un gruppo di istanze gestite con scalabilità automatica che aggiunge e rimuove automaticamente le VM in base all'utilizzo medio della CPU nel gruppo. |
Crea un gruppo di istanze gestite con dischi stateful | Descrive come creare un gruppo di istanze gestite che utilizza istanze VM prerilasciabili. Le VM prerilasciabili sono utili se il tuo carico di lavoro può tollerare le interruzioni e vuoi sfruttare i risparmi sui costi associati alle VM prerilasciabili. |
Creazione di istanze VM SQL Server | Spiega come creare istanze VM di Microsoft SQL Server. SQL Server è un sistema di database che viene eseguito su Windows Server e su alcuni distribuibili. Puoi usare SQL Server su Compute Engine come parte il backend per le tue applicazioni, come un ambiente di sviluppo dell'ambiente di rete o in aggiunta ai sistemi on-premise per il backup ripristino di emergenza. |
Creare un'assegnazione dei criteri del sistema operativo | Spiega come creare un'assegnazione dei criteri del sistema operativo. Puoi utilizzare i criteri 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 le proprietà 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 gruppi di istanze gestite. Configurare dischi permanenti per essere stateful ti consente di trarre vantaggio dalla VM della riparazione automatica dell'istanza e degli aggiornamenti automatici, preservando lo stato dei dischi. |
Configurazione di indirizzi IP stateful nei gruppi di istanze gestite | Descrive come configurare gli indirizzi IP stateful nei gruppi di istanze gestite. Configurando gli indirizzi IP stateful in un gruppo di istanze gestite, ti assicuri che vengano conservati quando le istanze VM del gruppo vengono riparate automaticamente, aggiornate e ricreate. |
Imposta una forma di distribuzione di destinazione per le VM in un gruppo di istanze gestite a livello di regione | Spiega come impostare una forma di distribuzione di destinazione per le VM. |
Crea un gruppo di istanze gestite con VM in più zone di una regione | Descrive come creare un gruppo di istanze gestite in cui le VM siano distribuite in più zone all'interno di una regione. Distribuzione del carico dell'applicazione su più zone protegge il carico di lavoro da errori a livello di zona. |
Disattivare e riattivare la ridistribuzione proattiva delle VM in un gruppo di istanze gestite a livello di regione | Descrive come disattivare e riattivare la ridistribuzione proattiva delle VM in un gruppo di istanze gestite a livello di regione. In un gruppo di istanze gestite regionale, 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 errore a livello di zona. |
Moduli e progetti Terraform per Compute Engine
I moduli e i progetti ti aiutano ad automatizzare il provisioning e la gestione delle risorse Google Cloud su larga scala. Un modulo è un insieme riutilizzabile di file di configurazione di Terraform che crea un'astrazione logica delle risorse Terraform. Un progetto è un pacchetto di strumenti di cui è possibile eseguire il deployment e riutilizzabili moduli, oltre a un criterio che implementa e documenta una soluzione specifica.
La tabella seguente elenca tutti i moduli e i progetti correlati Compute Engine:
Modulo o progetto | Dettagli |
---|---|
terraform-google-vm |
Raccolta di sottomoduli guidati che puoi usare per creare i blocchi per il provisioning delle VM in Google Cloud. |
terraform-google-startup-scripts |
Fornisce una libreria di utili script di avvio da incorporare nelle VM. |
terraform-google-container-vm |
Esegue il deployment dei container su istanze di Compute Engine |
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 calcolo.
La seguente tabella elenca le risorse Terraform disponibili per Compute Engine:
Passaggi successivi
- Esempi di codice Terraform per Compute Engine
- Documentazione di Terraform su Google Cloud
- Documentazione del provider Google Cloud in HashiCorp
- Infrastructure as Code per Google Cloud