@media screen and (min-width: 580px) { .flotantewhatsapp{ display:none; } }

Compartir por WhatsApp

Inicio - Automatización - Terraform: Comandos básicos
terraform-comandos-basicos-1

Terraform: Comandos básicos

Terraform: Comandos básicos

Hoy os dejo una entrada útil y básica sobre comandos, para los que estáis aprendiendo Terraform como yo.

La idea es tener claro para qué podemos utilizar los diferentes comandos de los que dispone Terraform.

Aunque los podéis extraer desde los comandos «terraform«,»terraform help» o «terraform -h comandoespecífico«, siempre viene bien explicar con detalle cada uno, y si es en castellano, eso que nos ahorramos los hispano-hablantes ;P

terraform-comandos-basicos-1

COMANDOS TERRAFORM

Los cuatro comandos más importantes en Terraform son init, plan, validate y apply. Os explicamos cómo funcionan:

«terraform init»

  • FUNCION: Sirve para inicializar la configuración en Terraform. Es el primer comando a lanzar cualquier configuración
  • PARAMETROS: terraform init [options] [SOURCE] [PATH]
    • -backend=true – Inicializa el backend para este entorno.
    • -backend-config=value – El valor puede ser una ruta a un archivo HCL o una cadena en el formato de ‘key = value’. Esto especifica la configuración adicional para combinar para el backend. Esto se puede especificar varias veces. Los indicadores especificados más adelante en la línea anulan los especificados anteriormente si entran en conflicto.
    • -get=true – Descargue cualquier módulo para esta configuración.
    • -input=true – Solicite información interactiva si es necesario. Si esto es falso y la entrada es init , init error.
    • -lock=true – Bloquea el archivo de estado cuando se admite el bloqueo.
    • -lock-timeout=0s – Duración de volver a intentar un bloqueo de estado.
    • -no-color – Si se especifica, la salida no contendrá ningún color.
    • -force-copy – Suprime las indicaciones sobre la copia de datos de estado. Esto es equivalente a proporcionar un “sí” a todos los mensajes de confirmación.

«terraform plan»

  • FUNCION: Sirve para para crear un plan de ejecución. Es importante validar todo lo que va a suceder una vez apliquemos.
  • PARAMETROS: terraform plan [options] [dir-or-plan]
    • -destroy – Si se establece, genera un plan para destruir todos los recursos conocidos.
    • -detailed-exitcode – Devuelve un código de salida -detailed-exitcode cuando sale el comando. Cuando se proporciona, este argumento cambia los códigos de salida y sus significados para proporcionar información más granular sobre lo que el plan resultante contiene:
      0 = Sin cambios 1 = Error 2 = Cambios presentes
    • -input=true – Solicitar entrada para variables si no se establece directamente.
    • -lock=true – Bloquea el archivo de estado cuando se admite el bloqueo.
    • -lock-timeout=0s – Duración de volver a intentar un bloqueo de estado.
    • -module-depth=n – Especifica la profundidad de los módulos a mostrar en la salida. Esto no afecta al plan en sí, sólo la salida mostrada. De forma predeterminada, esto es -1, lo que ampliará todo.
    • -no-color – Desactiva la salida con color.
    • -out=path – La ruta para guardar el plan de ejecución generado. Este plan se puede utilizar con terraform apply para terraform apply de que solo se aplican los cambios que se muestran en este plan. Lea la advertencia sobre los planes guardados a continuación.
    • -parallelism=n – Limita el número de operaciones concurrentes cuando Terraform recorre el gráfico .
    • -refresh=true – Actualiza el estado antes de verificar las diferencias.
    • -state=path – Ruta al archivo de estado. El valor predeterminado es “terraform.tfstate”. Se ignora cuando se utiliza el estado remoto .
    • -target=resource – Una -target=resource al destino. La operación se limitará a este recurso ya sus dependencias. Este indicador se puede utilizar varias veces.
    • -var ‘foo=bar’ – Establece una variable en la configuración de Terraform. Este indicador se puede establecer varias veces. Los valores de las variables se interpretan como HCL , por lo que los valores de lista y mapa se pueden especificar mediante este indicador.
    • -var-file=foo – Establece variables en la configuración de Terraform desde un archivo de variable . Si “terraform.tfvars” está presente, se cargará automáticamente primero. Cualquier archivo especificado por -var-file valor en un “terraform.tfvars”. Este indicador se puede utilizar varias veces.

