Terraform I

Índice

Terraform es un software que trata la infraestructura como código desarrollado por HashiCorp.Esto permite al usuario mediante ejecución de código construir, combinar y poner en marcha de manera segura y eficiente infraestructuras rápidamente.

Permite gestionar desde servidores físicos a contenedores incluso productos SaaS. Es capaz de crear y componer todos los componentes necesarios para ejecutar cualquier servicio o aplicación.

Puede trabajar con múltiples proveedores de servicios, como Openstack, un DNS de AWS, y la base de datos en MySQL local ….. Es código abierto que codifica APIs en archivos de configuración que pueden ser compartidos. Esto da una gran flexibilidad al poder utilizar herramientas como Git para poder revisar, editar y versionar la infraestructura.

Conceptos básicos

Antes de comenzar tenemos que tener claro una serie de conceptos básicos:

  • Proveedor (provider): Donde contratamos la infraestructura. Puede ser local.
  • Recursos (resource): Despliega la infraestructura.
  • Provisionador (provisioner): Realiza las operaciones sobre la infraestructura del proveedor.

Instalación

MacOs

brew tap hashicorp/tap
brew install hashicorp/tap/terraform

Debian y derivados

Instalamos ls dependencias, añadimos llave gpg del repositorio oficial, añadimos repositorio oficial, actualizamos el sistema y por ultimo procedemos con la instalación. Desde el terminal:

sudo apt-get update && sudo apt-get install -y gnupg software-properties-common curl
curl -fsSL https://apt.releases.hashicorp.com/gpg | sudo apt-key add -
sudo apt-add-repository "deb [arch=amd64] https://apt.releases.hashicorp.com $(lsb_release -cs) main"
sudo apt-get update && sudo apt-get install terraform

Comandos básicos

Inicializar proyecto:

terraform init

Planificar proyecto:

terraform plan

Aplicar proyecto:

terraform apply

Destruir proyecto:

terraform destroy

En el siguiente post veremos un ejemplo practico básico.