Perry N. Myers
2008-May-22 18:57 UTC
[Ovirt-devel] [PATCH] allow create-wui-appliance to use local repo tree along with ISO
This patch modifies create-wui-appliance.sh so that both a local ISO or an
install tree can be used to install the WUI appliance. The advantage of
using a local tree is that a kickstart file can be specified so that
manually entering the kickstart location during the boot process is not
necessary.
Signed-off-by: Perry Myers <pmyers at redhat.com>
diff --git a/wui-appliance/create-wui-appliance.sh
b/wui-appliance/create-wui-appliance.sh
index 8f27277..e30f47c 100755
--- a/wui-appliance/create-wui-appliance.sh
+++ b/wui-appliance/create-wui-appliance.sh
@@ -22,8 +22,10 @@ BRIDGENAME=failme
usage() {
case $# in 1) warn "$1"; try_h; exit 1;; esac
cat <<EOF
-Usage: $ME -i install_iso [-d image_dir] [-a x86_64|i686]
- -i: location of installation ISO (required)
+Usage: $ME -i install_iso | -t install_tree [-d image_dir] [-a x86_64|i686]
+ -i: location of installation ISO (required if -t not present)
+ -t: location of installation tree (required if -i not present)
+ -k: URL of kickstart file for use with installation tree
-d: directory to place virtual disk (default: $IMGDIR_DEFAULT)
-a: architecture for the virtual machine (default: $ARCH_DEFAULT)
-v: Install in developer mode (see http://ovirt.org for details)
@@ -34,24 +36,39 @@ EOF
err=0 help=0
devel=0 bundled=0
-while getopts :a:d:i:hvb c; do
+while getopts :a:d:i:t:k:hvb c; do
case $c in
i) ISO=$OPTARG;;
+ t) TREE=$OPTARG;;
+ k) KICKSTART=$OPTARG;;
d) IMGDIR=$OPTARG;;
a) ARCH=$OPTARG;;
h) help=1;;
v) devel=1;;
b) bundled=1;;
- '?') err=1; warn "invalid option: \`-$OPTARG'";;
- :) err=1; warn "missing argument to \`-$OPTARG' option";;
+ '?') err=1; warn "invalid option:
\`-$OPTARG'";;
+ :) err=1; warn "missing argument to \`-$OPTARG'
option";;
*) err=1; warn "internal error: \`-$OPTARG' not
handled";;
esac
done
test $err = 1 && { try_h; exit 1; }
test $help = 1 && { usage; exit 0; }
-test -z "$ISO" && usage "no ISO file specified"
-test -r "$ISO" || usage "missing or unreadable ISO file:
\`$ISO'"
+test -n "$ISO" -a -n "$TREE" && usage "Can
only specify one of -i and -t"
+test -z "$ISO" -a -z "$TREE" && usage "Must
specify one of -i and -t"
+
+if [ -n "$ISO" ]; then
+ test -n "$KICKSTART" && usage "-k not valid in
conjunction with -i"
+ test -r "$ISO" || usage "missing or unreadable ISO file:
\`$ISO'"
+ cdrom_arg="-c $ISO"
+elif [ -n "$TREE" ]; then
+ location_arg="-l $TREE"
+fi
+
+if [ -n "$KICKSTART" ]; then
+ extra_flag=-x
+ extra_arg="ksdevice=eth0 ks=$KICKSTART"
+fi
test $devel = 1 -a $bundled = 1 && usage "Can only specify one of
-v and -b"
test $devel = 0 -a $bundled = 0 && usage "Must specify one of -v
or -b"
@@ -169,6 +186,8 @@ IMGNAME=$NAME.img
mkdir -p $IMGDIR
virsh destroy $NAME > /dev/null 2>&1
virsh undefine $NAME > /dev/null 2>&1
+
virt-install -n $NAME -r $RAM -f "$IMGDIR/$IMGNAME" -s $IMGSIZE --vnc
\
- --accelerate -v -c "$ISO" --os-type=linux --arch=$ARCH \
- -w network:default -w network:$BRIDGENAME
+ --accelerate -v --os-type=linux --arch=$ARCH \
+ -w network:default -w network:$BRIDGENAME \
+ $location_arg $cdrom_arg $extra_flag "$extra_arg"
Hugh O. Brock
2008-May-22 19:02 UTC
[Ovirt-devel] [PATCH] allow create-wui-appliance to use local repo tree along with ISO
On Thu, May 22, 2008 at 02:57:37PM -0400, Perry N. Myers wrote:> This patch modifies create-wui-appliance.sh so that both a local ISO or an > install tree can be used to install the WUI appliance. The advantage of > using a local tree is that a kickstart file can be specified so that > manually entering the kickstart location during the boot process is not > necessary. > > Signed-off-by: Perry Myers <pmyers at redhat.com> > > diff --git a/wui-appliance/create-wui-appliance.sh b/wui-appliance/create-wui-appliance.sh > index 8f27277..e30f47c 100755 > --- a/wui-appliance/create-wui-appliance.sh > +++ b/wui-appliance/create-wui-appliance.sh > @@ -22,8 +22,10 @@ BRIDGENAME=failme > usage() { > case $# in 1) warn "$1"; try_h; exit 1;; esac > cat <<EOF > -Usage: $ME -i install_iso [-d image_dir] [-a x86_64|i686] > - -i: location of installation ISO (required) > +Usage: $ME -i install_iso | -t install_tree [-d image_dir] [-a x86_64|i686] > + -i: location of installation ISO (required if -t not present) > + -t: location of installation tree (required if -i not present) > + -k: URL of kickstart file for use with installation tree > -d: directory to place virtual disk (default: $IMGDIR_DEFAULT) > -a: architecture for the virtual machine (default: $ARCH_DEFAULT) > -v: Install in developer mode (see http://ovirt.org for details) > @@ -34,24 +36,39 @@ EOF > > err=0 help=0 > devel=0 bundled=0 > -while getopts :a:d:i:hvb c; do > +while getopts :a:d:i:t:k:hvb c; do > case $c in > i) ISO=$OPTARG;; > + t) TREE=$OPTARG;; > + k) KICKSTART=$OPTARG;; > d) IMGDIR=$OPTARG;; > a) ARCH=$OPTARG;; > h) help=1;; > v) devel=1;; > b) bundled=1;; > - '?') err=1; warn "invalid option: \`-$OPTARG'";; > - :) err=1; warn "missing argument to \`-$OPTARG' option";; > + '?') err=1; warn "invalid option: \`-$OPTARG'";; > + :) err=1; warn "missing argument to \`-$OPTARG' option";; > *) err=1; warn "internal error: \`-$OPTARG' not handled";; > esac > done > test $err = 1 && { try_h; exit 1; } > test $help = 1 && { usage; exit 0; } > > -test -z "$ISO" && usage "no ISO file specified" > -test -r "$ISO" || usage "missing or unreadable ISO file: \`$ISO'" > +test -n "$ISO" -a -n "$TREE" && usage "Can only specify one of -i and -t" > +test -z "$ISO" -a -z "$TREE" && usage "Must specify one of -i and -t" > + > +if [ -n "$ISO" ]; then > + test -n "$KICKSTART" && usage "-k not valid in conjunction with -i" > + test -r "$ISO" || usage "missing or unreadable ISO file: \`$ISO'" > + cdrom_arg="-c $ISO" > +elif [ -n "$TREE" ]; then > + location_arg="-l $TREE" > +fi > + > +if [ -n "$KICKSTART" ]; then > + extra_flag=-x > + extra_arg="ksdevice=eth0 ks=$KICKSTART" > +fi > > test $devel = 1 -a $bundled = 1 && usage "Can only specify one of -v and -b" > test $devel = 0 -a $bundled = 0 && usage "Must specify one of -v or -b" > @@ -169,6 +186,8 @@ IMGNAME=$NAME.img > mkdir -p $IMGDIR > virsh destroy $NAME > /dev/null 2>&1 > virsh undefine $NAME > /dev/null 2>&1 > + > virt-install -n $NAME -r $RAM -f "$IMGDIR/$IMGNAME" -s $IMGSIZE --vnc \ > - --accelerate -v -c "$ISO" --os-type=linux --arch=$ARCH \ > - -w network:default -w network:$BRIDGENAME > + --accelerate -v --os-type=linux --arch=$ARCH \ > + -w network:default -w network:$BRIDGENAME \ > + $location_arg $cdrom_arg $extra_flag "$extra_arg" >ACK, very good idea... --H