Terraform+Proxmox, la experiencia en mi homelab, parte 3

En esta entrada veremos como interactuar con Terraform y los contenedores o CTs, como comúnmente los llamamos.

Nota: para este procedimiento se requiere la plantilla de CT de Debian11 para Proxmox, la cual se puede descargar por la interfaz de proxmox:

O por consola y copiarla en /var/lib/vz/template/cache:

Lo primero es crear una carpeta dónde vamos a trabajar, el nombre no importa cual sea, sólo que sea un identificativo para el trabajo que haremos. Crearemos un contenedor o CT, llamado test, que se encenderá automaticamente cuando encienda el sistema, y lo prepararemos para que haga ciertas funciones, que definiremos en un script que ejecutará después de que el CT esté completamente funcional.

Contenido:

Ahora bien, acá en providers.tf hemos definido el provider, que es el plugin telmate/proxmox, que ya descargamos y está en nuestro home, descrito en la parte 1 de esta serie.

Acá vemos también declaración de variables, que ahora mismo veremos donde están y cómo se usan. Para ello necesitaremos el archivo vars.tf:

Contenido:

Y ahora el archivo main.tf, el cual nos definirá como se crea el CT:

Contenido:

Acá hemos definido lo mismo que hacemos vía web, a la hora de crear un contenedor, pero mediante código, y al final, dentro de la carpeta config hemos creado un script que se copiará al contenedor recién creado y se ejecutará.

Contenido:

Entonces, listo todo, sólo queda ejecutar todo:

Entonces, empezamos bien, se inicializó terraform y el plugin para proxmox, Ahora:

Acá Terraform te muestra todo el plan que vas a ejecutar, en detalle. Ahora sólo queda ejecutar el provisionado:

$ terraform apply

Terraform nos recordará todo lo anterior y nos avisará que estamos listos, que acepte para empezar:


Y listo, empezará el provisionamiento:

Y con esto, ya tenemos nuestro CT creado y provisionado, actualizado mediante script externo. Nos vemos en la parte 4 de este tutorial, donde haremos lo mismo, pero para VMs. Un saludo y happy hacking!

 

Referencias:
https://www.terraform.io/language/values/variables

¿De cuánta utilidad te ha parecido este contenido?

¡Haz clic en una estrella para puntuar!

Promedio de puntuación 5 / 5. Recuento de votos: 4

Hasta ahora, ¡no hay votos!. Sé el primero en puntuar este contenido.