some tweaks and doc improvements

This commit is contained in:
Anthony Young 2011-10-26 23:11:52 -07:00
parent cc5028ded1
commit 3eb8f59d29
3 changed files with 44 additions and 20 deletions

View File

@ -4,8 +4,8 @@ The purpose of the code in this directory it to help developers bootstrap
a XenServer 5.6 + Openstack development environment. This file gives
some pointers on how to get started.
Install Xenserver
-----------------
Step 1: Install Xenserver
------------------------
Install XenServer 5.6 on a clean box.
Here are some sample Xenserver network settings for when you are just
getting started (I used settings like this using a lappy + cheap wifi router):
@ -15,20 +15,22 @@ getting started (I used settings like this using a lappy + cheap wifi router):
* XenServer Gateway: 192.168.1.1
* XenServer DNS: 192.168.1.1
Prepare DOM0
------------
Step 2: Prepare DOM0
-------------------
At this point, your server is missing some critical software that you will
need to run devstack (like git). Do this to install required software:
wget https://github.com/cloudbuilders/devstack/raw/xen/tools/xen/prepare_dom0.sh
chmod 755 prepare_dom0.sh
./prepare_dom0.sh
This script will also clone devstack in /root/devstack
Configure your localrc
----------------------
Devstack uses a localrc for user-specific configuration. Note that while
the first 4 passwords are arbitrary, the XENAPI_PASSWORD must be your dom0
root password. And of course, use a real password if this machine is exposed.
Step 3: Configure your localrc
-----------------------------
Devstack uses a localrc for user-specific configuration. Note that
the XENAPI_PASSWORD must be your dom0 root password.
Of course, use real passwords if this machine is exposed.
cd /root/devstack
@ -37,15 +39,25 @@ root password. And of course, use a real password if this machine is exposed.
SERVICE_TOKEN=my_super_secret
ADMIN_PASSWORD=my_super_secret
RABBIT_PASSWORD=my_super_secret
# This is the password for your guest (for both stack and root users)
GUEST_PASSWORD=my_super_secret
# IMPORTANT: The following must be set to your dom0 root password!
XENAPI_PASSWORD=my_super_secret
# Do not download the usual images yet!
IMAGE_URLS=""
EOF
Run ./build_domU.sh
------------------
Step 4: Run ./build_domU.sh
--------------------------
This script does a lot of stuff, it is probably best to read it in its entirety.
But in a nutshell, it performs the following:
* Configures bridges and vlans for public, private, and management nets
* Creates and installs a OpenStack all-in-one domU in an HA-FlatDHCP configuration
** A script to create a multi-domU (ie. head node separated from compute) configuration is coming soon!
* A script to create a multi-domU (ie. head node separated from compute) configuration is coming soon!
Step 5: Do cloudy stuff!
--------------------------
* Play with dashboard
* Play with the CLI
* Log bugs to devstack and core projects, and submit fixes!

View File

