Aquesta és una revisió antiga del document
Terraform
cli
básicos
- init : Initialize a new or existing Terraform configuration
- validate : Validates the Terraform files
- plan : Generate and show an execution plan
- fmt : Rewrites config files to canonical format
- apply : Builds or changes infrastructure
- graph : Create a visual graph of Terraform resources
- output : Read an output from a state file
- destroy : Destroy Terraform-managed infrastructure
otros
- refresh : Update local state file against real resources
- show : Inspect Terraform state or plan
- taint : Manually mark a resource for recreation
- untaint : Manually unmark a resource as tainted
- debug : Debug output management (experimental)
- force-unlock : Manually unlock the terraform state
- state : Advanced state management
autocomplete
terraform --install-autocomplete
: bash/zshterraform --uninstall-autocomplete
documentación
enlaces documentación
de interés
output
- volcar información a fichero:
resource "local_file" "foo" { content = "${tls_private_key.vm_adwriter.private_key_pem}" filename = "${path.cwd}/vm_adwriter.key" }
- desencriptar password windows:
output "ec2_password" { value = "${rsadecrypt(aws_instance.vm_adwriter.password_data, file("${path.cwd}/vm_adwriter.key"))}" }
mapas
- usando var.aws_region como índice del mapa para seleccionar la imagen adecuada en función de la región
- terraform.tfvars
aws_region = "eu-west-3" # París
- main.tf
variable "aws_region" { type = "string" } variable "amis-aws-windows2016base" { # Windows_Server-2016-English-Full-Base-2019.02.13 type = "map" default = { us-east-1 = "ami-0bf148826ef491d16" # Virigina eu-west-3 = "ami-0e3f0a08a6950f3e2" # París } }
resource "aws_instance" "bastion_ad" { ami = "${lookup(var.amis-aws-windows2016base, var.aws_region)}" instance_type = "t2.micro" ... }