make build_lxc.sh work on oneiric
This commit is contained in:
parent
1046d94ec1
commit
9ff71acb08
1 changed files with 26 additions and 9 deletions
|
@ -6,10 +6,8 @@ if [ "$EUID" -ne "0" ]; then
|
||||||
exit 1
|
exit 1
|
||||||
fi
|
fi
|
||||||
|
|
||||||
# Warn users who aren't on natty
|
# Keep track of ubuntu version
|
||||||
if ! grep -q natty /etc/lsb-release; then
|
UBUNTU_VERSION=`cat /etc/lsb-release | grep CODENAME | sed 's/.*=//g'`
|
||||||
echo "WARNING: this script has only been tested on natty"
|
|
||||||
fi
|
|
||||||
|
|
||||||
# Move to top devstack dir
|
# Move to top devstack dir
|
||||||
cd ..
|
cd ..
|
||||||
|
@ -92,8 +90,21 @@ function git_clone {
|
||||||
fi
|
fi
|
||||||
}
|
}
|
||||||
|
|
||||||
|
# Helper to create the container
|
||||||
|
function create_lxc {
|
||||||
|
if [ "natty" = "$UBUNTU_VERSION" ]; then
|
||||||
|
lxc-create -n $CONTAINER -t natty -f $LXC_CONF
|
||||||
|
else
|
||||||
|
lxc-create -n $CONTAINER -t ubuntu -f $LXC_CONF
|
||||||
|
fi
|
||||||
|
}
|
||||||
|
|
||||||
# Location of the base image directory
|
# Location of the base image directory
|
||||||
|
if [ "natty" = "$UBUNTU_VERSION" ]; then
|
||||||
CACHEDIR=/var/cache/lxc/natty/rootfs-amd64
|
CACHEDIR=/var/cache/lxc/natty/rootfs-amd64
|
||||||
|
else
|
||||||
|
CACHEDIR=/var/cache/lxc/oneiric/rootfs-amd64
|
||||||
|
fi
|
||||||
|
|
||||||
# Provide option to do totally clean install
|
# Provide option to do totally clean install
|
||||||
if [ "$CLEAR_LXC_CACHE" = "1" ]; then
|
if [ "$CLEAR_LXC_CACHE" = "1" ]; then
|
||||||
|
@ -106,7 +117,7 @@ if [ ! -f $CACHEDIR/bootstrapped ]; then
|
||||||
# lazy and doesn't do anything if a container already exists)
|
# lazy and doesn't do anything if a container already exists)
|
||||||
lxc-destroy -n $CONTAINER
|
lxc-destroy -n $CONTAINER
|
||||||
# trigger the initial debootstrap
|
# trigger the initial debootstrap
|
||||||
lxc-create -n $CONTAINER -t natty -f $LXC_CONF
|
create_lxc
|
||||||
chroot $CACHEDIR apt-get update
|
chroot $CACHEDIR apt-get update
|
||||||
chroot $CACHEDIR apt-get install -y --force-yes `cat files/apts/* | cut -d\# -f1 | egrep -v "(rabbitmq|libvirt-bin|mysql-server)"`
|
chroot $CACHEDIR apt-get install -y --force-yes `cat files/apts/* | cut -d\# -f1 | egrep -v "(rabbitmq|libvirt-bin|mysql-server)"`
|
||||||
chroot $CACHEDIR pip install `cat files/pips/*`
|
chroot $CACHEDIR pip install `cat files/pips/*`
|
||||||
|
@ -143,7 +154,7 @@ if [ "$TERMINATE" = "1" ]; then
|
||||||
fi
|
fi
|
||||||
|
|
||||||
# Create the container
|
# Create the container
|
||||||
lxc-create -n $CONTAINER -t natty -f $LXC_CONF
|
create_lxc
|
||||||
|
|
||||||
# Specify where our container rootfs lives
|
# Specify where our container rootfs lives
|
||||||
ROOTFS=/var/lib/lxc/$CONTAINER/rootfs/
|
ROOTFS=/var/lib/lxc/$CONTAINER/rootfs/
|
||||||
|
@ -207,6 +218,10 @@ cat > $RUN_SH <<EOF
|
||||||
#!/usr/bin/env bash
|
#!/usr/bin/env bash
|
||||||
# Make sure dns is set up
|
# Make sure dns is set up
|
||||||
echo "nameserver $NAMESERVER" | sudo resolvconf -a eth0
|
echo "nameserver $NAMESERVER" | sudo resolvconf -a eth0
|
||||||
|
# Make there is a default route - needed for natty
|
||||||
|
if ! route | grep -q default; then
|
||||||
|
sudo ip route add default via $CONTAINER_GATEWAY
|
||||||
|
fi
|
||||||
sleep 1
|
sleep 1
|
||||||
|
|
||||||
# Kill any existing screens
|
# Kill any existing screens
|
||||||
|
@ -218,7 +233,7 @@ sudo apt-get -y --force-yes install git-core vim-nox sudo
|
||||||
if [ ! -d "$DEST/devstack" ]; then
|
if [ ! -d "$DEST/devstack" ]; then
|
||||||
git clone git://github.com/cloudbuilders/devstack.git $DEST/devstack
|
git clone git://github.com/cloudbuilders/devstack.git $DEST/devstack
|
||||||
fi
|
fi
|
||||||
cd $DEST/devstack && $STACKSH_PARAMS ./stack.sh > /$DEST/run.sh.log
|
cd $DEST/devstack && $STACKSH_PARAMS FORCE=yes ./stack.sh > /$DEST/run.sh.log
|
||||||
echo >> /$DEST/run.sh.log
|
echo >> /$DEST/run.sh.log
|
||||||
echo >> /$DEST/run.sh.log
|
echo >> /$DEST/run.sh.log
|
||||||
echo "All done! Time to start clicking." >> /$DEST/run.sh.log
|
echo "All done! Time to start clicking." >> /$DEST/run.sh.log
|
||||||
|
@ -228,11 +243,13 @@ EOF
|
||||||
chmod 755 $RUN_SH
|
chmod 755 $RUN_SH
|
||||||
|
|
||||||
# Make runner launch on boot
|
# Make runner launch on boot
|
||||||
RC_LOCAL=$ROOTFS/etc/rc.local
|
RC_LOCAL=$ROOTFS/etc/init.d/local
|
||||||
cat > $RC_LOCAL <<EOF
|
cat > $RC_LOCAL <<EOF
|
||||||
#!/bin/sh -e
|
#!/bin/sh -e
|
||||||
su -c "$DEST/run.sh" stack
|
su -c "$DEST/run.sh" stack
|
||||||
EOF
|
EOF
|
||||||
|
chmod +x $RC_LOCAL
|
||||||
|
chroot $ROOTFS sudo update-rc.d local defaults 80
|
||||||
|
|
||||||
# Configure cgroup directory
|
# Configure cgroup directory
|
||||||
if ! mount | grep -q cgroup; then
|
if ! mount | grep -q cgroup; then
|
||||||
|
|
Loading…
Reference in a new issue