Terraform I
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.