«terraform validate»

  • FUNCION: Sirve para validar la sintaxis de los ficheros con extensión “.tf” de terraform
  • PARAMETROS: terraform validate [dir]

«terraform apply»

  • FUNCION: Sirve para aplicar las configuraciones definidas en los ficheros TF, o el conjunto predefinido de acciones generado por un plan ejecución.
  • PARAMETROS: terraform apply [options] [dir-or-plan]
    • -backup=path – Ruta de acceso al archivo de copia de -backup=path que suelen tener extensión .backup
    • -lock=true – Bloquea el archivo de estado cuando se admite el bloqueo.
    • -lock-timeout=0s – Duración de volver a intentar un bloqueo de estado.
    • -input=true – Solicita entrada para variables si no se establece directamente.
    • -no-color – Desactiva la salida con color.
    • -parallelism=n – Limita el número de operaciones concurrentes cuando Terraform recorre el gráfico .
    • -refresh=true – Actualiza el estado de cada recurso antes de planificar y aplicar. Esto no tiene efecto si un archivo del plan se da directamente para aplicar.
    • -state=path – Ruta al archivo de estado. El valor predeterminado es “terraform.tfstate”. Se ignora cuando se utiliza el estado remoto .
    • -state-out=path – Ruta para escribir el archivo de estado actualizado. Por defecto
    • -state usará la ruta. Se ignora cuando se utiliza el estado remoto .
    • -target=resource – Una dirección de recursos para el destino. La operación se limitará a este recurso y a sus dependencias. Este indicador se puede utilizar varias veces.
    • -var ‘foo=bar’ – Establece una variable en la configuración de Terraform. Este indicador se puede establecer varias veces. Los valores de las variables se interpretan como Lenguaje de Configuración HashiCorp (HCL) , por lo que los valores de lista y mapa se pueden especificar mediante este indicador.
    • -var-file=foo – Establece variables en la configuración de Terraform desde un archivo de variable . Si “terraform.tfvars” está presente, se cargará automáticamente primero. Cualquier archivo especificado por -var-file reemplaza cualquier valor en un “terraform.tfvars”. Este indicador se puede utilizar varias veces.

A continuación, el resto de comandos, que usarás conforme profundices en Terraform:

«terraform console»

  • FUNCION: Sirve para crear una consola interactiva. De forma que se puedan probar las configuraciones antes de aplicarlas
  • PARAMETROS: terraform console [options] [dir]
    • -state=path – Ruta al archivo de estado. De forma terraform.tfstate a terraform.tfstate . No es necesario que exista un archivo de estado. Puede cerrar la consola con el comando exit o mediante Control-C o Control-D.

«terraform destroy»

  • FUNCION: Sirve para eliminar las configuraciones aplicadas con Terraform, se podría utilizar como una especie de rollback. Utiliza los mismos argumentos que apply. Normalmente, nos pedirá confirmación antes de borrar cualquier configuración, salvo que coloquemos un force.
  • PARAMETROS: terraform destroy [options] [dir]
    • Mismos parámetros que apply, menos plan
    • -force – No nos pedirá confirmación
    • Si usamos «terraform plan destroy» podemos ver lo que se va a hacer antes de borrar cualquier configuración

«terraform env»

  • FUNCION: Sirve para administrar entornos, es un subcomando, que se utiliza con otros anidados
  • PARAMETROS: terraform env [nombre]
    • list: El comando mostrará todos los entornos creados.
    • select: El comando terraform env select se utiliza para seleccionar un entorno diferente ya creado.
    • new: El comando terraform env new se utiliza para crear un nuevo entorno de estado.
    • delete: El comando terraform env delete se utiliza para eliminar un entorno existente.

