1 | 1 |
deleted file mode 100755 |
... | ... |
@@ -1,38 +0,0 @@ |
1 |
-#!/usr/bin/env bash |
|
2 |
- |
|
3 |
-# **build_bm.sh** |
|
4 |
- |
|
5 |
-# Build an OpenStack install on a bare metal machine. |
|
6 |
-set +x |
|
7 |
- |
|
8 |
-# Keep track of the current directory |
|
9 |
-TOOLS_DIR=$(cd $(dirname "$0") && pwd) |
|
10 |
-TOP_DIR=$(cd $TOOLS_DIR/..; pwd) |
|
11 |
- |
|
12 |
-# Import common functions |
|
13 |
-source $TOP_DIR/functions |
|
14 |
- |
|
15 |
-# Source params |
|
16 |
-source ./stackrc |
|
17 |
- |
|
18 |
-# Param string to pass to stack.sh. Like "EC2_DMZ_HOST=192.168.1.1 MYSQL_USER=nova" |
|
19 |
-STACKSH_PARAMS=${STACKSH_PARAMS:-} |
|
20 |
- |
|
21 |
-# Option to use the version of devstack on which we are currently working |
|
22 |
-USE_CURRENT_DEVSTACK=${USE_CURRENT_DEVSTACK:-1} |
|
23 |
- |
|
24 |
-# Configure the runner |
|
25 |
-RUN_SH=`mktemp` |
|
26 |
-cat > $RUN_SH <<EOF |
|
27 |
-#!/usr/bin/env bash |
|
28 |
-# Install and run stack.sh |
|
29 |
-cd devstack |
|
30 |
-$STACKSH_PARAMS ./stack.sh |
|
31 |
-EOF |
|
32 |
- |
|
33 |
-# Make the run.sh executable |
|
34 |
-chmod 755 $RUN_SH |
|
35 |
- |
|
36 |
-scp -r . root@$CONTAINER_IP:devstack |
|
37 |
-scp $RUN_SH root@$CONTAINER_IP:$RUN_SH |
|
38 |
-ssh root@$CONTAINER_IP $RUN_SH |
39 | 1 |
deleted file mode 100755 |
... | ... |
@@ -1,40 +0,0 @@ |
1 |
-#!/usr/bin/env bash |
|
2 |
- |
|
3 |
-# **build_bm_multi.sh** |
|
4 |
- |
|
5 |
-# Build an OpenStack install on several bare metal machines. |
|
6 |
-SHELL_AFTER_RUN=no |
|
7 |
- |
|
8 |
-# Variables common amongst all hosts in the cluster |
|
9 |
-COMMON_VARS="MYSQL_HOST=$HEAD_HOST RABBIT_HOST=$HEAD_HOST GLANCE_HOSTPORT=$HEAD_HOST:9292 NETWORK_MANAGER=FlatDHCPManager FLAT_INTERFACE=eth0 FLOATING_RANGE=$FLOATING_RANGE MULTI_HOST=1 SHELL_AFTER_RUN=$SHELL_AFTER_RUN" |
|
10 |
- |
|
11 |
-# Helper to launch containers |
|
12 |
-function run_bm { |
|
13 |
- # For some reason container names with periods can cause issues :/ |
|
14 |
- CONTAINER=$1 CONTAINER_IP=$2 CONTAINER_NETMASK=$NETMASK CONTAINER_GATEWAY=$GATEWAY NAMESERVER=$NAMESERVER TERMINATE=$TERMINATE STACKSH_PARAMS="$COMMON_VARS $3" ./tools/build_bm.sh |
|
15 |
-} |
|
16 |
- |
|
17 |
-# Launch the head node - headnode uses a non-ip domain name, |
|
18 |
-# because rabbit won't launch with an ip addr hostname :( |
|
19 |
-run_bm STACKMASTER $HEAD_HOST "ENABLED_SERVICES=g-api,g-reg,key,n-api,n-sch,n-vnc,horizon,mysql,rabbit" |
|
20 |
- |
|
21 |
-# Wait till the head node is up |
|
22 |
-if [ ! "$TERMINATE" = "1" ]; then |
|
23 |
- echo "Waiting for head node ($HEAD_HOST) to start..." |
|
24 |
- if ! timeout 60 sh -c "while ! wget -q -O- http://$HEAD_HOST | grep -q username; do sleep 1; done"; then |
|
25 |
- echo "Head node did not start" |
|
26 |
- exit 1 |
|
27 |
- fi |
|
28 |
-fi |
|
29 |
- |
|
30 |
-PIDS="" |
|
31 |
-# Launch the compute hosts in parallel |
|
32 |
-for compute_host in ${COMPUTE_HOSTS//,/ }; do |
|
33 |
- run_bm $compute_host $compute_host "ENABLED_SERVICES=n-cpu,n-net,n-api" & |
|
34 |
- PIDS="$PIDS $!" |
|
35 |
-done |
|
36 |
- |
|
37 |
-for x in $PIDS; do |
|
38 |
- wait $x |
|
39 |
-done |
|
40 |
-echo "build_bm_multi complete" |
41 | 1 |
deleted file mode 100755 |
... | ... |
@@ -1,120 +0,0 @@ |
1 |
-#!/bin/bash -e |
|
2 |
- |
|
3 |
-# **build_pxe_env.sh** |
|
4 |
- |
|
5 |
-# Create a PXE boot environment |
|
6 |
-# |
|
7 |
-# build_pxe_env.sh destdir |
|
8 |
-# |
|
9 |
-# Requires Ubuntu Oneiric |
|
10 |
-# |
|
11 |
-# Only needs to run as root if the destdir permissions require it |
|
12 |
- |
|
13 |
-dpkg -l syslinux || apt-get install -y syslinux |
|
14 |
- |
|
15 |
-DEST_DIR=${1:-/tmp}/tftpboot |
|
16 |
-PXEDIR=${PXEDIR:-/opt/ramstack/pxe} |
|
17 |
-PROGDIR=`dirname $0` |
|
18 |
- |
|
19 |
-# Clean up any resources that may be in use |
|
20 |
-function cleanup { |
|
21 |
- set +o errexit |
|
22 |
- |
|
23 |
- # Mop up temporary files |
|
24 |
- if [ -n "$MNTDIR" -a -d "$MNTDIR" ]; then |
|
25 |
- umount $MNTDIR |
|
26 |
- rmdir $MNTDIR |
|
27 |
- fi |
|
28 |
- |
|
29 |
- # Kill ourselves to signal any calling process |
|
30 |
- trap 2; kill -2 $$ |
|
31 |
-} |
|
32 |
- |
|
33 |
-trap cleanup SIGHUP SIGINT SIGTERM SIGQUIT EXIT |
|
34 |
- |
|
35 |
-# Keep track of the current directory |
|
36 |
-TOOLS_DIR=$(cd $(dirname "$0") && pwd) |
|
37 |
-TOP_DIR=`cd $TOOLS_DIR/..; pwd` |
|
38 |
- |
|
39 |
-mkdir -p $DEST_DIR/pxelinux.cfg |
|
40 |
-cd $DEST_DIR |
|
41 |
-for i in memdisk menu.c32 pxelinux.0; do |
|
42 |
- cp -pu /usr/lib/syslinux/$i $DEST_DIR |
|
43 |
-done |
|
44 |
- |
|
45 |
-CFG=$DEST_DIR/pxelinux.cfg/default |
|
46 |
-cat >$CFG <<EOF |
|
47 |
-default menu.c32 |
|
48 |
-prompt 0 |
|
49 |
-timeout 0 |
|
50 |
- |
|
51 |
-MENU TITLE devstack PXE Boot Menu |
|
52 |
- |
|
53 |
-EOF |
|
54 |
- |
|
55 |
-# Setup devstack boot |
|
56 |
-mkdir -p $DEST_DIR/ubuntu |
|
57 |
-if [ ! -d $PXEDIR ]; then |
|
58 |
- mkdir -p $PXEDIR |
|
59 |
-fi |
|
60 |
- |
|
61 |
-# Get image into place |
|
62 |
-if [ ! -r $PXEDIR/stack-initrd.img ]; then |
|
63 |
- cd $TOP_DIR |
|
64 |
- $PROGDIR/build_ramdisk.sh $PXEDIR/stack-initrd.img |
|
65 |
-fi |
|
66 |
-if [ ! -r $PXEDIR/stack-initrd.gz ]; then |
|
67 |
- gzip -1 -c $PXEDIR/stack-initrd.img >$PXEDIR/stack-initrd.gz |
|
68 |
-fi |
|
69 |
-cp -pu $PXEDIR/stack-initrd.gz $DEST_DIR/ubuntu |
|
70 |
- |
|
71 |
-if [ ! -r $PXEDIR/vmlinuz-*-generic ]; then |
|
72 |
- MNTDIR=`mktemp -d --tmpdir mntXXXXXXXX` |
|
73 |
- mount -t ext4 -o loop $PXEDIR/stack-initrd.img $MNTDIR |
|
74 |
- |
|
75 |
- if [ ! -r $MNTDIR/boot/vmlinuz-*-generic ]; then |
|
76 |
- echo "No kernel found" |
|
77 |
- umount $MNTDIR |
|
78 |
- rmdir $MNTDIR |
|
79 |
- exit 1 |
|
80 |
- else |
|
81 |
- cp -pu $MNTDIR/boot/vmlinuz-*-generic $PXEDIR |
|
82 |
- fi |
|
83 |
- umount $MNTDIR |
|
84 |
- rmdir $MNTDIR |
|
85 |
-fi |
|
86 |
- |
|
87 |
-# Get generic kernel version |
|
88 |
-KNAME=`basename $PXEDIR/vmlinuz-*-generic` |
|
89 |
-KVER=${KNAME#vmlinuz-} |
|
90 |
-cp -pu $PXEDIR/vmlinuz-$KVER $DEST_DIR/ubuntu |
|
91 |
-cat >>$CFG <<EOF |
|
92 |
- |
|
93 |
-LABEL devstack |
|
94 |
- MENU LABEL ^devstack |
|
95 |
- MENU DEFAULT |
|
96 |
- KERNEL ubuntu/vmlinuz-$KVER |
|
97 |
- APPEND initrd=ubuntu/stack-initrd.gz ramdisk_size=2109600 root=/dev/ram0 |
|
98 |
-EOF |
|
99 |
- |
|
100 |
-# Get Ubuntu |
|
101 |
-if [ -d $PXEDIR -a -r $PXEDIR/natty-base-initrd.gz ]; then |
|
102 |
- cp -pu $PXEDIR/natty-base-initrd.gz $DEST_DIR/ubuntu |
|
103 |
- cat >>$CFG <<EOF |
|
104 |
- |
|
105 |
-LABEL ubuntu |
|
106 |
- MENU LABEL ^Ubuntu Natty |
|
107 |
- KERNEL ubuntu/vmlinuz-$KVER |
|
108 |
- APPEND initrd=ubuntu/natty-base-initrd.gz ramdisk_size=419600 root=/dev/ram0 |
|
109 |
-EOF |
|
110 |
-fi |
|
111 |
- |
|
112 |
-# Local disk boot |
|
113 |
-cat >>$CFG <<EOF |
|
114 |
- |
|
115 |
-LABEL local |
|
116 |
- MENU LABEL ^Local disk |
|
117 |
- LOCALBOOT 0 |
|
118 |
-EOF |
|
119 |
- |
|
120 |
-trap cleanup SIGHUP SIGINT SIGTERM SIGQUIT EXIT |
121 | 1 |
deleted file mode 100755 |
... | ... |
@@ -1,230 +0,0 @@ |
1 |
-#!/bin/bash |
|
2 |
- |
|
3 |
-# **build_ramdisk.sh** |
|
4 |
- |
|
5 |
-# Build RAM disk images |
|
6 |
- |
|
7 |
-# Exit on error to stop unexpected errors |
|
8 |
-set -o errexit |
|
9 |
- |
|
10 |
-if [ ! "$#" -eq "1" ]; then |
|
11 |
- echo "$0 builds a gziped Ubuntu OpenStack install" |
|
12 |
- echo "usage: $0 dest" |
|
13 |
- exit 1 |
|
14 |
-fi |
|
15 |
- |
|
16 |
-# Clean up any resources that may be in use |
|
17 |
-function cleanup { |
|
18 |
- set +o errexit |
|
19 |
- |
|
20 |
- # Mop up temporary files |
|
21 |
- if [ -n "$MNTDIR" -a -d "$MNTDIR" ]; then |
|
22 |
- umount $MNTDIR |
|
23 |
- rmdir $MNTDIR |
|
24 |
- fi |
|
25 |
- if [ -n "$DEV_FILE_TMP" -a -e "$DEV_FILE_TMP" ]; then |
|
26 |
- rm -f $DEV_FILE_TMP |
|
27 |
- fi |
|
28 |
- if [ -n "$IMG_FILE_TMP" -a -e "$IMG_FILE_TMP" ]; then |
|
29 |
- rm -f $IMG_FILE_TMP |
|
30 |
- fi |
|
31 |
- |
|
32 |
- # Release NBD devices |
|
33 |
- if [ -n "$NBD" ]; then |
|
34 |
- qemu-nbd -d $NBD |
|
35 |
- fi |
|
36 |
- |
|
37 |
- # Kill ourselves to signal any calling process |
|
38 |
- trap 2; kill -2 $$ |
|
39 |
-} |
|
40 |
- |
|
41 |
-trap cleanup SIGHUP SIGINT SIGTERM |
|
42 |
- |
|
43 |
-# Set up nbd |
|
44 |
-modprobe nbd max_part=63 |
|
45 |
- |
|
46 |
-# Echo commands |
|
47 |
-set -o xtrace |
|
48 |
- |
|
49 |
-IMG_FILE=$1 |
|
50 |
- |
|
51 |
-# Keep track of the current directory |
|
52 |
-TOOLS_DIR=$(cd $(dirname "$0") && pwd) |
|
53 |
-TOP_DIR=$(cd $TOOLS_DIR/..; pwd) |
|
54 |
- |
|
55 |
-# Import common functions |
|
56 |
-. $TOP_DIR/functions |
|
57 |
- |
|
58 |
-# Store cwd |
|
59 |
-CWD=`pwd` |
|
60 |
- |
|
61 |
-cd $TOP_DIR |
|
62 |
- |
|
63 |
-# Source params |
|
64 |
-source ./stackrc |
|
65 |
- |
|
66 |
-CACHEDIR=${CACHEDIR:-/opt/stack/cache} |
|
67 |
- |
|
68 |
-DEST=${DEST:-/opt/stack} |
|
69 |
- |
|
70 |
-# Configure the root password of the vm to be the same as ``ADMIN_PASSWORD`` |
|
71 |
-ROOT_PASSWORD=${ADMIN_PASSWORD:-password} |
|
72 |
- |
|
73 |
-# Base image (natty by default) |
|
74 |
-DIST_NAME=${DIST_NAME:-natty} |
|
75 |
- |
|
76 |
-# Param string to pass to stack.sh. Like "EC2_DMZ_HOST=192.168.1.1 MYSQL_USER=nova" |
|
77 |
-STACKSH_PARAMS=${STACKSH_PARAMS:-} |
|
78 |
- |
|
79 |
-# Option to use the version of devstack on which we are currently working |
|
80 |
-USE_CURRENT_DEVSTACK=${USE_CURRENT_DEVSTACK:-1} |
|
81 |
- |
|
82 |
-# clean install |
|
83 |
-if [ ! -r $CACHEDIR/$DIST_NAME-base.img ]; then |
|
84 |
- $TOOLS_DIR/get_uec_image.sh $DIST_NAME $CACHEDIR/$DIST_NAME-base.img |
|
85 |
-fi |
|
86 |
- |
|
87 |
-# Finds and returns full device path for the next available NBD device. |
|
88 |
-# Exits script if error connecting or none free. |
|
89 |
-# map_nbd image |
|
90 |
-function map_nbd { |
|
91 |
- for i in `seq 0 15`; do |
|
92 |
- if [ ! -e /sys/block/nbd$i/pid ]; then |
|
93 |
- NBD=/dev/nbd$i |
|
94 |
- # Connect to nbd and wait till it is ready |
|
95 |
- qemu-nbd -c $NBD $1 |
|
96 |
- if ! timeout 60 sh -c "while ! [ -e ${NBD}p1 ]; do sleep 1; done"; then |
|
97 |
- echo "Couldn't connect $NBD" |
|
98 |
- exit 1 |
|
99 |
- fi |
|
100 |
- break |
|
101 |
- fi |
|
102 |
- done |
|
103 |
- if [ -z "$NBD" ]; then |
|
104 |
- echo "No free NBD slots" |
|
105 |
- exit 1 |
|
106 |
- fi |
|
107 |
- echo $NBD |
|
108 |
-} |
|
109 |
- |
|
110 |
-# Prime image with as many apt as we can |
|
111 |
-DEV_FILE=$CACHEDIR/$DIST_NAME-dev.img |
|
112 |
-DEV_FILE_TMP=`mktemp $DEV_FILE.XXXXXX` |
|
113 |
-if [ ! -r $DEV_FILE ]; then |
|
114 |
- cp -p $CACHEDIR/$DIST_NAME-base.img $DEV_FILE_TMP |
|
115 |
- |
|
116 |
- NBD=`map_nbd $DEV_FILE_TMP` |
|
117 |
- MNTDIR=`mktemp -d --tmpdir mntXXXXXXXX` |
|
118 |
- mount -t ext4 ${NBD}p1 $MNTDIR |
|
119 |
- cp -p /etc/resolv.conf $MNTDIR/etc/resolv.conf |
|
120 |
- |
|
121 |
- chroot $MNTDIR apt-get install -y --download-only `cat files/apts/* | grep NOPRIME | cut -d\# -f1` |
|
122 |
- chroot $MNTDIR apt-get install -y --force-yes `cat files/apts/* | grep -v NOPRIME | cut -d\# -f1` |
|
123 |
- |
|
124 |
- # Create a stack user that is a member of the libvirtd group so that stack |
|
125 |
- # is able to interact with libvirt. |
|
126 |
- chroot $MNTDIR groupadd libvirtd |
|
127 |
- chroot $MNTDIR useradd $STACK_USER -s /bin/bash -d $DEST -G libvirtd |
|
128 |
- mkdir -p $MNTDIR/$DEST |
|
129 |
- chroot $MNTDIR chown $STACK_USER $DEST |
|
130 |
- |
|
131 |
- # A simple password - pass |
|
132 |
- echo $STACK_USER:pass | chroot $MNTDIR chpasswd |
|
133 |
- echo root:$ROOT_PASSWORD | chroot $MNTDIR chpasswd |
|
134 |
- |
|
135 |
- # And has sudo ability (in the future this should be limited to only what |
|
136 |
- # stack requires) |
|
137 |
- echo "$STACK_USER ALL=(ALL) NOPASSWD: ALL" >> $MNTDIR/etc/sudoers |
|
138 |
- |
|
139 |
- umount $MNTDIR |
|
140 |
- rmdir $MNTDIR |
|
141 |
- qemu-nbd -d $NBD |
|
142 |
- NBD="" |
|
143 |
- mv $DEV_FILE_TMP $DEV_FILE |
|
144 |
-fi |
|
145 |
-rm -f $DEV_FILE_TMP |
|
146 |
- |
|
147 |
- |
|
148 |
-# Clone git repositories onto the system |
|
149 |
-# ====================================== |
|
150 |
- |
|
151 |
-IMG_FILE_TMP=`mktemp $IMG_FILE.XXXXXX` |
|
152 |
- |
|
153 |
-if [ ! -r $IMG_FILE ]; then |
|
154 |
- NBD=`map_nbd $DEV_FILE` |
|
155 |
- |
|
156 |
- # Pre-create the image file |
|
157 |
- # FIXME(dt): This should really get the partition size to |
|
158 |
- # pre-create the image file |
|
159 |
- dd if=/dev/zero of=$IMG_FILE_TMP bs=1 count=1 seek=$((2*1024*1024*1024)) |
|
160 |
- # Create filesystem image for RAM disk |
|
161 |
- dd if=${NBD}p1 of=$IMG_FILE_TMP bs=1M |
|
162 |
- |
|
163 |
- qemu-nbd -d $NBD |
|
164 |
- NBD="" |
|
165 |
- mv $IMG_FILE_TMP $IMG_FILE |
|
166 |
-fi |
|
167 |
-rm -f $IMG_FILE_TMP |
|
168 |
- |
|
169 |
-MNTDIR=`mktemp -d --tmpdir mntXXXXXXXX` |
|
170 |
-mount -t ext4 -o loop $IMG_FILE $MNTDIR |
|
171 |
-cp -p /etc/resolv.conf $MNTDIR/etc/resolv.conf |
|
172 |
- |
|
173 |
-# We need to install a non-virtual kernel and modules to boot from |
|
174 |
-if [ ! -r "`ls $MNTDIR/boot/vmlinuz-*-generic | head -1`" ]; then |
|
175 |
- chroot $MNTDIR apt-get install -y linux-generic |
|
176 |
-fi |
|
177 |
- |
|
178 |
-git_clone $NOVA_REPO $DEST/nova $NOVA_BRANCH |
|
179 |
-git_clone $GLANCE_REPO $DEST/glance $GLANCE_BRANCH |
|
180 |
-git_clone $KEYSTONE_REPO $DEST/keystone $KEYSTONE_BRANCH |
|
181 |
-git_clone $NOVNC_REPO $DEST/novnc $NOVNC_BRANCH |
|
182 |
-git_clone $HORIZON_REPO $DEST/horizon $HORIZON_BRANCH |
|
183 |
-git_clone $NOVACLIENT_REPO $DEST/python-novaclient $NOVACLIENT_BRANCH |
|
184 |
-git_clone $OPENSTACKX_REPO $DEST/openstackx $OPENSTACKX_BRANCH |
|
185 |
- |
|
186 |
-# Use this version of devstack |
|
187 |
-rm -rf $MNTDIR/$DEST/devstack |
|
188 |
-cp -pr $CWD $MNTDIR/$DEST/devstack |
|
189 |
-chroot $MNTDIR chown -R $STACK_USER $DEST/devstack |
|
190 |
- |
|
191 |
-# Configure host network for DHCP |
|
192 |
-mkdir -p $MNTDIR/etc/network |
|
193 |
-cat > $MNTDIR/etc/network/interfaces <<EOF |
|
194 |
-auto lo |
|
195 |
-iface lo inet loopback |
|
196 |
- |
|
197 |
-auto eth0 |
|
198 |
-iface eth0 inet dhcp |
|
199 |
-EOF |
|
200 |
- |
|
201 |
-# Set hostname |
|
202 |
-echo "ramstack" >$MNTDIR/etc/hostname |
|
203 |
-echo "127.0.0.1 localhost ramstack" >$MNTDIR/etc/hosts |
|
204 |
- |
|
205 |
-# Configure the runner |
|
206 |
-RUN_SH=$MNTDIR/$DEST/run.sh |
|
207 |
-cat > $RUN_SH <<EOF |
|
208 |
-#!/usr/bin/env bash |
|
209 |
- |
|
210 |
-# Get IP range |
|
211 |
-set \`ip addr show dev eth0 | grep inet\` |
|
212 |
-PREFIX=\`echo \$2 | cut -d. -f1,2,3\` |
|
213 |
-export FLOATING_RANGE="\$PREFIX.224/27" |
|
214 |
- |
|
215 |
-# Kill any existing screens |
|
216 |
-killall screen |
|
217 |
- |
|
218 |
-# Run stack.sh |
|
219 |
-cd $DEST/devstack && \$STACKSH_PARAMS ./stack.sh > $DEST/run.sh.log |
|
220 |
-echo >> $DEST/run.sh.log |
|
221 |
-echo >> $DEST/run.sh.log |
|
222 |
-echo "All done! Time to start clicking." >> $DEST/run.sh.log |
|
223 |
-EOF |
|
224 |
- |
|
225 |
-# Make the run.sh executable |
|
226 |
-chmod 755 $RUN_SH |
|
227 |
-chroot $MNTDIR chown $STACK_USER $DEST/run.sh |
|
228 |
- |
|
229 |
-umount $MNTDIR |
|
230 |
-rmdir $MNTDIR |
231 | 1 |
deleted file mode 100755 |
... | ... |
@@ -1,180 +0,0 @@ |
1 |
-#!/usr/bin/env bash |
|
2 |
- |
|
3 |
-# **build_uec_ramdisk.sh** |
|
4 |
- |
|
5 |
-# Build RAM disk images based on UEC image |
|
6 |
- |
|
7 |
-# Exit on error to stop unexpected errors |
|
8 |
-set -o errexit |
|
9 |
- |
|
10 |
-if [ ! "$#" -eq "1" ]; then |
|
11 |
- echo "$0 builds a gziped Ubuntu OpenStack install" |
|
12 |
- echo "usage: $0 dest" |
|
13 |
- exit 1 |
|
14 |
-fi |
|
15 |
- |
|
16 |
-# Make sure that we have the proper version of ubuntu (only works on oneiric) |
|
17 |
-if ! egrep -q "oneiric" /etc/lsb-release; then |
|
18 |
- echo "This script only works with ubuntu oneiric." |
|
19 |
- exit 1 |
|
20 |
-fi |
|
21 |
- |
|
22 |
-# Clean up resources that may be in use |
|
23 |
-function cleanup { |
|
24 |
- set +o errexit |
|
25 |
- |
|
26 |
- if [ -n "$MNT_DIR" ]; then |
|
27 |
- umount $MNT_DIR/dev |
|
28 |
- umount $MNT_DIR |
|
29 |
- fi |
|
30 |
- |
|
31 |
- if [ -n "$DEST_FILE_TMP" ]; then |
|
32 |
- rm $DEST_FILE_TMP |
|
33 |
- fi |
|
34 |
- |
|
35 |
- # Kill ourselves to signal parents |
|
36 |
- trap 2; kill -2 $$ |
|
37 |
-} |
|
38 |
- |
|
39 |
-trap cleanup SIGHUP SIGINT SIGTERM SIGQUIT EXIT |
|
40 |
- |
|
41 |
-# Output dest image |
|
42 |
-DEST_FILE=$1 |
|
43 |
- |
|
44 |
-# Keep track of the current directory |
|
45 |
-TOOLS_DIR=$(cd $(dirname "$0") && pwd) |
|
46 |
-TOP_DIR=$(cd $TOOLS_DIR/..; pwd) |
|
47 |
- |
|
48 |
-# Import common functions |
|
49 |
-. $TOP_DIR/functions |
|
50 |
- |
|
51 |
-cd $TOP_DIR |
|
52 |
- |
|
53 |
-# Source params |
|
54 |
-source ./stackrc |
|
55 |
- |
|
56 |
-DEST=${DEST:-/opt/stack} |
|
57 |
- |
|
58 |
-# Ubuntu distro to install |
|
59 |
-DIST_NAME=${DIST_NAME:-oneiric} |
|
60 |
- |
|
61 |
-# Configure how large the VM should be |
|
62 |
-GUEST_SIZE=${GUEST_SIZE:-2G} |
|
63 |
- |
|
64 |
-# Exit on error to stop unexpected errors |
|
65 |
-set -o errexit |
|
66 |
-set -o xtrace |
|
67 |
- |
|
68 |
-# Abort if localrc is not set |
|
69 |
-if [ ! -e $TOP_DIR/localrc ]; then |
|
70 |
- echo "You must have a localrc with ALL necessary passwords defined before proceeding." |
|
71 |
- echo "See stack.sh for required passwords." |
|
72 |
- exit 1 |
|
73 |
-fi |
|
74 |
- |
|
75 |
-# Install deps if needed |
|
76 |
-DEPS="kvm libvirt-bin kpartx cloud-utils curl" |
|
77 |
-apt_get install -y --force-yes $DEPS |
|
78 |
- |
|
79 |
-# Where to store files and instances |
|
80 |
-CACHEDIR=${CACHEDIR:-/opt/stack/cache} |
|
81 |
-WORK_DIR=${WORK_DIR:-/opt/ramstack} |
|
82 |
- |
|
83 |
-# Where to store images |
|
84 |
-image_dir=$WORK_DIR/images/$DIST_NAME |
|
85 |
-mkdir -p $image_dir |
|
86 |
- |
|
87 |
-# Get the base image if it does not yet exist |
|
88 |
-if [ ! -e $image_dir/disk ]; then |
|
89 |
- $TOOLS_DIR/get_uec_image.sh -r 2000M $DIST_NAME $image_dir/disk |
|
90 |
-fi |
|
91 |
- |
|
92 |
-# Configure the root password of the vm to be the same as ``ADMIN_PASSWORD`` |
|
93 |
-ROOT_PASSWORD=${ADMIN_PASSWORD:-password} |
|
94 |
- |
|
95 |
-# Name of our instance, used by libvirt |
|
96 |
-GUEST_NAME=${GUEST_NAME:-devstack} |
|
97 |
- |
|
98 |
-# Pre-load the image with basic environment |
|
99 |
-if [ ! -e $image_dir/disk-primed ]; then |
|
100 |
- cp $image_dir/disk $image_dir/disk-primed |
|
101 |
- $TOOLS_DIR/warm_apts_for_uec.sh $image_dir/disk-primed |
|
102 |
- $TOOLS_DIR/copy_dev_environment_to_uec.sh $image_dir/disk-primed |
|
103 |
-fi |
|
104 |
- |
|
105 |
-# Back to devstack |
|
106 |
-cd $TOP_DIR |
|
107 |
- |
|
108 |
-DEST_FILE_TMP=`mktemp $DEST_FILE.XXXXXX` |
|
109 |
-MNT_DIR=`mktemp -d --tmpdir mntXXXXXXXX` |
|
110 |
-cp $image_dir/disk-primed $DEST_FILE_TMP |
|
111 |
-mount -t ext4 -o loop $DEST_FILE_TMP $MNT_DIR |
|
112 |
-mount -o bind /dev /$MNT_DIR/dev |
|
113 |
-cp -p /etc/resolv.conf $MNT_DIR/etc/resolv.conf |
|
114 |
-echo root:$ROOT_PASSWORD | chroot $MNT_DIR chpasswd |
|
115 |
-touch $MNT_DIR/$DEST/.ramdisk |
|
116 |
- |
|
117 |
-# We need to install a non-virtual kernel and modules to boot from |
|
118 |
-if [ ! -r "`ls $MNT_DIR/boot/vmlinuz-*-generic | head -1`" ]; then |
|
119 |
- chroot $MNT_DIR apt-get install -y linux-generic |
|
120 |
-fi |
|
121 |
- |
|
122 |
-git_clone $NOVA_REPO $DEST/nova $NOVA_BRANCH |
|
123 |
-git_clone $GLANCE_REPO $DEST/glance $GLANCE_BRANCH |
|
124 |
-git_clone $KEYSTONE_REPO $DEST/keystone $KEYSTONE_BRANCH |
|
125 |
-git_clone $NOVNC_REPO $DEST/novnc $NOVNC_BRANCH |
|
126 |
-git_clone $HORIZON_REPO $DEST/horizon $HORIZON_BRANCH |
|
127 |
-git_clone $NOVACLIENT_REPO $DEST/python-novaclient $NOVACLIENT_BRANCH |
|
128 |
-git_clone $OPENSTACKX_REPO $DEST/openstackx $OPENSTACKX_BRANCH |
|
129 |
-git_clone $TEMPEST_REPO $DEST/tempest $TEMPEST_BRANCH |
|
130 |
- |
|
131 |
-# Use this version of devstack |
|
132 |
-rm -rf $MNT_DIR/$DEST/devstack |
|
133 |
-cp -pr $TOP_DIR $MNT_DIR/$DEST/devstack |
|
134 |
-chroot $MNT_DIR chown -R stack $DEST/devstack |
|
135 |
- |
|
136 |
-# Configure host network for DHCP |
|
137 |
-mkdir -p $MNT_DIR/etc/network |
|
138 |
-cat > $MNT_DIR/etc/network/interfaces <<EOF |
|
139 |
-auto lo |
|
140 |
-iface lo inet loopback |
|
141 |
- |
|
142 |
-auto eth0 |
|
143 |
-iface eth0 inet dhcp |
|
144 |
-EOF |
|
145 |
- |
|
146 |
-# Set hostname |
|
147 |
-echo "ramstack" >$MNT_DIR/etc/hostname |
|
148 |
-echo "127.0.0.1 localhost ramstack" >$MNT_DIR/etc/hosts |
|
149 |
- |
|
150 |
-# Configure the runner |
|
151 |
-RUN_SH=$MNT_DIR/$DEST/run.sh |
|
152 |
-cat > $RUN_SH <<EOF |
|
153 |
-#!/usr/bin/env bash |
|
154 |
- |
|
155 |
-# Get IP range |
|
156 |
-set \`ip addr show dev eth0 | grep inet\` |
|
157 |
-PREFIX=\`echo \$2 | cut -d. -f1,2,3\` |
|
158 |
-export FLOATING_RANGE="\$PREFIX.224/27" |
|
159 |
- |
|
160 |
-# Kill any existing screens |
|
161 |
-killall screen |
|
162 |
- |
|
163 |
-# Run stack.sh |
|
164 |
-cd $DEST/devstack && \$STACKSH_PARAMS ./stack.sh > $DEST/run.sh.log |
|
165 |
-echo >> $DEST/run.sh.log |
|
166 |
-echo >> $DEST/run.sh.log |
|
167 |
-echo "All done! Time to start clicking." >> $DEST/run.sh.log |
|
168 |
-EOF |
|
169 |
- |
|
170 |
-# Make the run.sh executable |
|
171 |
-chmod 755 $RUN_SH |
|
172 |
-chroot $MNT_DIR chown stack $DEST/run.sh |
|
173 |
- |
|
174 |
-umount $MNT_DIR/dev |
|
175 |
-umount $MNT_DIR |
|
176 |
-rmdir $MNT_DIR |
|
177 |
-mv $DEST_FILE_TMP $DEST_FILE |
|
178 |
-rm -f $DEST_FILE_TMP |
|
179 |
- |
|
180 |
-trap - SIGHUP SIGINT SIGTERM SIGQUIT EXIT |
181 | 1 |
deleted file mode 100755 |
... | ... |
@@ -1,148 +0,0 @@ |
1 |
-#!/bin/bash -e |
|
2 |
- |
|
3 |
-# **build_usb_boot.sh** |
|
4 |
- |
|
5 |
-# Create a syslinux boot environment |
|
6 |
-# |
|
7 |
-# build_usb_boot.sh destdev |
|
8 |
-# |
|
9 |
-# Assumes syslinux is installed |
|
10 |
-# Needs to run as root |
|
11 |
- |
|
12 |
-DEST_DIR=${1:-/tmp/syslinux-boot} |
|
13 |
-PXEDIR=${PXEDIR:-/opt/ramstack/pxe} |
|
14 |
- |
|
15 |
-# Clean up any resources that may be in use |
|
16 |
-function cleanup { |
|
17 |
- set +o errexit |
|
18 |
- |
|
19 |
- # Mop up temporary files |
|
20 |
- if [ -n "$DEST_DEV" ]; then |
|
21 |
- umount $DEST_DIR |
|
22 |
- rmdir $DEST_DIR |
|
23 |
- fi |
|
24 |
- if [ -n "$MNTDIR" -a -d "$MNTDIR" ]; then |
|
25 |
- umount $MNTDIR |
|
26 |
- rmdir $MNTDIR |
|
27 |
- fi |
|
28 |
- |
|
29 |
- # Kill ourselves to signal any calling process |
|
30 |
- trap 2; kill -2 $$ |
|
31 |
-} |
|
32 |
- |
|
33 |
-trap cleanup SIGHUP SIGINT SIGTERM SIGQUIT EXIT |
|
34 |
- |
|
35 |
-# Keep track of the current directory |
|
36 |
-TOOLS_DIR=$(cd $(dirname "$0") && pwd) |
|
37 |
-TOP_DIR=`cd $TOOLS_DIR/..; pwd` |
|
38 |
- |
|
39 |
-if [ -b $DEST_DIR ]; then |
|
40 |
- # We have a block device, install syslinux and mount it |
|
41 |
- DEST_DEV=$DEST_DIR |
|
42 |
- DEST_DIR=`mktemp -d --tmpdir mntXXXXXX` |
|
43 |
- mount $DEST_DEV $DEST_DIR |
|
44 |
- |
|
45 |
- if [ ! -d $DEST_DIR/syslinux ]; then |
|
46 |
- mkdir -p $DEST_DIR/syslinux |
|
47 |
- fi |
|
48 |
- |
|
49 |
- # Install syslinux on the device |
|
50 |
- syslinux --install --directory syslinux $DEST_DEV |
|
51 |
-else |
|
52 |
- # We have a directory (for sanity checking output) |
|
53 |
- DEST_DEV="" |
|
54 |
- if [ ! -d $DEST_DIR/syslinux ]; then |
|
55 |
- mkdir -p $DEST_DIR/syslinux |
|
56 |
- fi |
|
57 |
-fi |
|
58 |
- |
|
59 |
-# Get some more stuff from syslinux |
|
60 |
-for i in memdisk menu.c32; do |
|
61 |
- cp -pu /usr/lib/syslinux/$i $DEST_DIR/syslinux |
|
62 |
-done |
|
63 |
- |
|
64 |
-CFG=$DEST_DIR/syslinux/syslinux.cfg |
|
65 |
-cat >$CFG <<EOF |
|
66 |
-default /syslinux/menu.c32 |
|
67 |
-prompt 0 |
|
68 |
-timeout 0 |
|
69 |
- |
|
70 |
-MENU TITLE devstack Boot Menu |
|
71 |
- |
|
72 |
-EOF |
|
73 |
- |
|
74 |
-# Setup devstack boot |
|
75 |
-mkdir -p $DEST_DIR/ubuntu |
|
76 |
-if [ ! -d $PXEDIR ]; then |
|
77 |
- mkdir -p $PXEDIR |
|
78 |
-fi |
|
79 |
- |
|
80 |
-# Get image into place |
|
81 |
-if [ ! -r $PXEDIR/stack-initrd.img ]; then |
|
82 |
- cd $TOP_DIR |
|
83 |
- $TOOLS_DIR/build_uec_ramdisk.sh $PXEDIR/stack-initrd.img |
|
84 |
-fi |
|
85 |
-if [ ! -r $PXEDIR/stack-initrd.gz ]; then |
|
86 |
- gzip -1 -c $PXEDIR/stack-initrd.img >$PXEDIR/stack-initrd.gz |
|
87 |
-fi |
|
88 |
-cp -pu $PXEDIR/stack-initrd.gz $DEST_DIR/ubuntu |
|
89 |
- |
|
90 |
-if [ ! -r $PXEDIR/vmlinuz-*-generic ]; then |
|
91 |
- MNTDIR=`mktemp -d --tmpdir mntXXXXXXXX` |
|
92 |
- mount -t ext4 -o loop $PXEDIR/stack-initrd.img $MNTDIR |
|
93 |
- |
|
94 |
- if [ ! -r $MNTDIR/boot/vmlinuz-*-generic ]; then |
|
95 |
- echo "No kernel found" |
|
96 |
- umount $MNTDIR |
|
97 |
- rmdir $MNTDIR |
|
98 |
- if [ -n "$DEST_DEV" ]; then |
|
99 |
- umount $DEST_DIR |
|
100 |
- rmdir $DEST_DIR |
|
101 |
- fi |
|
102 |
- exit 1 |
|
103 |
- else |
|
104 |
- cp -pu $MNTDIR/boot/vmlinuz-*-generic $PXEDIR |
|
105 |
- fi |
|
106 |
- umount $MNTDIR |
|
107 |
- rmdir $MNTDIR |
|
108 |
-fi |
|
109 |
- |
|
110 |
-# Get generic kernel version |
|
111 |
-KNAME=`basename $PXEDIR/vmlinuz-*-generic` |
|
112 |
-KVER=${KNAME#vmlinuz-} |
|
113 |
-cp -pu $PXEDIR/vmlinuz-$KVER $DEST_DIR/ubuntu |
|
114 |
-cat >>$CFG <<EOF |
|
115 |
- |
|
116 |
-LABEL devstack |
|
117 |
- MENU LABEL ^devstack |
|
118 |
- MENU DEFAULT |
|
119 |
- KERNEL /ubuntu/vmlinuz-$KVER |
|
120 |
- APPEND initrd=/ubuntu/stack-initrd.gz ramdisk_size=2109600 root=/dev/ram0 |
|
121 |
-EOF |
|
122 |
- |
|
123 |
-# Get Ubuntu |
|
124 |
-if [ -d $PXEDIR -a -r $PXEDIR/natty-base-initrd.gz ]; then |
|
125 |
- cp -pu $PXEDIR/natty-base-initrd.gz $DEST_DIR/ubuntu |
|
126 |
- cat >>$CFG <<EOF |
|
127 |
- |
|
128 |
-LABEL ubuntu |
|
129 |
- MENU LABEL ^Ubuntu Natty |
|
130 |
- KERNEL /ubuntu/vmlinuz-$KVER |
|
131 |
- APPEND initrd=/ubuntu/natty-base-initrd.gz ramdisk_size=419600 root=/dev/ram0 |
|
132 |
-EOF |
|
133 |
-fi |
|
134 |
- |
|
135 |
-# Local disk boot |
|
136 |
-cat >>$CFG <<EOF |
|
137 |
- |
|
138 |
-LABEL local |
|
139 |
- MENU LABEL ^Local disk |
|
140 |
- LOCALBOOT 0 |
|
141 |
-EOF |
|
142 |
- |
|
143 |
-if [ -n "$DEST_DEV" ]; then |
|
144 |
- umount $DEST_DIR |
|
145 |
- rmdir $DEST_DIR |
|
146 |
-fi |
|
147 |
- |
|
148 |
-trap - SIGHUP SIGINT SIGTERM SIGQUIT EXIT |
149 | 1 |
deleted file mode 100755 |
... | ... |
@@ -1,73 +0,0 @@ |
1 |
-#!/usr/bin/env bash |
|
2 |
- |
|
3 |
-# **copy_dev_environment_to_uec.sh** |
|
4 |
- |
|
5 |
-# Echo commands |
|
6 |
-set -o xtrace |
|
7 |
- |
|
8 |
-# Exit on error to stop unexpected errors |
|
9 |
-set -o errexit |
|
10 |
- |
|
11 |
-# Keep track of the current directory |
|
12 |
-TOOLS_DIR=$(cd $(dirname "$0") && pwd) |
|
13 |
-TOP_DIR=$(cd $TOOLS_DIR/..; pwd) |
|
14 |
- |
|
15 |
-# Import common functions |
|
16 |
-. $TOP_DIR/functions |
|
17 |
- |
|
18 |
-# Change dir to top of devstack |
|
19 |
-cd $TOP_DIR |
|
20 |
- |
|
21 |
-# Source params |
|
22 |
-source ./stackrc |
|
23 |
- |
|
24 |
-# Echo usage |
|
25 |
-function usage { |
|
26 |
- echo "Add stack user and keys" |
|
27 |
- echo "" |
|
28 |
- echo "Usage: $0 [full path to raw uec base image]" |
|
29 |
-} |
|
30 |
- |
|
31 |
-# Make sure this is a raw image |
|
32 |
-if ! qemu-img info $1 | grep -q "file format: raw"; then |
|
33 |
- usage |
|
34 |
- exit 1 |
|
35 |
-fi |
|
36 |
- |
|
37 |
-# Mount the image |
|
38 |
-DEST=/opt/stack |
|
39 |
-STAGING_DIR=/tmp/`echo $1 | sed "s/\//_/g"`.stage.user |
|
40 |
-mkdir -p $STAGING_DIR |
|
41 |
-umount $STAGING_DIR || true |
|
42 |
-sleep 1 |
|
43 |
-mount -t ext4 -o loop $1 $STAGING_DIR |
|
44 |
-mkdir -p $STAGING_DIR/$DEST |
|
45 |
- |
|
46 |
-# Create a stack user that is a member of the libvirtd group so that stack |
|
47 |
-# is able to interact with libvirt. |
|
48 |
-chroot $STAGING_DIR groupadd libvirtd || true |
|
49 |
-chroot $STAGING_DIR useradd $STACK_USER -s /bin/bash -d $DEST -G libvirtd || true |
|
50 |
- |
|
51 |
-# Add a simple password - pass |
|
52 |
-echo $STACK_USER:pass | chroot $STAGING_DIR chpasswd |
|
53 |
- |
|
54 |
-# Configure sudo |
|
55 |
-( umask 226 && echo "$STACK_USER ALL=(ALL) NOPASSWD:ALL" \ |
|
56 |
- > $STAGING_DIR/etc/sudoers.d/50_stack_sh ) |
|
57 |
- |
|
58 |
-# Copy over your ssh keys and env if desired |
|
59 |
-cp_it ~/.ssh $STAGING_DIR/$DEST/.ssh |
|
60 |
-cp_it ~/.ssh/id_rsa.pub $STAGING_DIR/$DEST/.ssh/authorized_keys |
|
61 |
-cp_it ~/.gitconfig $STAGING_DIR/$DEST/.gitconfig |
|
62 |
-cp_it ~/.vimrc $STAGING_DIR/$DEST/.vimrc |
|
63 |
-cp_it ~/.bashrc $STAGING_DIR/$DEST/.bashrc |
|
64 |
- |
|
65 |
-# Copy devstack |
|
66 |
-rm -rf $STAGING_DIR/$DEST/devstack |
|
67 |
-cp_it . $STAGING_DIR/$DEST/devstack |
|
68 |
- |
|
69 |
-# Give stack ownership over $DEST so it may do the work needed |
|
70 |
-chroot $STAGING_DIR chown -R $STACK_USER $DEST |
|
71 |
- |
|
72 |
-# Unmount |
|
73 |
-umount $STAGING_DIR |
74 | 1 |
deleted file mode 100755 |
... | ... |
@@ -1,109 +0,0 @@ |
1 |
-#!/bin/bash |
|
2 |
- |
|
3 |
-# **get_uec_image.sh** |
|
4 |
- |
|
5 |
-# Download and prepare Ubuntu UEC images |
|
6 |
- |
|
7 |
-CACHEDIR=${CACHEDIR:-/opt/stack/cache} |
|
8 |
-ROOTSIZE=${ROOTSIZE:-2000M} |
|
9 |
- |
|
10 |
-# Keep track of the current directory |
|
11 |
-TOOLS_DIR=$(cd $(dirname "$0") && pwd) |
|
12 |
-TOP_DIR=$(cd $TOOLS_DIR/..; pwd) |
|
13 |
- |
|
14 |
-# Import common functions |
|
15 |
-. $TOP_DIR/functions |
|
16 |
- |
|
17 |
-# Exit on error to stop unexpected errors |
|
18 |
-set -o errexit |
|
19 |
-set -o xtrace |
|
20 |
- |
|
21 |
-function usage { |
|
22 |
- echo "Usage: $0 - Download and prepare Ubuntu UEC images" |
|
23 |
- echo "" |
|
24 |
- echo "$0 [-r rootsize] release imagefile [kernel]" |
|
25 |
- echo "" |
|
26 |
- echo "-r size - root fs size (min 2000MB)" |
|
27 |
- echo "release - Ubuntu release: lucid - quantal" |
|
28 |
- echo "imagefile - output image file" |
|
29 |
- echo "kernel - output kernel" |
|
30 |
- exit 1 |
|
31 |
-} |
|
32 |
- |
|
33 |
-# Clean up any resources that may be in use |
|
34 |
-function cleanup { |
|
35 |
- set +o errexit |
|
36 |
- |
|
37 |
- # Mop up temporary files |
|
38 |
- if [ -n "$IMG_FILE_TMP" -a -e "$IMG_FILE_TMP" ]; then |
|
39 |
- rm -f $IMG_FILE_TMP |
|
40 |
- fi |
|
41 |
- |
|
42 |
- # Kill ourselves to signal any calling process |
|
43 |
- trap 2; kill -2 $$ |
|
44 |
-} |
|
45 |
- |
|
46 |
-while getopts hr: c; do |
|
47 |
- case $c in |
|
48 |
- h) usage |
|
49 |
- ;; |
|
50 |
- r) ROOTSIZE=$OPTARG |
|
51 |
- ;; |
|
52 |
- esac |
|
53 |
-done |
|
54 |
-shift `expr $OPTIND - 1` |
|
55 |
- |
|
56 |
-if [[ ! "$#" -eq "2" && ! "$#" -eq "3" ]]; then |
|
57 |
- usage |
|
58 |
-fi |
|
59 |
- |
|
60 |
-# Default args |
|
61 |
-DIST_NAME=$1 |
|
62 |
-IMG_FILE=$2 |
|
63 |
-IMG_FILE_TMP=`mktemp $IMG_FILE.XXXXXX` |
|
64 |
-KERNEL=$3 |
|
65 |
- |
|
66 |
-case $DIST_NAME in |
|
67 |
- saucy) ;; |
|
68 |
- raring) ;; |
|
69 |
- quantal) ;; |
|
70 |
- precise) ;; |
|
71 |
- *) echo "Unknown release: $DIST_NAME" |
|
72 |
- usage |
|
73 |
- ;; |
|
74 |
-esac |
|
75 |
- |
|
76 |
-trap cleanup SIGHUP SIGINT SIGTERM SIGQUIT EXIT |
|
77 |
- |
|
78 |
-# Check dependencies |
|
79 |
-if [ ! -x "`which qemu-img`" -o -z "`dpkg -l | grep cloud-utils`" ]; then |
|
80 |
- # Missing KVM? |
|
81 |
- apt_get install qemu-kvm cloud-utils |
|
82 |
-fi |
|
83 |
- |
|
84 |
-# Find resize script |
|
85 |
-RESIZE=`which resize-part-image || which uec-resize-image` |
|
86 |
-if [ -z "$RESIZE" ]; then |
|
87 |
- echo "resize tool from cloud-utils not found" |
|
88 |
- exit 1 |
|
89 |
-fi |
|
90 |
- |
|
91 |
-# Get the UEC image |
|
92 |
-UEC_NAME=$DIST_NAME-server-cloudimg-amd64 |
|
93 |
-if [ ! -d $CACHEDIR/$DIST_NAME ]; then |
|
94 |
- mkdir -p $CACHEDIR/$DIST_NAME |
|
95 |
-fi |
|
96 |
-if [ ! -e $CACHEDIR/$DIST_NAME/$UEC_NAME.tar.gz ]; then |
|
97 |
- (cd $CACHEDIR/$DIST_NAME && wget -N http://uec-images.ubuntu.com/$DIST_NAME/current/$UEC_NAME.tar.gz) |
|
98 |
- (cd $CACHEDIR/$DIST_NAME && tar Sxvzf $UEC_NAME.tar.gz) |
|
99 |
-fi |
|
100 |
- |
|
101 |
-$RESIZE $CACHEDIR/$DIST_NAME/$UEC_NAME.img ${ROOTSIZE} $IMG_FILE_TMP |
|
102 |
-mv $IMG_FILE_TMP $IMG_FILE |
|
103 |
- |
|
104 |
-# Copy kernel to destination |
|
105 |
-if [ -n "$KERNEL" ]; then |
|
106 |
- cp -p $CACHEDIR/$DIST_NAME/*-vmlinuz-virtual $KERNEL |
|
107 |
-fi |
|
108 |
- |
|
109 |
-trap - SIGHUP SIGINT SIGTERM SIGQUIT EXIT |
110 | 1 |
deleted file mode 100755 |
... | ... |
@@ -1,221 +0,0 @@ |
1 |
-#!/bin/bash |
|
2 |
- |
|
3 |
-# **install_openvpn.sh** |
|
4 |
- |
|
5 |
-# Install OpenVPN and generate required certificates |
|
6 |
-# |
|
7 |
-# install_openvpn.sh --client name |
|
8 |
-# install_openvpn.sh --server [name] |
|
9 |
-# |
|
10 |
-# name is used on the CN of the generated cert, and the filename of |
|
11 |
-# the configuration, certificate and key files. |
|
12 |
-# |
|
13 |
-# --server mode configures the host with a running OpenVPN server instance |
|
14 |
-# --client mode creates a tarball of a client configuration for this server |
|
15 |
- |
|
16 |
-# Get config file |
|
17 |
-if [ -e localrc ]; then |
|
18 |
- . localrc |
|
19 |
-fi |
|
20 |
-if [ -e vpnrc ]; then |
|
21 |
- . vpnrc |
|
22 |
-fi |
|
23 |
- |
|
24 |
-# Do some IP manipulation |
|
25 |
-function cidr2netmask { |
|
26 |
- set -- $(( 5 - ($1 / 8) )) 255 255 255 255 $(( (255 << (8 - ($1 % 8))) & 255 )) 0 0 0 |
|
27 |
- if [[ $1 -gt 1 ]]; then |
|
28 |
- shift $1 |
|
29 |
- else |
|
30 |
- shift |
|
31 |
- fi |
|
32 |
- echo ${1-0}.${2-0}.${3-0}.${4-0} |
|
33 |
-} |
|
34 |
- |
|
35 |
-FIXED_NET=`echo $FIXED_RANGE | cut -d'/' -f1` |
|
36 |
-FIXED_CIDR=`echo $FIXED_RANGE | cut -d'/' -f2` |
|
37 |
-FIXED_MASK=`cidr2netmask $FIXED_CIDR` |
|
38 |
- |
|
39 |
-# VPN Config |
|
40 |
-VPN_SERVER=${VPN_SERVER:-`ifconfig eth0 | awk "/inet addr:/ { print \$2 }" | cut -d: -f2`} # 50.56.12.212 |
|
41 |
-VPN_PROTO=${VPN_PROTO:-tcp} |
|
42 |
-VPN_PORT=${VPN_PORT:-6081} |
|
43 |
-VPN_DEV=${VPN_DEV:-tap0} |
|
44 |
-VPN_BRIDGE=${VPN_BRIDGE:-br100} |
|
45 |
-VPN_BRIDGE_IF=${VPN_BRIDGE_IF:-$FLAT_INTERFACE} |
|
46 |
-VPN_CLIENT_NET=${VPN_CLIENT_NET:-$FIXED_NET} |
|
47 |
-VPN_CLIENT_MASK=${VPN_CLIENT_MASK:-$FIXED_MASK} |
|
48 |
-VPN_CLIENT_DHCP="${VPN_CLIENT_DHCP:-net.1 net.254}" |
|
49 |
- |
|
50 |
-VPN_DIR=/etc/openvpn |
|
51 |
-CA_DIR=$VPN_DIR/easy-rsa |
|
52 |
- |
|
53 |
-function usage { |
|
54 |
- echo "$0 - OpenVPN install and certificate generation" |
|
55 |
- echo "" |
|
56 |
- echo "$0 --client name" |
|
57 |
- echo "$0 --server [name]" |
|
58 |
- echo "" |
|
59 |
- echo " --server mode configures the host with a running OpenVPN server instance" |
|
60 |
- echo " --client mode creates a tarball of a client configuration for this server" |
|
61 |
- exit 1 |
|
62 |
-} |
|
63 |
- |
|
64 |
-if [ -z $1 ]; then |
|
65 |
- usage |
|
66 |
-fi |
|
67 |
- |
|
68 |
-# Install OpenVPN |
|
69 |
-VPN_EXEC=`which openvpn` |
|
70 |
-if [ -z "$VPN_EXEC" -o ! -x "$VPN_EXEC" ]; then |
|
71 |
- apt-get install -y openvpn bridge-utils |
|
72 |
-fi |
|
73 |
-if [ ! -d $CA_DIR ]; then |
|
74 |
- cp -pR /usr/share/doc/openvpn/examples/easy-rsa/2.0/ $CA_DIR |
|
75 |
-fi |
|
76 |
- |
|
77 |
-# Keep track of the current directory |
|
78 |
-TOOLS_DIR=$(cd $(dirname "$0") && pwd) |
|
79 |
-TOP_DIR=$(cd $TOOLS_DIR/.. && pwd) |
|
80 |
- |
|
81 |
-WEB_DIR=$TOP_DIR/../vpn |
|
82 |
-if [[ ! -d $WEB_DIR ]]; then |
|
83 |
- mkdir -p $WEB_DIR |
|
84 |
-fi |
|
85 |
-WEB_DIR=$(cd $TOP_DIR/../vpn && pwd) |
|
86 |
- |
|
87 |
-cd $CA_DIR |
|
88 |
-source ./vars |
|
89 |
- |
|
90 |
-# Override the defaults |
|
91 |
-export KEY_COUNTRY="US" |
|
92 |
-export KEY_PROVINCE="TX" |
|
93 |
-export KEY_CITY="SanAntonio" |
|
94 |
-export KEY_ORG="Cloudbuilders" |
|
95 |
-export KEY_EMAIL="rcb@lists.rackspace.com" |
|
96 |
- |
|
97 |
-if [ ! -r $CA_DIR/keys/dh1024.pem ]; then |
|
98 |
- # Initialize a new CA |
|
99 |
- $CA_DIR/clean-all |
|
100 |
- $CA_DIR/build-dh |
|
101 |
- $CA_DIR/pkitool --initca |
|
102 |
- openvpn --genkey --secret $CA_DIR/keys/ta.key ## Build a TLS key |
|
103 |
-fi |
|
104 |
- |
|
105 |
-function do_server { |
|
106 |
- NAME=$1 |
|
107 |
- # Generate server certificate |
|
108 |
- $CA_DIR/pkitool --server $NAME |
|
109 |
- |
|
110 |
- (cd $CA_DIR/keys; |
|
111 |
- cp $NAME.crt $NAME.key ca.crt dh1024.pem ta.key $VPN_DIR |
|
112 |
- ) |
|
113 |
- cat >$VPN_DIR/br-up <<EOF |
|
114 |
-#!/bin/bash |
|
115 |
- |
|
116 |
-BR="$VPN_BRIDGE" |
|
117 |
-TAP="\$1" |
|
118 |
- |
|
119 |
-if [[ ! -d /sys/class/net/\$BR ]]; then |
|
120 |
- brctl addbr \$BR |
|
121 |
-fi |
|
122 |
- |
|
123 |
-for t in \$TAP; do |
|
124 |
- openvpn --mktun --dev \$t |
|
125 |
- brctl addif \$BR \$t |
|
126 |
- ifconfig \$t 0.0.0.0 promisc up |
|
127 |
-done |
|
128 |
-EOF |
|
129 |
- chmod +x $VPN_DIR/br-up |
|
130 |
- cat >$VPN_DIR/br-down <<EOF |
|
131 |
-#!/bin/bash |
|
132 |
- |
|
133 |
-BR="$VPN_BRIDGE" |
|
134 |
-TAP="\$1" |
|
135 |
- |
|
136 |
-for i in \$TAP; do |
|
137 |
- brctl delif \$BR $t |
|
138 |
- openvpn --rmtun --dev \$i |
|
139 |
-done |
|
140 |
-EOF |
|
141 |
- chmod +x $VPN_DIR/br-down |
|
142 |
- cat >$VPN_DIR/$NAME.conf <<EOF |
|
143 |
-proto $VPN_PROTO |
|
144 |
-port $VPN_PORT |
|
145 |
-dev $VPN_DEV |
|
146 |
-up $VPN_DIR/br-up |
|
147 |
-down $VPN_DIR/br-down |
|
148 |
-cert $NAME.crt |
|
149 |
-key $NAME.key # This file should be kept secret |
|
150 |
-ca ca.crt |
|
151 |
-dh dh1024.pem |
|
152 |
-duplicate-cn |
|
153 |
-server-bridge $VPN_CLIENT_NET $VPN_CLIENT_MASK $VPN_CLIENT_DHCP |
|
154 |
-ifconfig-pool-persist ipp.txt |
|
155 |
-comp-lzo |
|
156 |
-user nobody |
|
157 |
-group nogroup |
|
158 |
-persist-key |
|
159 |
-persist-tun |
|
160 |
-status openvpn-status.log |
|
161 |
-EOF |
|
162 |
- /etc/init.d/openvpn restart |
|
163 |
-} |
|
164 |
- |
|
165 |
-function do_client { |
|
166 |
- NAME=$1 |
|
167 |
- # Generate a client certificate |
|
168 |
- $CA_DIR/pkitool $NAME |
|
169 |
- |
|
170 |
- TMP_DIR=`mktemp -d` |
|
171 |
- (cd $CA_DIR/keys; |
|
172 |
- cp -p ca.crt ta.key $NAME.key $NAME.crt $TMP_DIR |
|
173 |
- ) |
|
174 |
- if [ -r $VPN_DIR/hostname ]; then |
|
175 |
- HOST=`cat $VPN_DIR/hostname` |
|
176 |
- else |
|
177 |
- HOST=`hostname` |
|
178 |
- fi |
|
179 |
- cat >$TMP_DIR/$HOST.conf <<EOF |
|
180 |
-proto $VPN_PROTO |
|
181 |
-port $VPN_PORT |
|
182 |
-dev $VPN_DEV |
|
183 |
-cert $NAME.crt |
|
184 |
-key $NAME.key # This file should be kept secret |
|
185 |
-ca ca.crt |
|
186 |
-client |
|
187 |
-remote $VPN_SERVER $VPN_PORT |
|
188 |
-resolv-retry infinite |
|
189 |
-nobind |
|
190 |
-user nobody |
|
191 |
-group nogroup |
|
192 |
-persist-key |
|
193 |
-persist-tun |
|
194 |
-comp-lzo |
|
195 |
-verb 3 |
|
196 |
-EOF |
|
197 |
- (cd $TMP_DIR; tar cf $WEB_DIR/$NAME.tar *) |
|
198 |
- rm -rf $TMP_DIR |
|
199 |
- echo "Client certificate and configuration is in $WEB_DIR/$NAME.tar" |
|
200 |
-} |
|
201 |
- |
|
202 |
-# Process command line args |
|
203 |
-case $1 in |
|
204 |
- --client) if [ -z $2 ]; then |
|
205 |
- usage |
|
206 |
- fi |
|
207 |
- do_client $2 |
|
208 |
- ;; |
|
209 |
- --server) if [ -z $2 ]; then |
|
210 |
- NAME=`hostname` |
|
211 |
- else |
|
212 |
- NAME=$2 |
|
213 |
- # Save for --client use |
|
214 |
- echo $NAME >$VPN_DIR/hostname |
|
215 |
- fi |
|
216 |
- do_server $NAME |
|
217 |
- ;; |
|
218 |
- --clean) $CA_DIR/clean-all |
|
219 |
- ;; |
|
220 |
- *) usage |
|
221 |
-esac |
222 | 1 |
deleted file mode 100755 |
... | ... |
@@ -1,53 +0,0 @@ |
1 |
-#!/usr/bin/env bash |
|
2 |
- |
|
3 |
-# **warm_apts_for_uec.sh** |
|
4 |
- |
|
5 |
-# Echo commands |
|
6 |
-set -o xtrace |
|
7 |
- |
|
8 |
-# Exit on error to stop unexpected errors |
|
9 |
-set -o errexit |
|
10 |
- |
|
11 |
-# Keep track of the current directory |
|
12 |
-TOOLS_DIR=$(cd $(dirname "$0") && pwd) |
|
13 |
-TOP_DIR=`cd $TOOLS_DIR/..; pwd` |
|
14 |
- |
|
15 |
-# Change dir to top of devstack |
|
16 |
-cd $TOP_DIR |
|
17 |
- |
|
18 |
-# Echo usage |
|
19 |
-function usage { |
|
20 |
- echo "Cache OpenStack dependencies on a uec image to speed up performance." |
|
21 |
- echo "" |
|
22 |
- echo "Usage: $0 [full path to raw uec base image]" |
|
23 |
-} |
|
24 |
- |
|
25 |
-# Make sure this is a raw image |
|
26 |
-if ! qemu-img info $1 | grep -q "file format: raw"; then |
|
27 |
- usage |
|
28 |
- exit 1 |
|
29 |
-fi |
|
30 |
- |
|
31 |
-# Make sure we are in the correct dir |
|
32 |
-if [ ! -d files/apts ]; then |
|
33 |
- echo "Please run this script from devstack/tools/" |
|
34 |
- exit 1 |
|
35 |
-fi |
|
36 |
- |
|
37 |
-# Mount the image |
|
38 |
-STAGING_DIR=/tmp/`echo $1 | sed "s/\//_/g"`.stage |
|
39 |
-mkdir -p $STAGING_DIR |
|
40 |
-umount $STAGING_DIR || true |
|
41 |
-sleep 1 |
|
42 |
-mount -t ext4 -o loop $1 $STAGING_DIR |
|
43 |
- |
|
44 |
-# Make sure that base requirements are installed |
|
45 |
-cp /etc/resolv.conf $STAGING_DIR/etc/resolv.conf |
|
46 |
- |
|
47 |
-# Perform caching on the base image to speed up subsequent runs |
|
48 |
-chroot $STAGING_DIR apt-get update |
|
49 |
-chroot $STAGING_DIR apt-get install -y --download-only `cat files/apts/* | grep NOPRIME | cut -d\# -f1` |
|
50 |
-chroot $STAGING_DIR apt-get install -y --force-yes `cat files/apts/* | grep -v NOPRIME | cut -d\# -f1` || true |
|
51 |
- |
|
52 |
-# Unmount |
|
53 |
-umount $STAGING_DIR |