¿Existe un buen proveedor de Terraform para aprovisionar máquinas virtuales en KVM/QEMU?

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 destroypara deshacer todo

Respuestas (2)

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, terraform-provider-libvirt lanza compilaciones binarias para Centos 7, Fedora 28, Ubuntu 18.04 y Open SUSE github.com/dmacvicar/terraform-provider-libvirt/releases
No creo que ese módulo proporcione un --pxearranque automático puro. Sí, puede pasar los archivos de encendido directamente, haciendo la pregunta: ¿necesita Matchbox en absoluto, pero... personalmente también quiero pasar macla dirección y el --pxeargumento 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.
terraform-provider-libvirt rpm creado para CentOS7 pero depende de que no exista para el paquete rerraform de CentOS7
Cuidado: después de tanto tiempo, el mantenedor de esta cosa en OBS se aburrió de apoyar a EL7 y ya no está. ¡Una gran noticia! El SRPM para Fedora aún puede construirse. Llévelo a copr y vea si se construirá para usted. download.opensuse.org/repositories/systemsmanagement:/terraform/… Además, copr-be.cloud.fedoraproject.org/results/harbottle/main/… tiene su repositorio para terraform y un tesoro de otras excelentes herramientas.