some tweaks and doc improvements
This commit is contained in:
parent
cc5028ded1
commit
3eb8f59d29
@ -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!
|
||||||
|
@ -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."
|
||||||
|
@ -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
|
||||||
|
Loading…
Reference in New Issue
Block a user