Mostrar información usando outputs en Terraform

Índice

En ocasiones, es necesario obtener alguna información relacionada con los recursos que se crean de forma automática con Terraform. Para ello se pueden usar los outputs como se muestra en este artículo.

Configurar outputs

Los outputs de Terraform se configuran en un fichero llamado outputs.ft con bloques con el formato output "<nombre_output>" {}. Cada bloque debe contener la información del valor que debe devolver cada output en el campo value. Además, es recomendable incluir una descripción del output en el campo description.

output "vcn_state" {
  description = "El estado de la VCN."
  value       = oci_core_vcn.mi_vcn.state
}

output "vcn_cidr" {
  description = "Bloque de direcciones CIDR de la VCN"
  value       = oci_core_vcn.mi_vcn.cidr_block
}

Ver el resultado de los outputs

Para poder usar los outputs hay que planificar y aplicar antes la configuración. Tanto al planificar como al aplicar la configuración de una infraestructura ya creada (como es este caso, ya que se usa la infraestructura creada en este otro post) la salida del comando terraform plan o terraform apply muestra los valores que se cambian a tipo output:

❯ terraform plan
oci_core_vcn.mi_vcn: Refreshing state... [id=<OCID de la VCN>]
oci_core_subnet.private_subnet: Refreshing state... [id=<OCID de la subred>]

Changes to Outputs:
  + vcn_cidr  = "172.22.0.0/16"
  + vcn_state = "AVAILABLE"

You can apply this plan to save these new output values to the Terraform state,
without changing any real infrastructure.

───────────────────────────────────────────────────────────────────────────────

Note: You didn't use the -out option to save this plan, so Terraform can't
guarantee to take exactly these actions if you run "terraform apply" now.

Sin embargo, para poder volver a consultar la información de estos outputs en otro momento es imprescindible aplicar la configuración. En la salida del comando terraform apply se muestran los outputs configurados:

❯ terraform apply
oci_core_vcn.mi_vcn: Refreshing state... [id=<OCID de la VCN>]
oci_core_subnet.private_subnet: Refreshing state... [id=<OCID de la subred>]

Changes to Outputs:
  + vcn_cidr  = "172.22.0.0/16"
  + vcn_state = "AVAILABLE"

You can apply this plan to save these new output values to the Terraform state,
without changing any real infrastructure.

Do you want to perform these actions?
  Terraform will perform the actions described above.
  Only 'yes' will be accepted to approve.

  Enter a value: yes


Apply complete! Resources: 0 added, 0 changed, 0 destroyed.

Outputs:

vcn_cidr = "172.22.0.0/16"
vcn_state = "AVAILABLE"

Además, tras aplicar la configuración estos outputs se pueden volver a consultar en cualquier momento con el comando terraform output:

❯ terraform output
vcn_cidr = "172.22.0.0/16"
vcn_state = "AVAILABLE"
comments powered by Disqus

Relacionados

Configuración NAT en routers Linux en Openstack

En este post se usa una plantilla YAML para crear una red en Openstack y demostrar el funcionamiento del NAT. NAT (Network Address Translation o traducción de direcciones de red) es un mecanismo que consiste en modificar la información de direccionamiento en los paquetes IP que atraviesan un router.

Leer

Sistemas operativos inmutables

La inmutabilidad de los sistemas operativos se refiere a la característica de estos que impide al usuario modificar libremente el sistema de archivos raíz con el objetivo de evitar los problemas que esto puede provocar. En este post se analizan algunos de estos sistemas operativos y se valoran sus ventajas e inconvenientes.

Leer

Así funciona IPv6: configuración en router Linux y Cisco

IPv6 es una actualización del protocolo IPv4 que nace ante la escasez de direcciones que IPv4 permite. Las direcciones IPv6 están formada por 32 caracteres hexadecimales en grupos de cuatro caracteres separados por el carácter dos puntos (:). En este post se recogen varios ejemplos prácticos del funcionamiento de este protocolo.

Leer