Terraform es un marco para construir y configurar infraestructura como código, con una interfaz de línea de comandos y lenguaje DSL. Terraform puede administrar proveedores de servicios populares y existentes, así como soluciones internas personalizadas para construir y configurar centros de datos distribuidos completos.
La interfaz de línea de comandos (CLI) de Terraform le permite usar Terraform sin tener que escribir ningún código o archivos de configuración. Es una forma ideal de crear prototipos de cambios de infraestructura con su equipo antes de escribir código, implementar configuraciones localmente en su máquina o pasarlas a producción. La CLI se basa en el formato de archivo terraformspec que fue creado para este propósito por terceros como HashiCorp Nomad CLI Toolkit.
El kit de herramientas de la 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 administrar cambios. Todo el flujo de trabajo de Terraform está impulsado por funciones sin estado que se definen en el código y que Terraform ejecuta cada vez que realiza un cambio. Esto le permite pensar en su infraestructura como un diseño único que se puede modificar fácilmente en tiempo de ejecución sin recargar su configuración o modificar su base de código.
Varios profesionales y empresas de TI utilizan la interfaz de línea de comandos de Terraform para administrar 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 sólido para automatizar cambios que llevarían demasiado tiempo realizarlos a mano. Es una poderosa herramienta para administrar la infraestructura.
Es fácil ver por qué Terraform es una de las soluciones de aprovisionamiento de nube de código abierto más populares del mundo. ¡Es una herramienta utilizada por gente de Linux como tú!
En el interior, encontrará explicaciones completas y ejemplos de los comandos CLI de Terraform de uso más común que se han seleccionado especialmente para brindarle una experiencia práctica con las características más poderosas de Terraform.
Requisito previo
- Para seguir este artículo, debe tener:
- Un cierto conocimiento básico de las características y funciones de Terraform.
- Una máquina Linux. Esta demostración usa Ubuntu 20.04 LTS, pero cualquier distribución de Linux funcionará.
- Terraform y docker instalados en la máquina.
Clonación del código principal
Ahora que se ha ocupado de los requisitos previos, está listo para comenzar a clonar el código principal para usar la CLI de Terraform.
1. Ejecute el comando apt install a continuación para instalar git en su sistema. Git es un sistema de control de revisión distribuido de código abierto diseñado para manejar todo, desde proyectos pequeños hasta proyectos muy grandes, con rapidez y eficiencia. Utilizará git para clonar la plantilla de proyecto de interfaz de línea de comandos de terraform de github.com. Luego comprobará la versión correcta de la línea de comandos de terraform para esta demostración.
sudo apt install git -y
2. Ejecute el comando git clone a continuación para clonar la plantilla de proyecto de línea de comandos de terraform en su directorio actual.
git clone https://github.com/howtoforge-com/terraform-cli.git
3. Vaya al directorio terraform-cli recién clonado y abra main.tf archivo con su editor de texto favorito (vim, emacs, nano, etc.). Un archivo main.tf es el punto de entrada de su proyecto a la interfaz de línea de comandos (Cli) de terraform. Cuando ejecuta el comando terraform, utiliza el main.tf archivo como entrada para obtener instrucciones sobre cómo construir su infraestructura.
cd terraform-cli && sudo nano main.tf
Obtendrá el siguiente resultado.
- La terraformación { } sección del main.tf El archivo no hace más que establecer el proveedor de la ventana acoplable como un proveedor_requerido . Para que Terraform administre su infraestructura de Docker, debe tener configurado el proveedor de Docker.
- El recurso "docker_image" "nginx" { bloque de código demuestra el uso de la CLI de terraform mediante la creación de un nuevo recurso llamado docker_image . La siguiente línea usa la docker-image para crear un recurso llamado nginx . Puede inferir que esto se usará para administrar su contenedor Docker. La siguiente línea establece el nombre de la imagen de la ventana acoplable como nginx:latest. El keep_locally =false evita que la imagen se almacene en caché localmente en su máquina y es una buena idea para evitar descargas duplicadas.
- El recurso "docker_container" "nginx" { demuestra el uso de la CLI de terraform mediante la creación de un nuevo recurso llamado docker_container . La siguiente línea usa el docker_container para crear un recurso llamado nginx . Esto se usará para administrar el mapeo de puertos de su contenedor Docker. La siguiente línea establece el nombre de su contenedor docker como tutorial y finalmente, demuestra cómo mapear el puerto 8000 y puerto 80 en su máquina host en su contenedor docker usando el bloque de puertos.
Uso de la interfaz de línea de comandos (CLI) de Terraform para construir su primera infraestructura
Ahora que ha clonado la plantilla del proyecto terraform, puede construir su primera infraestructura. Utilizará la CLI de Terraform para construir una infraestructura utilizando el main.tf de su proyecto. expediente. Creará un contenedor docker y asignará un puerto desde su máquina host al contenedor docker.
1. Primero, ejecute el comando terraform init para inicializar su directorio de trabajo. El comando terraform init inicializa su directorio de trabajo y descarga los complementos necesarios para que Terraform administre su infraestructura. Un directorio de trabajo es el directorio en el que utilizará el comando terraform para administrar su infraestructura. Una vez inicializado, este directorio contiene un archivo main.tf y puede contener varios archivos de soporte.
terraform init
Al ejecutar con éxito el comando terraform init, recibirá el siguiente resultado.
2. A continuación, ejecute el comando terraform fmt para formatear automáticamente su archivo main.tf para mejorar la legibilidad y la coherencia. El comando terraform fmt reformateará su archivo main.tf para mejorar la legibilidad y la consistencia. Esta es una buena práctica a seguir, ya que hará que sus archivos sean más fáciles de leer para usted y para otros.
terraform fmt
Si el comando terraform fmt modificó su main.tf archivos, imprimirá el nombre del archivo que reformateó. En esta demostración, la salida está en blanco porque el archivo main.tf ya estaba formateado según los gustos de Terraform, como se muestra a continuación.
3. Ejecute el comando de validación de terraform para asegurarse de que su infraestructura se construya según lo previsto. El comando de validación de terraformación es una verificación de seguridad para verificar que su infraestructura se puede construir según lo previsto.
terraform validate
Si no hay errores, recibirá un resultado similar al siguiente, indicando que todo está listo para construir su primera infraestructura.
4. Ejecute 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 genera la siguiente estructura, mostrando que creará una instancia del recurso docker_container llamado nginx y un recurso docker_image llamado tutorial.
5. Ejecute el comando de aplicación de terraformación para aplicar los cambios que previsualizó con el plan de terraformación. El comando terraform apply construirá su infraestructura. El comando terraform apply creará todos los recursos descritos en su archivo de configuración main.tf de Terraform.
Este comando reutilizará la evaluación de variables, restricciones y asignaciones del comando terraform plan para producir el plan más eficiente posible. Cualquier opción adicional especificada en la línea de comando con terraform apply se usará cuando se ejecute el comando apply. Introduzca sí y presiona Entrar cuando se le solicite Ingrese un valor .
terraform apply
Una vez que el comando de aplicación de terraformación tenga éxito, verá un mensaje que indica que su infraestructura se ha construido correctamente, como se muestra a continuación. Cuando esto sucede, significa que su infraestructura se creó según lo previsto y está actualizada con su archivo de configuración.
6. Ejecute el comando ls para enumerar todos los archivos en su directorio de trabajo. Verá un nuevo archivo llamado terraform.tfstate como se muestra a continuación. Se crea un archivo con este nombre para realizar un seguimiento de los cambios en su infraestructura. El comando terraform plan almacena los cambios que se aplicarán cuando se ejecute terraform apply en un archivo intermedio llamado .tfstate. El archivo de estado contiene el estado completo de la infraestructura tal como lo ve Terraform. Este archivo es necesario para aplicar cualquier configuración y debe transferirse al realizar cambios, incluso si el destino está dentro del mismo proveedor.
ls
7. El proceso de construcción ya ha terminado. Ejecute el comando terraform destroy para destruir la infraestructura que acaba de construir. Introduce sí y presiona Entrar cuando se le solicite Ingrese un valor . El comando terraform destroy eliminará todos los recursos creados por esta demostración. El comando terraform destroy eliminará todos los recursos descritos en su Terraform main.tf archivo de configuración. Una vez que se destruyen los recursos, no se pueden recuperar.
Debe eliminar los recursos no utilizados para mantener la configuración de un entorno bajo control. No se trata de encubrir fallas, se trata de prevenir fallas evitando la acumulación de recursos en desuso.
terraform destroy
Conclusión
En este tutorial, aprendió a usar los conceptos de Terraform más comunes demostrados en un ejemplo para construir su primera infraestructura. Aprendió a usar la CLI de Terraform para construir infraestructura usando el archivo main.tf de su proyecto. La CLI se puede usar para planificar, aplicar y destruir su infraestructura.
Ahora tiene las herramientas para construir su propia infraestructura. Puede administrar una amplia gama de recursos con facilidad, gracias al lenguaje de configuración completo y expresivo de Terraform.
Puede aprovechar su nuevo conocimiento en administración de infraestructura, que ya está en uso para contenedores Docker, Kubernetes y OpenStack, para brindar más eficiencia y coherencia a su práctica de infraestructura como código.