Cómo utilizar la interfaz de línea de comandos (CLI) de Terraform en Ubuntu

Terraform es un marco para construir y configurar la infraestructura como código, con una interfaz de línea de comandos y un lenguaje DSL. Terraform puede gestionar proveedores de servicios existentes y populares, así como soluciones internas personalizadas para construir y configurar centros de datos distribuidos completos.

La interfaz de línea de comandos (CLI) de Terraform te permite utilizar Terraform sin tener que escribir ningún código o archivo de configuración. Es una forma ideal de hacer un prototipo de los cambios de infraestructura con tu equipo antes de escribir el código, desplegar las configuraciones localmente en tu máquina o ponerlas en producción. La CLI se basa en el formato de archivo terraformspec creado para este fin por terceros, como el kit de herramientas CLI de HashiCorp Nomad.

El kit de herramientas CLI implementa un DSL de JavaScript para definir la infraestructura y utiliza el mismo formato de configuración tanto en Terraform como en la CLI. El kit de herramientas CLI también proporciona comandos para generar plantillas de infraestructura, componer componentes de infraestructura en soluciones completas y gestionar los cambios. Todo el flujo de trabajo de Terraform está dirigido por funciones sin estado que se definen en el código y que Terraform ejecuta cada vez que haces un cambio. Esto te permite pensar en tu infraestructura como un único diseño que puede modificarse fácilmente en tiempo de ejecución sin recargar la configuración ni modificar tu base de código.

Numerosos profesionales y empresas de TI utilizan la interfaz de línea de comandos de Terraform para gestionar e incluso crear nuevas infraestructuras o nuevas infraestructuras en la nube. La interfaz de línea de comandos de Terraform puede proporcionar un método más robusto para automatizar los cambios que tardarían demasiado en realizarse a mano. Es una potente herramienta para gestionar la infraestructura.

Es fácil ver por qué Terraform es una de las soluciones de aprovisionamiento de la nube de código abierto más populares del mundo. ¡Es una herramienta utilizada por gente de Linux como tú!

En el interior, encontrarás explicaciones completas y ejemplos de los comandos CLI de Terraform más utilizados, que han sido especialmente seleccionados para darte experiencia práctica con las funciones más potentes de Terraform.

Requisitos previos

  • Para poder seguir este artículo, debes tener
  • Un cierto conocimiento básico de las características y funciones de Terraform.
  • Una máquina Linux. Esta demostración utiliza Ubuntu 20.04 LTS, pero cualquier distribución de Linux funcionará.
  • Terraform y docker instalados en la máquina.

Clonar el código principal

Ahora que te has ocupado de los requisitos previos, estás listo para empezar a clonar el código principal para utilizar la CLI de Terraform.

1. Ejecuta el comando apt install de abajo para instalar git en tu sistema. Git es un sistema de control de revisiones distribuido de código abierto, diseñado para manejar desde proyectos pequeños a muy grandes con rapidez y eficiencia. Utilizarás git para clonar la plantilla del proyecto de la interfaz de línea de comandos de terraformación desde github.com. Luego comprobarás la versión correcta de la línea de comandos de terraform para esta demostración.

sudo apt install git -y

instala git en tu sistema

2. Ejecuta el comando git clone que aparece a continuación para clonar la plantilla de proyecto de la línea de comandos de terraform en tu directorio actual.

git clone https://github.com/howtoforge-com/terraform-cli.git

clonar la plantilla de proyecto de línea de comandos de terraformación

3. Entra en el directorio terraform-cli recién clonado y abre el archivo main . tf con tu editor de texto favorito (vim, emacs, nano, etc). El archivo main.tf es el punto de entrada de tu proyecto a la interfaz de línea de comandos (Cli) de terraformación. Cuando ejecutas el comando terraform, utiliza el archivo main . tf como entrada para las instrucciones sobre cómo construir tu infraestructura.

cd terraform-cli && sudo nano main.tf

Obtendrás la siguiente salida.

abre el archivo main.tf con tu editor de texto favorito

  • La sección terraform{ } del archivo main . tf no hace nada más que establecer el proveedor docker como required_provider. Para que Terraform pueda gestionar tu infraestructura Docker, debes tener configurado el proveedor Docker.

