Skip to content

Comandi principali Terraform

Terraform - Workflow

Comando Descrizione
terraform init Inizializza il progetto, scarica provider e moduli.
terraform init -upgrade Aggiorna provider e moduli all'ultima versione compatibile.
terraform validate Verifica la sintassi e la validità della configurazione.
terraform fmt Formatta automaticamente tutti i file .tf.
terraform plan Mostra le modifiche che verranno applicate.
terraform apply Applica le modifiche.
terraform apply -auto-approve Applica senza chiedere conferma.
terraform destroy Elimina tutte le risorse gestite.
terraform destroy -target=aws_s3_bucket.logs Elimina solo una specifica risorsa.

Terraform - State

Comando Descrizione
terraform state list Elenca tutte le risorse presenti nello state.
terraform state show <risorsa> Mostra il dettaglio di una risorsa nello state.
terraform state mv <src> <dst> Sposta una risorsa nello state (refactoring, cambio modulo, rename).
terraform state rm <risorsa> Rimuove una risorsa dallo state senza eliminarla su AWS.
terraform state pull Scarica lo state remoto.
terraform state pull > backup.tfstate Esegue il backup dello state.
terraform state push backup.tfstate Ripristina uno state precedentemente salvato.

Terraform - Output

Comando Descrizione
terraform output Mostra tutti gli output.
terraform output vpc_id Mostra un singolo output.
terraform output -json Restituisce gli output in formato JSON.
terraform output -json \| jq Visualizza gli output in formato leggibile.

Terraform - Provider e Moduli

Comando Descrizione
terraform providers Elenca provider richiesti da root, moduli e state.
terraform providers lock Aggiorna il lock file dei provider.
terraform version Mostra la versione di Terraform e dei provider installati.

Terraform - Workspace

Comando Descrizione
terraform workspace list Elenca i workspace.
terraform workspace new dev Crea un nuovo workspace.
terraform workspace select dev Seleziona un workspace.
terraform workspace show Mostra il workspace corrente.
terraform workspace delete dev Elimina un workspace.

Terraform - Import

Comando Descrizione
terraform import aws_s3_bucket.logs mio-bucket Importa una risorsa AWS nello state.
terraform import module.vpc.aws_vpc.this[0] vpc-xxxxxxxx Importa una risorsa direttamente in un modulo.

Terraform - Console

Comando Descrizione
terraform console Apre una console interattiva per testare espressioni Terraform.

Terraform - Utility

Comando Descrizione
terraform graph Genera il grafo delle dipendenze.
terraform graph \| dot -Tpng > graph.png Esporta il grafo delle dipendenze in PNG (richiede Graphviz).
terraform fmt -recursive Formatta ricorsivamente tutto il progetto.
terraform plan -out=tfplan Salva il piano su file.
terraform apply tfplan Applica un piano precedentemente salvato.

Comandi utili GitLab Backend

Comando Descrizione
terraform state pull > backup-$(date +%F-%H%M).tfstate Backup dello state remoto prima di modifiche importanti.
terraform state push backup.tfstate Ripristina il backup dello state remoto.
terraform init -reconfigure Reinizializza il backend dopo modifiche alla configurazione.

Comandi consigliati durante lo sviluppo

terraform fmt -recursive
terraform validate
terraform plan

Comandi consigliati prima di modificare lo State

terraform state pull > backup.tfstate
terraform state list
terraform plan

Comandi consigliati dopo un refactoring

terraform state mv ...
terraform plan
terraform apply