Ricerca nel sito web

Come utilizzare i moduli del registro Terraform


Su questa pagina

  1. Di cosa parleremo?
  2. Controllo pre-volo
  3. Utilizzo dei moduli del registro Terraform
  4. Esplorazione del registro Terraform
  5. Avvio di un'istanza EC2 utilizzando un modulo
  6.  Concludendo...

Il registro Terraform è un luogo in cui è possibile trovare diversi provider e moduli (configurazioni Terraform riutilizzabili) e utilizzarli con Terraform. Include contributori come HashiCorp, fornitori di terze parti e la comunità Terraform. Questo registro ha lo scopo di fornire plug-in per la gestione di varie API dell'infrastruttura, rendendo disponibili i moduli esistenti per la creazione rapida di componenti dell'infrastruttura di uso comune e dimostrando modi per sviluppare codice Terraform scritto in modo efficiente.

Cosa copriremo?

In questo tutorial vedremo come utilizzare i moduli di Terraform Registry. Lo vedremo dimostrando un esempio di creazione di un'istanza EC2 su AWS.

Controllo pre-volo

Per questo tutorial abbiamo bisogno dei seguenti prerequisiti:

  1. Terraform da installare sul sistema locale.
  2. Conoscenza di base dei moduli Terraform.
  3. Account AWS.

Utilizzo dei moduli del registro Terraform

I moduli per diversi provider sono gestiti dal registro Terraform. I moduli possono essere cercati dalla pagina del registro. Si noti inoltre che mentre si effettua una ricerca solo i moduli verificati vengono elencati nei risultati della ricerca. Questi moduli vengono controllati da HashiCorp per confermarne la compatibilità e la stabilità. I moduli non verificati possono anche essere elencati utilizzando l'opzione di filtraggio della ricerca.

È possibile fare riferimento ai moduli pubblicati in Terraform Registry in un tipico codice Terraform utilizzando la sintassi:

<NAMESPACE>/<Name of module>/<Name of Provider>

Ad esempio, guarda l'utilizzo di seguito del modulo dal registro Terraform:

module "vpc" {
  source = "terraform-aws-modules/vpc/aws"
}

L'esempio precedente utilizza un modulo VPC dal registro Terraform per AWS. L'esecuzione del comando terraform init recupererà e memorizzerà i moduli a cui fa riferimento un codice Terraform.

Terraform Registry prevede l'utilizzo di moduli pubblici e privati. Il registro pubblico di Terraform consente apertamente la pubblicazione e l'utilizzo di provider e moduli. I moduli privati possono essere pubblicati utilizzando un registro privato.

Esplorare il registro Terraform

La pagina del modulo mostra alcuni brevi dettagli sul modulo come la descrizione del modulo, la data di pubblicazione, l'url del codice sorgente, le statistiche di download ecc. Puoi anche vedere qui varie schede per Leggimi, Input, Output, Dipendenza e Risorse. Possiamo fare riferimento a queste sezioni per selezionare le variabili da impartire nel nostro codice.

Sono inoltre disponibili esempi che dimostrano l'utilizzo del modulo, ad esempio in questa guida viene utilizzato un modulo per la creazione di un'istanza EC2. Prima di immergerci in questo esempio, diamo un'occhiata all'interno del codice sorgente di questo modulo. Apri l'URL del codice sorgente. Nella pagina github, ci sono alcune cartelle e alcuni file per questo modulo. Per ora ci concentriamo solo sui tre file terraform: main.tf, outputs.tf e variable.tf. Il file main.tf contiene molte righe che descrivono un'istanza EC2. Allo stesso modo, variable.tf e outputs.tf hanno un numero di dichiarazioni di valori di input e output.

Avvio di un'istanza EC2 utilizzando un modulo

Vediamo ora come possiamo utilizzare un modulo dal registro Terraform. Creeremo un'istanza EC2 utilizzando un modulo da terraform-aws-modules.

Passaggio 1. Apri la pagina Web del registro Terraform e cerca il modulo aws per EC2:

Ora, guarda il file di configurazione qui sotto che abbiamo creato localmente sul nostro sistema per lavorare con questo modulo. In questo file abbiamo incluso il modulo sopra usando l'argomento 'source'. Abbiamo usato solo poche dichiarazioni dal modulo vero e proprio come descritto qui:

$ nano myinstance.tf
provider "aws" {
  region = "us-east-1"
}

module "ec2_instance" {
  source  = "terraform-aws-modules/ec2-instance/aws"
  version = "~> 3.0"

  name = "single-instance"

  ami                    = "ami-0022f774911c1d690"
  instance_type          = "t2.micro"
 availability_zone    ="us-east-1a"
  key_name               = "Your-Key-pair-name"
  monitoring             = true
  vpc_security_group_ids = ["Security-Group-ID"]
 putin_khuylo    = true

  tags = {
    Terraform   = "true"
    Environment = "dev"
  }
}

In questa configurazione, ci sono due argomenti: source e version.

  1. source: questo argomento è necessario quando viene utilizzato un modulo Terraform. Nella configurazione di esempio sopra, Terraform esaminerà il registro Terraform per l'indirizzo del modulo indicato. Qui possono essere utilizzati anche moduli locali, URL e altre fonti.
  2. versione: è un argomento facoltativo ma si consiglia di utilizzarlo quando si lavora con un modulo Terraform. Se incluso, carica la versione specificata del modulo Terraform per le origini supportate. Se non utilizzato, verrà caricata l'ultima versione del modulo disponibile.

Per iniziare, innanzitutto, inizializza la directory contenente il nostro file locale myinstance.tf. Esegui il comando:


Ora esegui il piano terraform o utilizza il comando terraform apply per applicare direttamente le modifiche:

$ terraform apply

Immettere sì quando richiesto. Questo avvierà il processo di applicazione delle modifiche.

Concludendo…

In questa guida abbiamo visto come possono essere utilizzati i moduli del registro Terraform. Allo stesso modo prova a configurare un VPC utilizzando un modulo Terraform.