Ich verwende derzeit virt-install, um neue VMs auf KVM/QEMU zu erstellen, und verwende dann Terraform, um Software darauf zu konfigurieren. Ich möchte diese Schritte kombinieren und einen Terraform-Anbieter verwenden, um die VM-Erstellung zu automatisieren, aber dann das gesamte System mit einem einzigen Befehl herunterfahren können. Kann jemand einen geeigneten Terraform-Anbieter vorschlagen, um dies zu erreichen?
Ich verwende derzeit Matchbox mit dnsmasq, um meine VMs per PXE zu booten, sodass meine Lösung lediglich eine VM mit Terraform mit den erforderlichen Flags erstellen muss, zum Beispiel:
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
und in der Lage sein, einfach zu laufen terraform destroy
, um alles rückgängig zu machen
Der beste KVM-Anbieter, den ich bisher gefunden habe, ist terraform-provider-libvirt . Es bietet volle Unterstützung für die Verwaltung von KVM-VMs von Terraform und befindet sich noch in sehr aktiver Entwicklung.
Der einzige kleine Nachteil ist, dass Binärdateien derzeit nur für openSUSE verfügbar sind - andere Plattformen erfordern, dass Sie aus dem Quellcode kompilieren (wie Terraform, es ist in Go geschrieben).
Es gibt jetzt auch Pakete für CentOS, Fedora und Ubuntu:
mmv-ru
Dzintars
--pxe
Start bietet. Ja, Sie können Zünddateien direkt übergeben und die Frage stellen - brauchen Sie Matchbox überhaupt, aber ... persönlich möchte ich auchmac
Adresse und--pxe
Argument übergeben, damit VM booten und die Zündung selbst übernehmen kann, ohne Terraform zu zwingen, sich damit zu befassen diese Konfigurationen. In meinem Fall habe ich einen dedizierten "Bootstrap" -Server, der von Ansible eingerichtet wird und über DHCP, DNS, Matchbox, TFTP und iPXE verfügt. Wenn ich also denselben Befehl ausführe, den der Autor angegeben hat, werden meine VMs automatisch ausgeführt und konfiguriert.