Actualmente estoy usando virt-install para crear nuevas máquinas virtuales en KVM/QEMU y luego uso Terraform para configurar el software en ellas. Quiero combinar estos pasos y usar un proveedor de Terraform para automatizar la creación de máquinas virtuales, pero luego poder destruir todo el sistema con un solo comando. ¿Alguien puede sugerir un proveedor de Terraform adecuado para lograr esto?
Actualmente estoy usando Matchbox con dnsmasq para arrancar PXE en mis máquinas virtuales, por lo que todo lo que mi solución debe hacer es crear una máquina virtual usando Terraform con las banderas necesarias, por ejemplo:
virt-install --name "test" --network=bridge=bridge0,mac=FF:FF:FF:FF:FF:FF --boot=hd,network --memory=1024 --vcpus=2 --pxe --disk pool=default,size=10 --os-type=linux --os-variant=generic --noautoconsole --events on_poweroff=preserve
y poder simplemente ejecutar terraform destroy
para deshacer todo
El mejor proveedor de KVM que he encontrado hasta ahora es terraform-provider-libvirt . Brinda soporte completo para administrar máquinas virtuales KVM desde Terraform y aún está en desarrollo muy activo.
El único inconveniente menor es que los archivos binarios actualmente solo están disponibles para openSUSE; otras plataformas requieren que compile desde la fuente (como Terraform, está escrito en Go).
Ahora también hay paquetes para CentOS, Fedora y Ubuntu:
mmv-ru
Dzintars
--pxe
arranque automático puro. Sí, puede pasar los archivos de encendido directamente, haciendo la pregunta: ¿necesita Matchbox en absoluto, pero... personalmente también quiero pasarmac
la dirección y el--pxe
argumento para que VM pueda arrancar y tomar el encendido por sí solo sin obligar a Terraform a lidiar con esas configuraciones. En mi caso, tengo un servidor "bootstrap" dedicado que está configurado por Ansible y tiene DHCP, DNS, Matchbox, TFTP e iPXE. Básicamente, si ejecuto el mismo comando que proporcionó el autor, mis máquinas virtuales se ejecutan y configuran automáticamente.