X-Git-Url: https://git.madduck.net/code/vinst.git/blobdiff_plain/a7ee140401c5f29feb091bb1ac93482174be2015..01675c106afc9d3c07b770c25464a5f8c31da4c4:/vinst?ds=sidebyside diff --git a/vinst b/vinst index 8e157f1..6b6ca5d 100755 --- a/vinst +++ b/vinst @@ -10,6 +10,8 @@ QEMU_URI=qemu:///system SUITE=wheezy CONSOLE='console=tty0 console=ttyS0,115200n8' DEBUG=0 +WIPE=0 +RESTART=0 while [ -n "$1" ]; do case "$1" in @@ -71,15 +73,29 @@ while [ -n "$1" ]; do (-a|--arch) shift if [ -z "$1" ]; then - echo >&2 'E: --arch/-a needs size argument' + echo >&2 'E: --arch/-a needs arch argument' exit 1 fi ARCH="$1" ;; + (-m|--mac) + shift + if [ -z "$1" ]; then + echo >&2 'E: --mac/-m needs mac address argument' + exit 1 + fi + MAC="$1" + ;; (--debug) DEBUG=1 set -vx ;; + (--wipe) + WIPE=1 + ;; + (--restart) + RESTART=1 + ;; esac shift done @@ -124,13 +140,21 @@ if [ -z "$ARCH" ]; then ARCH=$(dpkg --print-architecture) fi +if [ -z "$MAC" ]; then + bytes=$(dd status=none if=/dev/urandom bs=3 count=1 | hexdump -v -e '/1 ":%02X"') + MAC=52:54:00$bytes +fi + cat >&2 <<_eof hostname: $HOSTNAME arch: $ARCH ram: $RAM MiB disk: $DISK GiB + wipe: $WIPE console: $CONSOLE + restart: $RESTART net bridge: $BRIDGE +macaddress: $MAC _eof if [ -n "$IPADDRESS" ]; then cat >&2 <<_eof @@ -148,6 +172,10 @@ fi echo >&2 virsh --connect=$QEMU_URI vol-create-as $STORAGE_POOL virt-$HOSTNAME ${DISK}G +if [ $WIPE = 1 ]; then + echo >&2 "Wiping disk…" + virsh --connect=$QEMU_URI vol-wipe --pool $STORAGE_POOL --algorithm zero virt-$HOSTNAME +fi if [ $DEBUG = 1 ]; then DEBUGFLAG=--debug @@ -159,7 +187,7 @@ virt-install --connect=$QEMU_URI \ -n $HOSTNAME \ -r $RAM \ --disk vol=$STORAGE_POOL/virt-$HOSTNAME \ - -w bridge=$BRIDGE \ + --network bridge=$BRIDGE,mac=$MAC \ --graphics=vnc \ --serial=pty \ --watchdog i6300esb,action=reset \ @@ -172,4 +200,7 @@ virt-install --connect=$QEMU_URI \ "$@" virsh --connect=$QEMU_URI console $HOSTNAME -virsh --connect=$QEMU_URI "start $HOSTNAME; console $HOSTNAME" + +if [ $RESTART = 1 ]; then + virsh --connect=$QEMU_URI "start $HOSTNAME; console $HOSTNAME" +fi