vista previa de la sección de terraformación

  • El bloque de código resource «docker_image» «nginx» { demuestra el uso de la CLI de terraform creando un nuevo recurso llamado docker_image. La siguiente línea utiliza la imagen-docker para crear un recurso llamado nginx. Puedes deducir que se utilizará para gestionar tu contenedor Docker. La siguiente línea establece el nombre de tu imagen docker como nginx:latest. El keep_locally = false evita que la imagen se almacene en caché localmente en tu máquina y es una buena idea para evitar descargas duplicadas.

vista previa de la sección de recursos

  • Elrecurso «docker_container» «nginx» { demuestra el uso de la CLI de terraformación creando un nuevo recurso llamado docker_container. La siguiente línea utiliza el docker_container para crear un recurso llamado nginx. Éste se utilizará para gestionar la asignación de puertos de tu contenedor Docker. La siguiente línea establece el nombre de tu contenedor Docker como tutorial y, finalmente, demuestra cómo mapear el puerto 8000 y el puerto 80 de tu máquina anfitriona en tu contenedor Docker utilizando el bloque de puertos.

vista previa de la sección de recursos

Utilizar la interfaz de línea de comandos (CLI) de Terraform para construir tu primera infraestructura

Ahora que has clonado la plantilla del proyecto Terraform, puedes construir tu primera infraestructura. Utilizarás la CLI de Terraform para construir una infraestructura utilizando el archivo main.tf de tu proyecto. Crearás un contenedor docker y asignarás un puerto de tu máquina anfitriona al contenedor docker.

1. Primero, ejecuta el comando terraform init para inicializar tu directorio de trabajo. El comando terraform init inicializa tu directorio de trabajo y descarga los plugins necesarios para que Terraform gestione tu infraestructura. Un directorio de trabajo es el directorio en el que utilizarás el comando terraform para gestionar tu infraestructura. Una vez inicializado, este directorio contiene un archivo main.tf y puede contener varios archivos de apoyo.

terraform init

Al ejecutar con éxito el comando terraform init, recibirás la siguiente salida.

inicializa tu directorio de trabajo

2. El comando terraform fmt reformateará tu archivo main.tf para que sea legibley consistente. Esta es una buena práctica a seguir, ya que hará que tus archivos sean más fáciles de leer para ti y para los demás.

terraform fmt

Si el comando terraform fmt modificó tus archivos main.tf, imprimirá el nombre del archivo que ha reformateado. En esta demostración, la salida está en blanco porque el archivo main.tf ya estaba formateado a gusto de Terraform, como se muestra a continuación.

formatea tu archivo main.tf para que sea legible y coherente

3. Ejecuta el comando terraform validate para asegurarte de que tu infraestructura se construye como es debido. El comando terraform validate es una comprobación de seguridad para verificar que tu infraestructura puede construirse según lo previsto.

terraform validate

Si no hay errores, recibirás una salida similar a la siguiente, indicando que todo está listo para construir tu primera infraestructura.

valida tu infraestructura

4. Ejecuta el comando terraform plan para ver qué hará Terraform para construir la infraestructura. El comando terraform plan es una vista previa de lo que Terraform planea construir y no es lo mismo que terraform apply.

terraform plan

El comando terraform plan da como resultado la siguiente estructura, mostrando que creará una instancia del recurso docker_container llamada nginx y un recurso docker_image llamado tutorial.

Ver el plan de terraformación

5. Ejecuta el comando terraform apply para aplicar los cambios que has previsualizado con terraform plan. El comando terraform apply creará tu infraestructura. El comando terraform apply creará todos los recursos descritos en tu archivo de configuración Terraform main.tf.

Este comando reutilizará la evaluación de variables, restricciones y mapeos del comando terraformar plan para producir el plan más eficiente posible. Cualquier opción adicional especificada en la línea de comandos con terraformar aplicar se utilizará al ejecutar el comando aplicar. Introduce «Sí» y pulsa «Enter» cuando se te pida que introduzcas un valor.

terraform apply

aplicando tu cambio

Una vez que el comando terraform apply tenga éxito, verás un mensaje indicando que tu infraestructura se ha construido con éxito, como se muestra a continuación. Cuando esto ocurre, significa que tu infraestructura se construyó como estaba previsto y está actualizada con tu archivo de configuración.

Construir tu infraestructura

6. Ejecuta el comando ls para listar todos los archivos de tu directorio de trabajo. Verás un nuevo archivo llamado terraform.tfstate como se muestra a continuación. Se crea un archivo con este nombre para hacer un seguimiento de los cambios en tu infraestructura. El comando terraform plan almacena los cambios que se aplicarán al ejecutar terraform apply en un archivo intermedio llamado .tfstate. El archivo de estado contiene el estado completo de la infraestructura tal y como lo ve Terraform. Este archivo es necesario para aplicar cualquier configuración y debe ser transferido cuando se realicen cambios, incluso si el objetivo está dentro del mismo proveedor.

ls

lista todos los archivos de tu directorio de trabajo

7. El proceso de construcción ha terminado. Ejecuta el comando terraform destroy para destruir la infraestructura que acabas de construir. Elcomando terraformar destruir borrará todos los recursos creados por esta demostración. El comando terraform destroy eliminará todos los recursos descritos en tu archivo de configuración Terraform main.tf. Una vez destruidos los recursos, no se pueden recuperar.

Debes eliminar los recursos no utilizados para mantener la configuración de un entorno en orden. No se trata de tapar los fallos, sino de prevenirlos evitando la acumulación de recursos en desuso.

 terraform destroy

destruir la infraestructura

Conclusión

En este tutorial, has aprendido a utilizar los conceptos más comunes de Terraform demostrados en un ejemplo para construir tu primera infraestructura. Has aprendido a utilizar la CLI de Terraform para construir la infraestructura utilizando el archivo main.tf de tu proyecto. La CLI puede utilizarse para planificar, aplicar y destruir tu infraestructura.

Ahora tienes las herramientas para construir tu propia infraestructura. Puedes gestionar una amplia gama de recursos con facilidad, gracias al completo y expresivo lenguaje de configuración de Terraform.

Puedes aprovechar tus nuevos conocimientos en la gestión de la infraestructura, ya en uso para los contenedores Docker, Kubernetes y OpenStack, para aportar más eficiencia y coherencia a tu práctica de la infraestructura como código.

También te podría gustar...