Browse code

Merge "Remove unused tools"

Jenkins authored on 2014/08/05 00:26:51
Showing 10 changed files
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