Terraform for Dummies (I/III)

Cuando trabajas como Arquitecto Cloud, pasas gran parte de tu tiempo desplegando PoC’s (Pruebas de concepto) o testando distintos software y soluciones y esto que dicho así parece sencillo, puede convertirse en un autentico suplicio (devorador de tiempo), ya que nos encontraremos repitiendo tareas (para el despliegue de la infraestructura) que aunque necesarias no aportan valor (son un medio, no el fin).

Los más avezados me dirán que para eso están las herramientas de automatización y orquestación como CHEF, Puppet, Ansible o CloudFormation y no les faltará razón. Si te dedicas a esto debes sentirte cómodo con ellas y usalas tanto como puedas. Los “evangelistas” cloud (siempre me resulto curiosa esa denominación, por las acepciones distintas que tiene) a menudo se refieren a este tipo de herramientas como “Infraestrucutre as a Code”, o lo que viene a ser lo mismo, convertir la infraestructura en código.

El problema radica en cuando ademas de desplegar Infraestructura de manera rápida y automatizada, queremos hacerlo en distintos clouds (Amazon, Oracle, Google, etc….), aquí es donde podemos sacarle partido a Terraform frente a otras opciones.

Logo Terraform

<Logo Terraform, cortesía de Hashicorp>

¿Configuración vs Orquestación?

Las herramientas como Chef, Puppet, Ansible y SaltStack son todas herramientas para “configuration management” de manera automatizada, lo que significa que que están diseñadas para provisionar software o configuración sobre distintos servidores.

Las herramientas de Orquestación como Terraform o CloudFormation, no provisionan software sobre un servidor, provisionan el “servidor” en sí, por ello trabajan habitualmente con máquinas virtuales o soluciones tipo container como Docker.

No hay una opción mejor que otra. Dependerá de nuestras necesidades. Si es cierto que con el uso de herramientas tipo Ansible, Puppet,Chef, etc., con el tiempo los servidores terminan teniendo pequeñas divergencias, fundamentalmente derivadas del momento exacto en que se ejecutan las operaciones.

 

Diferencias Herramientas Orquestación

<Comparativa Herramientas, cortesía de Hashicorp>

¿Qué es Terraform?

Es un software desarrollado por Hashicorp, que nos permitirá a través de ficheros en formato JSON definir, configurar y versionar infraestructura

Terraform puede gestionar componentes low-level como compute instances, storage y  networking y también  componentes high-level como entradas DNS, SaaS features, etc.

 

Instalación:

El primer paso es descargar el software desde su web, aquí.

Descarga Terraform software

 

si hacemos un listado veremos, que no nos ha guardado el fichero en formato .zip, hay que renombrarlo

Renombrado fichero

 

y extraemos, lo que nos dejará un fichero ejecutable y ya esta.

 

Extracción fichero Terraform

 

lo copiamos a donde queramos tener el software y muy importante tener Terraform en el PATH.

 

Con esto estáis listos para las siguientes dos entradas de esta serie, donde os mostrare algunos ejemplos de uso.

Espero os haya resultado de interés.

 

 

Deja un comentario

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