Hinweis: Dieser Artikel ist älter als 3 Jahre
Inhalte, Quelltexte oder Links können zwischenzeitlich überholt sein.
Hinweis: Dieser Artikel ist älter als 3 Jahre
Inhalte, Quelltexte oder Links können zwischenzeitlich überholt sein.
Gestern Abend verzweifelte jemand an Packer, der kleinen Schwester von Vagrant. Es galt eine Testing-Farm von n-Rechnern für Virtualbox zu erstellen und per SSH für automatisiertes Testen/Ausrollen einer Software erreichbar zu machen.
Ich finde das geht mit einem simplen Bashscript schneller und habe heute morgen noch vor dem ersten Kaffee eines schnell gezimmert.
#!/bin/bash
# Pfad zur Master .ova Datei
MASTER_OVA="$HOME/projects/testingfarm/DebianBuster.ova"
# Anzahl der gewünschten VMs
AMOUNT=2
# Name der VMs (Index und Datum werden noch angefügt = NAME-n-YYYYMMDD)
PREF_VMNAME="debian"
# Anzahl der CPUs
PREF_CPU=1
# Zugewiesener Speicher
PREF_MEMORY=1024
# Datums-Suffix
THE_DATE=$(date +%Y%m%d)
# Logdatei zum prüfen
THE_LOG="$HOME/projects/testingfarm/$THE_DATE-$PREF_VMNAME.log"
# -- Bitte ab hier nichts mehr manuell anpassen --
echo "Beginne Erstellen der Testumgebung... (Start: $(date +%T))" > $THE_LOG
for ((i=1; i<= $AMOUNT; i++))
do
vboxmanage controlvm $PREF_VMNAME-$i-$THE_DATE poweroff >> $THE_LOG
vboxmanage unregistervm $PREF_VMNAME-$i-$THE_DATE --delete >> $THE_LOG
vboxmanage import $MASTER_OVA --vsys 0 --cpus $PREF_CPU --memory $PREF_MEMORY --vmname $PREF_VMNAME-$i-$THE_DATE >> $THE_LOG
vboxmanage startvm $PREF_VMNAME-$i-$THE_DATE --type headless >> $THE_LOG
done
echo "...fertig! (Ende: $(date +%T))" >> $THE_LOG
Das Script erstellt seine n Boxen auf Grundlage eines .ova MASTER. Ich gehe davon aus, dass die Netzwerkeinstellungen (ob bridged, NAT oder sonstwas) dort definiert sind. Zusammen mit ggf. einer transferierten SSH-ID für Ansible. Das Ganze ist natürlich auch ohne einen solchen Master mit createvm in der Schleife erstellbar, your milage may vary.
Viel Spaß!