@ -143,6 +143,7 @@ fi
# Directory where our conf files are stored
FILES_DIR=$TOP_DIR/files
TEMPLATES_DIR=$TOP_DIR/templates
# Directory for supporting script files
SCRIPT_DIR=$TOP_DIR/scripts
@ -154,7 +155,7 @@ KERNEL_VERSION=`ls $STAGING_DIR/boot/vmlinuz* | head -1 | sed "s/.*vmlinuz-//"`
# Setup fake grub
rm -rf $STAGING_DIR/boot/grub/
mkdir -p $STAGING_DIR/boot/grub/
cp $FILES_DIR/menu.lst.in $STAGING_DIR/boot/grub/menu.lst
cp $TEMPLATES_DIR/menu.lst.in $STAGING_DIR/boot/grub/menu.lst
sed -e "s,@KERNEL_VERSION@,$KERNEL_VERSION,g" -i $STAGING_DIR/boot/grub/menu.lst
# Setup fstab, tty, and other system stuff
@ -197,7 +198,7 @@ PRODUCT_VERSION=${PRODUCT_VERSION:-001}
BUILD_NUMBER=${BUILD_NUMBER:-001}
LABEL="$PRODUCT_BRAND $PRODUCT_VERSION-$BUILD_NUMBER"
OVA=$STAGING_DIR/tmp/ova.xml
cp templates/ova.xml.in $OVA
cp $TEMPLATES_DIR/ova.xml.in $OVA
sed -e "s,@VDI_SIZE@,$VDI_SIZE,g" -i $OVA
sed -e "s,@PRODUCT_BRAND@,$PRODUCT_BRAND,g" -i $OVA
sed -e "s,@PRODUCT_VERSION@,$PRODUCT_VERSION,g" -i $OVA
@ -222,8 +223,7 @@ fi
# Run devstack on launch
cat <<EOF >$STAGING_DIR/etc/rc.local
STAGING_DIR=/ DO_TGZ=0 bash /opt/stack/devstack/tools/xen/prepare_guest.sh
STAGING_DIR=/ DO_TGZ=0 bash /opt/stack/devstack/tools/xen/prepare_guest.sh
GUEST_PASSWORD=$GUEST_PASSWORD $STAGING_DIR=/ DO_TGZ=0 bash /opt/stack/devstack/tools/xen/prepare_guest.sh
su -c "/opt/stack/run.sh > /opt/stack/run.sh.log" stack
exit 0
EOF
@ -262,7 +262,7 @@ rm -f $XVA
# Configure the network
set_hostname $GUEST_NAME
INTERFACES=$STAGING_DIR/etc/network/interfaces
cp templates/interfaces.in $INTERFACES
cp $TEMPLATES_DIR/interfaces.in $INTERFACES
sed -e "s,@ETH1_NETMASK@,$VM_NETMASK,g" -i $INTERFACES
sed -e "s,@ETH2_IP@,$MGT_IP,g" -i $INTERFACES
sed -e "s,@ETH2_NETMASK@,$MGT_NETMASK,g" -i $INTERFACES
@ -286,3 +286,15 @@ fi
# Start guest
$TOP_DIR/scripts/install-os-vpx.sh -f $XVA -v $VM_BR -m $MGT_BR -p $PUB_BR
echo "################################################################################"
echo ""
echo "All Finished!"
echo "Now, you can monitor the progress of the stack.sh installation by "
echo "tailing /opt/stack/run.sh.log from within your domU."
echo ""
echo "ssh into your domU now: 'ssh stack@$PUB_IP' using your password"
echo "and then do: 'tail -f /opt/stack/run.sh.log'"
echo ""
echo "When the script completes, you can then visit the OpenStack Dashboard"
echo "at http://$PUB_IP, and contact other services at the usual ports."

View File

@ -1,7 +1,7 @@
#!/bin/bash
# Configurable nuggets
PASSWORD=${PASSWORD:-secrete}
GUEST_PASSWORD=${GUEST_PASSWORD:-secrete}
STAGING_DIR=${STAGING_DIR:-stage}
DO_TGZ=${DO_TGZ:-1}
KERNEL_VERSION=3.0.0-12-virtual
@ -46,7 +46,7 @@ echo a | chroot $STAGING_DIR cracklib-packer
# Make /etc/shadow, and set the root password
chroot $STAGING_DIR "pwconv"
echo "root:$PASSWORD" | chroot $STAGING_DIR chpasswd
echo "root:$GUEST_PASSWORD" | chroot $STAGING_DIR chpasswd
# Put the VPX into UTC.
rm -f $STAGING_DIR/etc/localtime
@ -54,7 +54,7 @@ rm -f $STAGING_DIR/etc/localtime
# Add stack user
chroot $STAGING_DIR groupadd libvirtd
chroot $STAGING_DIR useradd stack -s /bin/bash -d /opt/stack -G libvirtd
echo stack:$PASSWORD | chroot $STAGING_DIR chpasswd
echo stack:$GUEST_PASSWORD | chroot $STAGING_DIR chpasswd
echo "stack ALL=(ALL) NOPASSWD: ALL" >> $STAGING_DIR/etc/sudoers
# Give ownership of /opt/stack to stack user