diff --git a/stack.sh b/stack.sh index dc85abb..61c0f57 100755 --- a/stack.sh +++ b/stack.sh @@ -44,6 +44,40 @@ if [ ! -d $FILES ]; then fi + +# Settings +# ======== + +# This script is customizable through setting environment variables. If you +# want to override a setting you can either:: +# +# export MYSQL_PASSWORD=anothersecret +# ./stack.sh +# +# You can also pass options on a single line ``MYSQL_PASSWORD=simple ./stack.sh`` +# +# Additionally, you can put any local variables into a ``localrc`` file, like:: +# +# MYSQL_PASSWORD=anothersecret +# MYSQL_USER=hellaroot +# +# We try to have sensible defaults, so you should be able to run ``./stack.sh`` +# in most cases. +# +# We our settings from ``stackrc``. This file is distributed with devstack and +# contains locations for what repositories to use. If you want to use other +# repositories and branches, you can add your own settings with another file +# called ``localrc`` +# +# If ``localrc`` exists, then ``stackrc`` will load those settings. This is +# useful for changing a branch or repostiory to test other versions. Also you +# can store your other settings like **MYSQL_PASSWORD** or **ADMIN_PASSWORD** instead +# of letting devstack generate random ones for you. +source ./stackrc + +# Destination path for installation ``DEST`` +DEST=${DEST:-/opt/stack} + # OpenStack is designed to be run as a regular user (Dashboard will fail to run # as root, since apache refused to startup serve content from root user). If # stack.sh is run as root, it automatically creates a stack user with @@ -61,7 +95,7 @@ if [[ $EUID -eq 0 ]]; then if ! getent passwd stack >/dev/null; then echo "Creating a user called stack" - useradd -U -G sudo -s /bin/bash -m stack + useradd -U -G sudo -s /bin/bash -d $DEST -m stack fi echo "Giving stack user passwordless sudo priviledges" @@ -72,7 +106,7 @@ if [[ $EUID -eq 0 ]]; then > /etc/sudoers.d/50_stack_sh ) echo "Copying files to stack user" - STACK_DIR="/home/stack/${PWD##*/}" + STACK_DIR="$DEST/${PWD##*/}" cp -r -f "$PWD" "$STACK_DIR" chown -R stack "$STACK_DIR" if [[ "$SHELL_AFTER_RUN" != "no" ]]; then @@ -83,40 +117,6 @@ if [[ $EUID -eq 0 ]]; then exit 1 fi - -# Settings -# ======== - -# This script is customizable through setting environment variables. If you -# want to override a setting you can either:: -# -# export MYSQL_PASSWORD=anothersecret -# ./stack.sh -# -# You can also pass options on a single line ``MYSQL_PASSWORD=simple ./stack.sh`` -# -# Additionally, you can put any local variables into a ``localrc`` file, like:: -# -# MYSQL_PASSWORD=anothersecret -# MYSQL_USER=hellaroot -# -# We try to have sensible defaults, so you should be able to run ``./stack.sh`` -# in most cases. -# -# We our settings from ``stackrc``. This file is distributed with devstack and -# contains locations for what repositories to use. If you want to use other -# repositories and branches, you can add your own settings with another file -# called ``localrc`` -# -# If ``localrc`` exists, then ``stackrc`` will load those settings. This is -# useful for changing a branch or repostiory to test other versions. Also you -# can store your other settings like **MYSQL_PASSWORD** or **ADMIN_PASSWORD** instead -# of letting devstack generate random ones for you. -source ./stackrc - -# Destination path for installation ``DEST`` -DEST=${DEST:-/opt/stack} - # Set the destination directories for openstack projects NOVA_DIR=$DEST/nova DASH_DIR=$DEST/dash diff --git a/tools/build_ramdisk.sh b/tools/build_ramdisk.sh index 63d37a9..decdeb2 100755 --- a/tools/build_ramdisk.sh +++ b/tools/build_ramdisk.sh @@ -18,6 +18,9 @@ CWD=`pwd` DEST=${DEST:-/opt/stack} +# Param string to pass to stack.sh. Like "EC2_DMZ_HOST=192.168.1.1 MYSQL_USER=nova" +STACKSH_PARAMS=${STACKSH_PARAMS:-} + # Option to use the version of devstack on which we are currently working USE_CURRENT_DEVSTACK=${USE_CURRENT_DEVSTACK:-1} @@ -42,7 +45,7 @@ if [ ! -d $CHROOTCACHE/natty-dev ]; then chroot $CHROOTCACHE/natty-dev groupadd libvirtd chroot $CHROOTCACHE/natty-dev useradd stack -s /bin/bash -d $DEST -G libvirtd mkdir -p $CHROOTCACHE/natty-dev/$DEST - chown stack $CHROOTCACHE/natty-dev/$DEST + chroot $CHROOTCACHE/natty-dev chown stack $DEST # a simple password - pass echo stack:pass | chroot $CHROOTCACHE/natty-dev chpasswd @@ -112,6 +115,34 @@ auto eth0 iface eth0 inet dhcp EOF +# Set hostname +echo "ramstack" >$CHROOTCACHE/natty-stack/etc/hostname +echo "127.0.0.1 localhost ramstack" >$CHROOTCACHE/natty-stack/etc/hosts + +# Configure the runner +RUN_SH=$CHROOTCACHE/natty-stack/$DEST/run.sh +cat > $RUN_SH < $DEST/run.sh.log +echo >> $DEST/run.sh.log +echo >> $DEST/run.sh.log +echo "All done! Time to start clicking." >> $DEST/run.sh.log +EOF + +# Make the run.sh executable +chmod 755 $RUN_SH +chroot $CHROOTCACHE/natty-stack chown stack $DEST/run.sh + # build a new image BASE=$CHROOTCACHE/build.$$ IMG=$BASE.img