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 a XenServer 5.6 + Openstack development environment. This file gives
some pointers on how to get started. some pointers on how to get started.
Install Xenserver Step 1: Install Xenserver
----------------- ------------------------
Install XenServer 5.6 on a clean box. Install XenServer 5.6 on a clean box.
Here are some sample Xenserver network settings for when you are just 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): 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 Gateway: 192.168.1.1
* XenServer DNS: 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 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: 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 ./prepare_dom0.sh
This script will also clone devstack in /root/devstack This script will also clone devstack in /root/devstack
Configure your localrc Step 3: Configure your localrc
---------------------- -----------------------------
Devstack uses a localrc for user-specific configuration. Note that while Devstack uses a localrc for user-specific configuration. Note that
the first 4 passwords are arbitrary, the XENAPI_PASSWORD must be your dom0 the XENAPI_PASSWORD must be your dom0 root password.
root password. And of course, use a real password if this machine is exposed. Of course, use real passwords if this machine is exposed.
cd /root/devstack 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 SERVICE_TOKEN=my_super_secret
ADMIN_PASSWORD=my_super_secret ADMIN_PASSWORD=my_super_secret
RABBIT_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! # IMPORTANT: The following must be set to your dom0 root password!
XENAPI_PASSWORD=my_super_secret XENAPI_PASSWORD=my_super_secret
# Do not download the usual images yet!
IMAGE_URLS=""
EOF 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. 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: But in a nutshell, it performs the following:
* Configures bridges and vlans for public, private, and management nets * Configures bridges and vlans for public, private, and management nets
* Creates and installs a OpenStack all-in-one domU in an HA-FlatDHCP configuration * 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 # Directory where our conf files are stored
FILES_DIR=$TOP_DIR/files FILES_DIR=$TOP_DIR/files
TEMPLATES_DIR=$TOP_DIR/templates
# Directory for supporting script files # Directory for supporting script files
SCRIPT_DIR=$TOP_DIR/scripts SCRIPT_DIR=$TOP_DIR/scripts
@ -154,7 +155,7 @@ KERNEL_VERSION=`ls $STAGING_DIR/boot/vmlinuz* | head -1 | sed "s/.*vmlinuz-//"`
# Setup fake grub # Setup fake grub
rm -rf $STAGING_DIR/boot/grub/ rm -rf $STAGING_DIR/boot/grub/
mkdir -p $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 sed -e "s,@KERNEL_VERSION@,$KERNEL_VERSION,g" -i $STAGING_DIR/boot/grub/menu.lst
# Setup fstab, tty, and other system stuff # Setup fstab, tty, and other system stuff
@ -197,7 +198,7 @@ PRODUCT_VERSION=${PRODUCT_VERSION:-001}
BUILD_NUMBER=${BUILD_NUMBER:-001} BUILD_NUMBER=${BUILD_NUMBER:-001}
LABEL="$PRODUCT_BRAND $PRODUCT_VERSION-$BUILD_NUMBER" LABEL="$PRODUCT_BRAND $PRODUCT_VERSION-$BUILD_NUMBER"
OVA=$STAGING_DIR/tmp/ova.xml 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,@VDI_SIZE@,$VDI_SIZE,g" -i $OVA
sed -e "s,@PRODUCT_BRAND@,$PRODUCT_BRAND,g" -i $OVA sed -e "s,@PRODUCT_BRAND@,$PRODUCT_BRAND,g" -i $OVA
sed -e "s,@PRODUCT_VERSION@,$PRODUCT_VERSION,g" -i $OVA sed -e "s,@PRODUCT_VERSION@,$PRODUCT_VERSION,g" -i $OVA
@ -222,8 +223,7 @@ fi
# Run devstack on launch # Run devstack on launch
cat <<EOF >$STAGING_DIR/etc/rc.local cat <<EOF >$STAGING_DIR/etc/rc.local
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
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 su -c "/opt/stack/run.sh > /opt/stack/run.sh.log" stack
exit 0 exit 0
EOF EOF
@ -262,7 +262,7 @@ rm -f $XVA
# Configure the network # Configure the network
set_hostname $GUEST_NAME set_hostname $GUEST_NAME
INTERFACES=$STAGING_DIR/etc/network/interfaces 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,@ETH1_NETMASK@,$VM_NETMASK,g" -i $INTERFACES
sed -e "s,@ETH2_IP@,$MGT_IP,g" -i $INTERFACES sed -e "s,@ETH2_IP@,$MGT_IP,g" -i $INTERFACES
sed -e "s,@ETH2_NETMASK@,$MGT_NETMASK,g" -i $INTERFACES sed -e "s,@ETH2_NETMASK@,$MGT_NETMASK,g" -i $INTERFACES
@ -286,3 +286,15 @@ fi
# Start guest # Start guest
$TOP_DIR/scripts/install-os-vpx.sh -f $XVA -v $VM_BR -m $MGT_BR -p $PUB_BR $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 #!/bin/bash
# Configurable nuggets # Configurable nuggets
PASSWORD=${PASSWORD:-secrete} GUEST_PASSWORD=${GUEST_PASSWORD:-secrete}
STAGING_DIR=${STAGING_DIR:-stage} STAGING_DIR=${STAGING_DIR:-stage}
DO_TGZ=${DO_TGZ:-1} DO_TGZ=${DO_TGZ:-1}
KERNEL_VERSION=3.0.0-12-virtual 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 # Make /etc/shadow, and set the root password
chroot $STAGING_DIR "pwconv" chroot $STAGING_DIR "pwconv"
echo "root:$PASSWORD" | chroot $STAGING_DIR chpasswd echo "root:$GUEST_PASSWORD" | chroot $STAGING_DIR chpasswd
# Put the VPX into UTC. # Put the VPX into UTC.
rm -f $STAGING_DIR/etc/localtime rm -f $STAGING_DIR/etc/localtime
@ -54,7 +54,7 @@ rm -f $STAGING_DIR/etc/localtime
# Add stack user # Add stack user
chroot $STAGING_DIR groupadd libvirtd chroot $STAGING_DIR groupadd libvirtd
chroot $STAGING_DIR useradd stack -s /bin/bash -d /opt/stack -G 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 echo "stack ALL=(ALL) NOPASSWD: ALL" >> $STAGING_DIR/etc/sudoers
# Give ownership of /opt/stack to stack user # Give ownership of /opt/stack to stack user