Estado : En desarrollo!
Curso :
Area : Sistemas operativos, automatización, devops
Descripción : Aprovisionamiento de infraestructura con Terraform
Requisitos :
Tiempo :
Enlaces de interés:
Terraform es una herramienta para definir y aprovisionar la infraestructura completa utilizando un lenguaje declarativo (IaC).
Infraestructura como código (IaC)
- Es el proceso de administrar y aprovisionar la infraestructura de TI utilizando archivos de definición legibles por máquina.
- Es un enfoque de ingeniería de software para el grupo de operaciones.
- Ayuda a automatizar el centro de datos completo mediante el uso de scripts de programación.
Características de Terraform
- Realiza orquestación
- Múltiples proveedores: AWS, Azure, GCP, Digital Ocean, Kubernetes, etc.
- Lenguaje de configuracion HCL.
- Admite arquitectura de solo cliente
Enlace de interés:
zypper install terraform
mkdir terraformXX.d
, crear un directorio de trabajo.cd terraformXX.d
- Como vamos a hacer un ejemplo con el proveedor AWS, vamos a necesitar las claves de acceso.
Ejemplo awsXX.tf
para AWS:
provider "aws" {
access_key = "SECRETO"
secret_key = "SECRETO"
region = "us-west-2"
}
resource "aws_instance" "tfXXaws" {
ami = "ami-0a634ae95e11c6f91"
instance_type = "t2.micro"
}
Desde el directorio de trabajo.
- Init: inicializa el directorio de trabajo que consta de todos los archivos de configuración:
terraform init
- Plan: se crea un plan de ejecución para alcanzar el estado deseado de la infraestructura.
terraform plan
Note: You didn't specify an "-out" parameter to save this plan, so Terraform can't guarantee that exactly these actions will be performed if "terraform apply" is subsequently run.
- Apply: se realizan los cambios como define el plan.
terraform apply
. Si vamos al panel de AWS EC2, veremos que se ha creado una nueva instancia.
- Destroy: Se eliminan los recursos de infraestructura antiguos.
terraform destroy
. Comprobar el el panel que la instancia se eliminó.
- Variables: Es el par clave-valor para permitir la personalización.
- Provider: para interactuar con las API de servicio
- Módulo: Es una carpeta con plantillas donde se definen todas las configuraciones
- Estado: Información sobre la infraestructura
- Recursos: bloque de uno o más objetos de infraestructura (instancias de cómputo, redes virtuales, etc.), que se utilizan para configurar y administrar la infraestructura.
- Fuente de datos: Los proveedores lo implementan para devolver información sobre objetos.
- Valores de salida: valores de retorno de un módulo.
Terraform core utiliza dos fuentes de entrada para trabajar.
- La configuración del usuario.
- El estado actual de la infraestructura.