Archiv für den Monat: August 2015

FreeNAS 9.3: VirtualBox Headless Server randomized epair workaround

FreeNAS

Verwendet man nur die VirtualBox Jail zum betreiben diverser VMs fällt einem das Problem garnicht auf.

Erst wenn „autostart“ aktive VIMAGE Jails hinzugefügt werden, würfelt FreeNAS / warden, nach einem Systemreboot, die epair Bindung neu aus, da aber das epair Interface, der VM, statisch in einem xml file definiert wird, lassen sich diese nicht mehr ohne manuelle Änderung (per phpVirtualBox) starten

Abhilfe schafft ein kleines Skriptchen, Beispiel anhand einer ISPConfig VM:

$
vi /etc/rc.conf

#// start VirtualBox
vboxheadless_enable="NO"
#// VMs to start (whitespace-separated list):
vboxheadless_machines="ispconfig1"
#// definition for VM with acronym "yourvm":
vboxheadless_ispconfig1_name="ispconfig1"
vboxheadless_ispconfig1_user="vbox"
vboxheadless_ispconfig1_stop="acpipowerbutton"
# EOF
$
$
vi /etc/rc.local

#!/bin/sh
### ### ### FreeNAS VBOX JAIL // ### ### ###

### randomized epair workaround
NEWINTERFACE=$(ifconfig | grep "flags" | grep "epair" | awk '{print $1}' | sed 's/://')
#/find /home/vbox/VirtualBox\ VMs/ -name *.vbox -type f -exec sed -i "" 's/epair[0-9]b/'"$NEWINTERFACE"'/g' {} \;
#/find /home/vbox/VirtualBox\ VMs/ -name *.vbox -type f -exec sed -i "" 's/epair[0-9]*b/'"$NEWINTERFACE"'/g' {} \;
find /home/vbox/VirtualBox\ VMs/ -name *.vbox -type f | xargs -L1 -I{} sh -c 'IN="{}"; sed "s/epair[0-9]*b/'"$NEWINTERFACE"'/g" "${IN}" > "${IN}_"'
find /home/vbox/VirtualBox\ VMs/ -name *.vbox -type f | xargs -L1 -I{} sh -c 'IN="{}"; cp "${IN}_" "${IN}"'

### virtual machine autostart
# starte ispconfig1
service vboxheadless onestart ispconfig1

### ### ### // FreeNAS VBOX JAIL ### ### ###
# EOF

chmod 0555 /etc/rc.local
$

That’s FreeNAS