«terraform fmt»

  • FUNCION: Sirve para reescribir los archivos de configuración de Terraform a un formato y estilo normalizado.
  • PARAMETROS: terraform fmt [options] [dir]
    • -list=true – Lista de archivos cuyo formato difiere (desactivado si se utiliza STDIN).
    • -write=true – Escribe el resultado en el archivo fuente en lugar de STDOUT (deshabilitado si utiliza STDIN).
    • -diff=false – Mostrar diferencias de cambios de formato.

«terraform force-unlock»

  • FUNCION: Sirve para desbloquear el estado de la configuración, sin modificación de la infraestructura.
  • PARAMETROS: terraform force-unlock [dir]
    • -force – Fuerza la eliminación del bloqueo del estado para la configuración actual.

«terraform get»

  • FUNCION: Sirve para actualizar o descargar módulos a la carpeta .terraform local.
  • PARAMETROS: terraform get [options] [dir]
    • -update – Con la opción update a los módulos descargados comprueba si tienen actualizaciones y se las descarga si esta disponible.

«terraform graph»

  • FUNCION: Sirve para mostrar visualmente un plan de ejecución o configuración
  • PARAMETROS: terraform graph [options] [dir]
    • -draw-cycles – Destaque cualquier ciclo en el gráfico con bordes coloreados. Esto ayuda al diagnosticar errores de ciclo.
    • -no-color – Si se especifica, la salida no contendrá ningún color.
    • -type=plan – Tipo de gráfico de salida. Puede ser: plan, plan-destroy, apply, legacy.

«terraform import»

  • FUNCION: Sirve para importar recursos a Terraform
  • PARAMETROS: terraform import [options] ADDRESS ID
    • -backup=path – Ruta de acceso al archivo de estado -backup=path . La opción predeterminada es la ruta -state-out con la extensión ”.backup”. Establecer en “-” para deshabilitar las copias de seguridad.
    • -config=path – Ruta al directorio de archivos de configuración de Terraform que configuran el proveedor para la importación. El valor predeterminado es su directorio de trabajo. Si este directorio no contiene archivos de configuración de Terraform, el proveedor debe configurarse a través de entradas manuales o variables.
    • -input=true – Si desea solicitar información para la configuración del proveedor.
    • -lock=true – Bloquea el archivo de estado cuando se admite el bloqueo.
    • -lock-timeout=0s – Duración de volver a intentar un bloqueo de estado.
    • -no-color – Si se especifica, la salida no contendrá ningún color.
    • -provider=provider – Proveedor especificado para usar para la importación. Se utiliza para especificar alias de proveedor, como “aws.eu”. Por defecto, el proveedor normal se basa en el prefijo del recurso que se está importando. Por lo general, no es necesario especificar esto.
    • -state=path – La ruta de acceso para leer y guardar archivos de estado (a menos que se especifique estado-out).
    • -state-out=path – Ruta para escribir el archivo de estado final. De forma predeterminada, esta es la ruta de estado.
    • -var ‘foo=bar’ – Establece una variable en la configuración de Terraform. Este indicador se puede establecer varias veces. Los valores de las variables se interpretan como HCL , por lo que los valores de lista y mapa se pueden especificar mediante este indicador.
    • -var-file=foo – Establece variables en la configuración de Terraform desde un archivo de variable . Si “terraform.tfvars” está presente, se cargará automáticamente primero. Cualquier archivo especificado por -var-file valor en un “terraform.tfvars”.

«terraform output»

  • FUNCION: Sirve para extraer el valor de una variable de salida de un fichero de estado.
  • PARAMETROS: terraform output [options] [name]
    • -json – Si se especifica, las salidas se formatean como un objeto JSON, con una clave por salida. Si se especifica [name] , sólo se devolverá la salida especificada. Esto se puede canalizar en herramientas tales como jq para el procesamiento adicional.
    • -state=path – Ruta al archivo de estado. El valor predeterminado es “terraform.tfstate”. Se ignora cuando se utiliza el estado remoto .
    • -module=module_name – La ruta del módulo que ha -module=module_name salida. Por defecto es la ruta raíz. Otros módulos se pueden especificar mediante una lista separada por períodos. Ejemplo: “foo” haría referencia al módulo “foo” pero “foo.bar” haría referencia al módulo “bar” en el módulo “foo”.

