10. September 2020, 11:00

Script für Testing-Farm

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 SSL-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ß!

© 2020 Tomas Jakobs - Impressum und Datenschutzhinweis