Cloud init es un estandar de inicializacion de instancias en la nube. Proxmox consta con un modulo de cloud-init que ayuda a desplegar maquinas virtuales de forma más rápida.

Utiliza un conjunto de metadados pasados por el hipervisor que la instancia lee en el momento del booteo y aplicando cambios como el nombre del equipo, dns,configuraciones de red, claves ssh entre otros.

Instalamos el Sistema operativo

Lo primero que tenemos que hacer es instalar el sitema operativo con el que queramos trabajar, yo en mi caso he utilizado un Debian.

Una vez terminada la instalación entramos en la máquina para hacer unas cuantas modificaciones.

Dentro de la Vm

Primero preparamos el las particiones del la VM.

##Create swap file
dd if=/dev/zero of=/swapfile bs=1024 count=1536000
chmod 600 /swapfile
mkswap /swapfile
swapon /swapfile
echo "/swapfile       swap    swap    defaults        0 0" >> /etc/fstab

Instalamos los paquetes necesarios para poder trabajar con cloud-init.

apt install -y cloud-init cloud-initramfs-growroot qemu-guest-agent git curl

Proxmox

Una vez instalados los paquetes necesarios, iremos a la parte de hardware en la Vm de Proxmox y agregaremos CloudInit Drive y apagamos la Vm.

image alt

A partir de aquí ya podemos cambiar la configuración de la Vm desde el apartado Cloud-Init. Una vez cambiada la configuración tendremos que pinchar en Regenarate Image para que los cambios surgan efecto.

Ahora podremos crear un template de esta maquina si queremos, cosa que no recomiendo por varios motivos. Una vez se crea el template la imagen no se puede modificar. Por lo tanto si en algún momento deseas actualizar la maquina/modificar algo tendrías que clonarla actualizarla y volver a convertirla en un template… un desproposito. Para mí es más util tenerla como una Vm que no uso y solo clono cuando necesito.