«terraform push»

  • FUNCION: Sirve para cargar configuraciones de Terraform por Terraform Enterprise, lo que permite ejecutar configuraciones por un equipo de usuarios.
  • PARAMETROS: terraform push [options] [path]
    • -atlas-address= – Una dirección alternativa a una instancia.
    • -upload-modules=true – Si es true ( -upload-modules=true ), entonces los módulos que se usan están bloqueados en su comprobación actual y cargados completamente.
    • -name= – Nombre de la configuración de la infraestructura en Terraform Enterprise. El formato de este es: “nombre de usuario / nombre” para que pueda cargar configuraciones no sólo a su cuenta, sino a otras cuentas y organizaciones.
    • -no-color – Desactiva la salida con color
    • -overwrite=foo – Marca una variable -overwrite=foo . Normalmente, si ya está definida una variable, Terraform no enviará el valor local (aunque sea diferente). Esto obliga a enviar el valor local a Terraform Enterprise.
    • -token= – El token de API de Terraform Enterprise que se utiliza para autorizar la subida. Si está en blanco o no especificado, se utilizará la variable de ATLAS_TOKEN ATLAS_TOKEN.
    • -var=’foo=bar’ – -var=’foo=bar’ el valor de una variable para la configuración de Terraform.
    • -var-file=foo – Establece el valor de las variables usando un archivo de variable. Este indicador se puede utilizar varias veces.
    • -vcs=true – Si es true (por defecto), entonces Terraform detectará si un VCS está en uso, como Git, y sólo subirá archivos que estén comprometidos con el control de versiones. Si no se detecta ningún sistema de control de versiones, Terraform cargará todos los archivos en path (parámetro al comando).

«terraform refresh»

  • FUNCION: Sirve para detectar diferencias desde el último estado conocido
  • PARAMETROS: terraform refresh [options] [dir]
    • -backup=path – Ruta de acceso al archivo de copia de -backup=path . El valor predeterminado es -state-out con la extensión ”.backup”. Deshabilitado ajustando a “-”.
    • -no-color – Desactiva la salida con color
    • -input=true – Solicitar entrada para variables si no se establece directamente.
    • -lock=true – Bloquea el archivo de estado cuando se admite el bloqueo.
    • -lock-timeout=0s – Duración de volver a intentar un bloqueo de estado.
    • -no-color – Si se especifica, la salida no contendrá ningún color.
    • -state=path – Ruta de acceso para leer y escribir el archivo de estado en. El valor predeterminado es “terraform.tfstate”. Se ignora cuando se utiliza el estado remoto .
    • -state-out=path – Ruta para escribir el archivo de estado actualizado. De forma -state , se -state ruta -state . Se ignora cuando se utiliza el estado remoto .
    • -target=resource – Una -target=resource al destino. La operación se limitará a este recurso ya sus dependencias. Este indicador se puede utilizar varias veces.
    • -var ‘foo=bar’ – Establece una variable en la configuración de Terraform. Este indicador se puede establecer varias veces. Los valores de las variables se interpretan como HCL ,
    • por lo que los valores de lista y mapa se pueden especificar mediante este indicador.
    • -var-file=foo – Establece variables en la configuración de Terraform desde un archivo de variable . Si “terraform.tfvars” está presente, se cargará automáticamente primero. Cualquier archivo especificado por -var-file valor en un “terraform.tfvars”. Este indicador se puede utilizar varias veces.

«terraform show»

  • FUNCION: Sirve para mostrar por pantalla datos legibles
  • PARAMETROS: terraform show [options] [path]
    • -module-depth=n – Especifica la profundidad de los módulos a mostrar en la salida. De forma predeterminada, esto es -1, lo que ampliará todo.
    • -no-color – Desactiva la salida con color.

