|
...
|
...
|
@@ -4,7 +4,11 @@
|
|
4
|
4
|
|
|
5
|
5
|
# This script installs and configures *nova*, *glance*, *dashboard* and *keystone*
|
|
6
|
6
|
|
|
7
|
|
-# FIXME: talk about single or multi-node installs
|
|
|
7
|
+# This script allows you to specify configuration options of what git
|
|
|
8
|
+# repositories to use, enabled services, network configuration and various
|
|
|
9
|
+# passwords. If you are crafty you can run the script on multiple nodes using
|
|
|
10
|
+# shared settings for common resources (mysql, rabbitmq) and build a multi-node
|
|
|
11
|
+# developer install.
|
|
8
|
12
|
|
|
9
|
13
|
# To keep this script simple we assume you are running on an **Ubuntu 11.04
|
|
10
|
14
|
# Natty** machine. It should work in a VM or physical server. Additionally we
|
|
...
|
...
|
@@ -95,11 +99,16 @@ set -o xtrace
|
|
95
|
95
|
#
|
|
96
|
96
|
# We try to have sensible defaults, so you should be able to run ``./stack.sh``
|
|
97
|
97
|
# in most cases.
|
|
98
|
|
-
|
|
99
|
|
-
|
|
100
|
|
-# FIXME: TALK ABOUT stackrc and localrc
|
|
101
|
|
-
|
|
102
|
|
-# Import variables
|
|
|
98
|
+#
|
|
|
99
|
+# We our settings from ``stackrc``. This file is distributed with devstack and
|
|
|
100
|
+# contains locations for what repositories to use. If you want to use other
|
|
|
101
|
+# repositories and branches, you can add your own settings with another file
|
|
|
102
|
+# called ``localrc``
|
|
|
103
|
+#
|
|
|
104
|
+# If ``localrc`` exists, then ``stackrc`` will load those settings. This is
|
|
|
105
|
+# useful for changing a branch or repostiory to test other versions. Also you
|
|
|
106
|
+# can store your other settings like **MYSQL_PASS** or **ADMIN_PASSWORD** instead
|
|
|
107
|
+# of letting devstack generate random ones for you.
|
|
103
|
108
|
source ./stackrc
|
|
104
|
109
|
|
|
105
|
110
|
# Destination path for installation ``DEST``
|
|
...
|
...
|
@@ -136,6 +145,9 @@ fi
|
|
136
|
136
|
# Nova Network Configuration
|
|
137
|
137
|
# --------------------------
|
|
138
|
138
|
|
|
|
139
|
+# FIXME: more documentation about why these are important flags. Also
|
|
|
140
|
+# we should make sure we use the same variable names as the flag names.
|
|
|
141
|
+
|
|
139
|
142
|
PUBLIC_INTERFACE=${PUBLIC_INTERFACE:-eth0}
|
|
140
|
143
|
FIXED_RANGE=${FIXED_RANGE:-10.0.0.0/24}
|
|
141
|
144
|
FIXED_NETWORK_SIZE=${FIXED_NETWORK_SIZE:-256}
|
|
...
|
...
|
@@ -153,6 +165,17 @@ MULTI_HOST=${MULTI_HOST:-0}
|
|
153
|
153
|
# If you are using FlatDHCP on multiple hosts, set the ``FLAT_INTERFACE``
|
|
154
|
154
|
# variable but make sure that the interface doesn't already have an
|
|
155
|
155
|
# ip or you risk breaking things.
|
|
|
156
|
+#
|
|
|
157
|
+# **DHCP Warning**: If your flat interface device uses DHCP, there will be a
|
|
|
158
|
+# hiccup while the network is moved from the flat interface to the flat network
|
|
|
159
|
+# bridge. This will happen when you launch your first instance. Upon launch
|
|
|
160
|
+# you will lose all connectivity to the node, and the vm launch will probably
|
|
|
161
|
+# fail.
|
|
|
162
|
+#
|
|
|
163
|
+# If you are running on a single node and don't need to access the VMs from
|
|
|
164
|
+# devices other than that node, you can set the flat interface to the same
|
|
|
165
|
+# value as ``FLAT_NETWORK_BRIDGE``. This will stop the network hiccup from
|
|
|
166
|
+# occuring.
|
|
156
|
167
|
FLAT_INTERFACE=${FLAT_INTERFACE:-eth0}
|
|
157
|
168
|
|
|
158
|
169
|
## FIXME(ja): should/can we check that FLAT_INTERFACE is sane?
|
|
...
|
...
|
@@ -568,14 +591,20 @@ screen_it dash "cd $DASH_DIR && sudo /etc/init.d/apache2 restart; sudo tail -f /
|
|
568
|
568
|
# lets you login to it with username/password of user/password. TTY is useful
|
|
569
|
569
|
# for basic functionality. We all include an Ubuntu cloud build of **Natty**.
|
|
570
|
570
|
# Natty uses cloud-init, supporting login via keypair and sending scripts as
|
|
571
|
|
-# userdata. Read more about cloud-init at https://help.ubuntu.com/community/CloudInit
|
|
|
571
|
+# userdata.
|
|
|
572
|
+#
|
|
|
573
|
+# Read more about cloud-init at https://help.ubuntu.com/community/CloudInit
|
|
572
|
574
|
|
|
573
|
575
|
if [[ "$ENABLED_SERVICES" =~ "g-reg" ]]; then
|
|
574
|
576
|
# create a directory for the downloadedthe images tarballs.
|
|
575
|
577
|
mkdir -p $FILES/images
|
|
576
|
578
|
|
|
577
|
|
- # Downloads a tty image (ami/aki/ari style), then extracts it. Upon extraction
|
|
578
|
|
- # we upload to glance with the glance cli tool.
|
|
|
579
|
+ # Debug Image (TTY)
|
|
|
580
|
+ # -----------------
|
|
|
581
|
+
|
|
|
582
|
+ # Downloads the image (ami/aki/ari style), then extracts it. Upon extraction
|
|
|
583
|
+ # we upload to glance with the glance cli tool. TTY is a stripped down
|
|
|
584
|
+ # version of ubuntu.
|
|
579
|
585
|
if [ ! -f $FILES/tty.tgz ]; then
|
|
580
|
586
|
wget -c http://images.ansolabs.com/tty.tgz -O $FILES/tty.tgz
|
|
581
|
587
|
fi
|
|
...
|
...
|
@@ -583,17 +612,20 @@ if [[ "$ENABLED_SERVICES" =~ "g-reg" ]]; then
|
|
583
|
583
|
# extract ami-tty/image, aki-tty/image & ari-tty/image
|
|
584
|
584
|
tar -zxf $FILES/tty.tgz -C $FILES/images
|
|
585
|
585
|
|
|
586
|
|
- # add a debugging images to glance
|
|
|
586
|
+ # Use glance client to add the kernel, ramdisk and finally the root
|
|
|
587
|
+ # filesystem. We parse the results of the uploads to get glance IDs of the
|
|
|
588
|
+ # ramdisk and kernel and use them for the root filesystem.
|
|
587
|
589
|
RVAL=`glance add -A $SERVICE_TOKEN name="tty-kernel" is_public=true container_format=aki disk_format=aki < $FILES/images/aki-tty/image`
|
|
588
|
590
|
KERNEL_ID=`echo $RVAL | cut -d":" -f2 | tr -d " "`
|
|
589
|
591
|
RVAL=`glance add -A $SERVICE_TOKEN name="tty-ramdisk" is_public=true container_format=ari disk_format=ari < $FILES/images/ari-tty/image`
|
|
590
|
592
|
RAMDISK_ID=`echo $RVAL | cut -d":" -f2 | tr -d " "`
|
|
591
|
593
|
glance add -A $SERVICE_TOKEN name="tty" is_public=true container_format=ami disk_format=ami kernel_id=$KERNEL_ID ramdisk_id=$RAMDISK_ID < $FILES/images/ami-tty/image
|
|
592
|
594
|
|
|
|
595
|
+ # Ubuntu 11.04 aka Natty
|
|
|
596
|
+ # ----------------------
|
|
593
|
597
|
|
|
594
|
|
- # Ubuntu 11.04 aka Natty - downloaded from ubuntu enterprise cloud images. This
|
|
|
598
|
+ # Downloaded from ubuntu enterprise cloud images. This
|
|
595
|
599
|
# image doesn't use the ramdisk functionality
|
|
596
|
|
-
|
|
597
|
600
|
if [ ! -f $FILES/natty.tgz ]; then
|
|
598
|
601
|
wget -c http://uec-images.ubuntu.com/natty/current/natty-server-cloudimg-amd64.tar.gz -O $FILES/natty.tgz
|
|
599
|
602
|
fi
|
|
...
|
...
|
@@ -623,8 +655,8 @@ if [[ "$ENABLED_SERVICES" =~ "key" ]]; then
|
|
623
|
623
|
echo "the password: $ADMIN_PASSWORD"
|
|
624
|
624
|
fi
|
|
625
|
625
|
|
|
626
|
|
-# Summary
|
|
627
|
|
-# =======
|
|
|
626
|
+# Fin
|
|
|
627
|
+# ===
|
|
628
|
628
|
|
|
629
|
629
|
# End our timer and give a timing summary
|
|
630
|
630
|
END_TIME=`python -c "import time; print time.time()"`
|