# Obtener información sobre la versión de Terraform:
$ terraform version
# Mostrar ayuda para un comando específico:
$ terraform -h
# Validar la configuración de Terraform:
$ terraform validate
# Mostrar el estado actual de Terraform:
$ terraform show
# Importar recursos existentes en el estado de Terraform:
$ terraform import resource_type.resource_name resource_id
# Crear un archivo de plan y guardarlo:
$ terraform plan -out=tfplan
# Mostrar solo los cambios aprobados:
$ terraform plan -detailed-exitcode
# Mostrar cambios en formato JSON:
$ terraform show -json tfplan
# Ejecutar un plan con auto-aprobación:
$ terraform apply -auto-approve
# Ejecutar un plan en un directorio específico:
$ terraform plan /ruta/del/directorio
# Destruir la infraestructura creada:
$ terraform destroy
# Destruir solo un recurso específico:
$ terraform destroy -target=resource_type.resource_name
# Destruir con auto-aprobación:
$ terraform destroy -auto-approve
# Destruir en un directorio específico:
$ terraform destroy /ruta/del/directorio
# Destruir en un workspace específico:
$ terraform workspace select nombre_del_workspace && terraform destroy
# Definir variables en un archivo de configuración:
$ terraform apply -var='variable_name=value'
# Mostrar valores de salida después de aplicar:
$ terraform output
# Especificar archivo de variables:
$ terraform apply -var-file=variables.tfvars
# Crear y utilizar módulos reutilizables:
$ terraform init -from-module=source_module
# Crear un archivo de salida personalizado:
$ terraform output -json > output.json
# Crear un nuevo workspace:
$ terraform workspace new nombre_del_workspace
# Mostrar el workspace actual:
$ terraform workspace show
# Cambiar al workspace especificado:
$ terraform workspace select nombre_del_workspace
# Eliminar un workspace:
$ terraform workspace delete nombre_del_workspace
# Listar todos los workspaces:
$ terraform workspace list
# Mover el archivo de estado a un nuevo backend:
$ terraform init -backend-config=backend.hcl
# Forzar una operación de bloqueo en el estado:
$ terraform force-unlock LOCK_ID
# Mostrar un resumen del estado actual:
$ terraform state list
# Mostrar detalles de un recurso específico en el estado:
$ terraform state show resource_type.resource_name
# Eliminar un recurso del estado:
$ terraform state rm resource_type.resource_name
# Configurar un backend remoto S3:
$ terraform init -backend-config=s3-backend.hcl
# Configurar un backend remoto Azure Storage:
$ terraform init -backend-config=azure-backend.hcl
# Configurar un backend remoto HTTP:
$ terraform init -backend-config=http-backend.hcl
# Configurar un backend remoto Consul:
$ terraform init -backend-config=consul-backend.hcl
# Configurar un backend remoto GCS:
$ terraform init -backend-config=gcs-backend.hcl
# Crear un módulo personalizado:
$ terraform init -module-depth=-1
# Utilizar un módulo en tu configuración:
module "nombre_del_modulo" { source = "./ruta_del_modulo" }
# Crear un módulo con variables de entrada y salida:
$ terraform init -module-depth=-1
# Estructura recomendada para un módulo:
module "nombre_del_modulo" { source = "github.com/usuario/modulo" }
# Utilizar un módulo público desde el Terraform Registry:
module "nombre_del_modulo" { source = "terraform-aws-modules/ec2-instance/aws" }
# Inicializar un nuevo directorio de configuración:
$ terraform init
# Descargar y actualizar módulos de Terraform:
$ terraform get -update
# Inicializar y seleccionar un backend específico:
$ terraform init -backend-config=backend.hcl
# Mostrar la configuración del backend:
$ terraform show -backend=true
# Inicializar y seleccionar un workspace específico:
$ terraform workspace select nombre_del_workspace
# Configurar un proveedor específico:
provider "aws" { region = "us-west-2" }
# Utilizar múltiples proveedores en un archivo:
provider "aws" { region = "us-west-2" }
provider "google" { credentials = file("account.json") }
# Configurar alias para proveedores:
provider "aws" { alias = "primary" }
# Configurar proveedores personalizados:
provider "custom" { version = "1.2.3" }
# Utilizar proveedores específicos en módulos:
provider "aws" { region = "us-east-1" }