]>
git.madduck.net Git - code/vinst.git/blobdiff - vinst 
madduck's git repository 
Every one of the projects in this repository is available at the canonical
URL git://git.madduck.net/madduck/pub/<projectpath>  — see
each project's metadata for the exact URL.
All patches and comments are welcome. Please squash your changes to logical
commits before using git-format-patch  and git-send-email  to
patches@ git. madduck. net .
If you'd read over the Git project's submission guidelines  and adhered to them,
I'd be especially grateful.
SSH access, as well as push access can be individually
  arranged .
If you use my repositories frequently, consider adding the following
snippet to ~/.gitconfig  and using the third clone URL listed for each
project:
[url "git://git.madduck.net/madduck/"]
  insteadOf = madduck:
 
+    (-d|--dns)
+      shift
+      if [ -z "$1" ]; then
+        echo >&2 'E: --dns/-d needs IP address'
+        exit 1
+      fi
+      NAMESERVER="$1"
+      ;;
+    (-g|--gateway)
+      shift
+      if [ -z "$1" ]; then
+        echo >&2 'E: --gateway/-g needs IP address'
+        exit 1
+      fi
+      GATEWAY="$1"
+      ;;
     (-r|--ram)
       shift
       if [ -z "$1" ]; then
     (-r|--ram)
       shift
       if [ -z "$1" ]; then
+    (-a|--arch)
+      shift
+      if [ -z "$1" ]; then
+        echo >&2 'E: --arch/-a needs size argument'
+        exit 1
+      fi
+      ARCH="$1"
+      ;;
 domain=${HOSTNAME#*.}"
 
 if [ -n "$IPADDRESS" ]; then
 domain=${HOSTNAME#*.}"
 
 if [ -n "$IPADDRESS" ]; then
-  if [ -z "$GATEWAY" ]; then
+  if [ -z "$GATEWAY" ] && [ -x $(command -v ipcalc) ] ; then
     # default to the first IP in the network
     GATEWAY=$(ipcalc $IPADDRESS | grep HostMin | awk '{print $2}')
   fi
     # default to the first IP in the network
     GATEWAY=$(ipcalc $IPADDRESS | grep HostMin | awk '{print $2}')
   fi
   netcfg/get_gateway=$GATEWAY \
   netcfg/get_nameservers=$NAMESERVER"
 
   netcfg/get_gateway=$GATEWAY \
   netcfg/get_nameservers=$NAMESERVER"
 
 else
   extra_args="$extra_args netcfg/disable_dhcp=false"
 else
   extra_args="$extra_args netcfg/disable_dhcp=false"
+  BRIDGE=virt-br
+fi
+
+if [ -z "$ARCH" ]; then
+  ARCH=$(dpkg --print-architecture)
 fi
 
 cat >&2 <<_eof
   hostname: $HOSTNAME
 fi
 
 cat >&2 <<_eof
   hostname: $HOSTNAME
        ram: $RAM MiB
       disk: $DISK GiB
    console: $CONSOLE
        ram: $RAM MiB
       disk: $DISK GiB
    console: $CONSOLE
 _eof
 if [ -n "$IPADDRESS" ]; then
   cat >&2 <<_eof
 _eof
 if [ -n "$IPADDRESS" ]; then
   cat >&2 <<_eof
-exec virt-install --connect=$QEMU_URI \
+set -v
+virsh --connect=$QEMU_URI vol-create-as $STORAGE_POOL virt-$HOSTNAME ${DISK}G
+
+virt-install --connect=$QEMU_URI \
-  --disk pool=default,size=$SIZ E \
-  -w bridge=virt-br  \
+  --disk vol=$STORAGE_POOL/virt-$HOSTNAM E \
+  -w bridge=$BRIDGE  \
   --graphics=vnc \
   --serial=pty \
   --watchdog i6300esb,action=reset \
   --graphics=vnc \
   --serial=pty \
   --watchdog i6300esb,action=reset \
   -l $BASEDIR/installer-amd64 \
   --initrd-inject=$BASEDIR/preseed/$SUITE/preseed.cfg \
   --initrd-inject=$tmpdir/commands.tar \
   -l $BASEDIR/installer-amd64 \
   --initrd-inject=$BASEDIR/preseed/$SUITE/preseed.cfg \
   --initrd-inject=$tmpdir/commands.tar \
+  --prompt --noautoconsole --autostart \
   --extra-args="$extra_args" \
   --extra-args="$extra_args" \
+
+virsh --connect=$QEMU_URI console $HOSTNAME
+virsh --connect=$QEMU_URI "start $HOSTNAME; console $HOSTNAME"