«terraform state»

  • FUNCION: Sirve para la administración avanzada del estado
  • PARAMETROS: terraform state [options] [args]
    • list: Enumera los recursos dentro de un estado de Terraform.
    • mv: Mueve elementos en un estado de Terraform .
    • pull: El comando terraform state pull se utiliza para descargar y enviar manualmente el estado desde el estado remoto.
    • push: Carga manualmente un archivo de estado local en estado remoto.
    • rm: Elimina elementos del estado Terraform.
    • show: Muestra los atributos de un solo recurso en el estado Terraform.

«terraform taint»

  • FUNCION: Sirve para marcar manualmente un recurso gestionado por Terraform como corrupto, forzándolo a ser destruido y recreado en la siguiente aplicación.
  • PARAMETROS: terraform taint [options] name
    • -allow-missing – Si se especifica, el comando tendrá éxito (código de salida 0) aunque falte el recurso.
    • -backup=path – Ruta de acceso al archivo de copia de -backup=path . El valor predeterminado es -state-out con la extensión ”.backup”.
    • -lock=true – Bloquea el archivo de estado cuando se admite el bloqueo.
    • -lock-timeout=0s – Duración para volver a intentar un bloqueo de estado.
    • -module=path – La ruta del módulo donde existe el recurso corrupto. Por defecto es la ruta raíz.
    • -no-color – Desactiva la salida con color
    • -state=path – Ruta de acceso para leer y escribir el archivo de estado. El valor predeterminado es “terraform.tfstate”.
    • -state-out=path – Ruta para escribir el archivo de estado actualizado. De forma -state , se -state ruta -state .

«terraform untaint»

  • FUNCION: Sirve para desmarcar manualmente un recurso gestionado por Terraform como corrupto, restaurándolo como la instancia primaria en el estado.
  • PARAMETROS: terraform untaint [options] name
    • -allow-missing – Si se especifica, el comando tendrá éxito (código de salida 0) aunque falte el recurso.
    • -backup=path – Ruta de acceso al archivo de copia de -backup=path . El valor predeterminado es -state-out con la extensión ”.backup”.
    • -index=n – Selecciona una única instancia corrupta cuando hay más de una instancia corrompida presente en el estado de un recurso dado. Este indicador es necesario cuando hay varias instancias infectadas.
    • -lock=true – Bloquea el archivo de estado cuando se admite el bloqueo.
    • -lock-timeout=0s – Duración para volver a intentar un bloqueo de estado.
    • -module=path – La ruta del módulo donde existe el recurso corrupto. Por defecto es la ruta raíz.
    • -no-color – Desactiva la salida con color
    • -state=path – Ruta de acceso para leer y escribir el archivo de estado. El valor predeterminado es “terraform.tfstate”.
    • -state-out=path – Ruta para escribir el archivo de estado actualizado. De forma -state , se -state ruta -state .

«terraform workspace»

  • FUNCION: Sirve para para reescribir los archivos de configuración de Terraform a un formato y estilo normalizado.
  • PARAMETROS: terraform fmt [options] [dir]

Basado en: https://terraform-infraestructura.readthedocs.io/es/latest/comandos/index.html

Espero os parezca interesante…ya que es gratis, comparte ;P

¿Te ha gustado la entrada SÍGUENOS EN TWITTER?

Acerca de Raul Unzue Pulido

Administrador de sistemas virtuales e infraestructuras IT, linuxero y entusiasta de la tecnología.

Compruebe también

ansible-conceptos-basicos-1

Ansible: Conceptos básicos

Ansible: Conceptos básicos Hoy os voy a dar unas pequeñas pautas sobre Ansible. Los conceptos …

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *

dieciocho − 2 =

Uso de cookies

Este sitio web utiliza cookies para que usted tenga la mejor experiencia de usuario. Si continúa navegando está dando su consentimiento para la aceptación de las mencionadas cookies y la aceptación de nuestra política de cookies, pinche el enlace para mayor información.

ACEPTAR
Aviso de cookies
Blog Maquinas Virtuales - El Blog de Negu