From 1ae746f68f0e4409197365f775defd9ae901a96c Mon Sep 17 00:00:00 2001 From: Devrandom Date: Sun, 17 May 2015 10:35:19 -0700 Subject: [PATCH] LXC cleanup --- bin/make-base-vm | 48 ++++++++++++++++------------------- target-bin/bootstrap-fixup.in | 12 ++++++--- 2 files changed, 31 insertions(+), 29 deletions(-) diff --git a/bin/make-base-vm b/bin/make-base-vm index c326451..7fc7818 100755 --- a/bin/make-base-vm +++ b/bin/make-base-vm @@ -74,7 +74,7 @@ if [ $ARCH = "amd64" -a $SUITE = "hardy" ]; then FLAVOUR=server fi -addpkg=pciutils,build-essential,git-core,subversion +addpkg=pciutils,build-essential,git-core,subversion,language-pack-en if [ $LXC = "1" ]; then addpkg=$addpkg,lxc @@ -108,37 +108,33 @@ fi if [ $LXC = "1" ]; then if [ -e $OUT ]; then echo $OUT already exists, please remove it first - #exit 1 + exit 1 fi + sudo rm -rf $OUT-bootstrap + # Need universe for lxc in lucid + env -i LANG=en_US.UTF-8 LC_ALL=en_US.UTF-8 sudo debootstrap --arch=$ARCH --include=$addpkg --exclude=$removepkg --components=main,universe $SUITE $OUT-bootstrap $MIRROR + dd if=/dev/zero of=$OUT-lxc bs=1M count=1 seek=10240 + mkfs.ext4 -F $OUT-lxc + t=`mktemp -d gitian.XXXXXXXX` + sudo mount $OUT-lxc $t + sudo cp -a $OUT-bootstrap/* $t + sudo umount $t + rmdir $t + + sudo rm -rf $OUT-bootstrap + mv $OUT-lxc $OUT + # bootstrap-fixup is done in libexec/make-clean-vm else if [ -e $OUT.qcow2 ]; then echo $OUT.qcow2 already exists, please remove it first exit 1 fi -fi - -if [ $LXC = "1" ]; then - sudo rm -rf $OUT-bootstrap - # Need universe for lxc in lucid - env -i LANG=en_US.UTF-8 LC_ALL=en_US.UTF-8 sudo debootstrap --arch=$ARCH --include=$addpkg --exclude=$removepkg --components=main,universe $SUITE $OUT-bootstrap $MIRROR - dd if=/dev/zero of=$OUT-lxc bs=1M count=1 seek=10240 - mkfs.ext4 $OUT-lxc - t=`mktemp -d gitian.XXXXXXXX` - sudo mount $OUT-lxc $t - sudo cp -a $OUT-bootstrap/* $t - sudo umount $t - rmdir $t - - sudo rm -rf $OUT-bootstrap - mv $OUT-lxc $OUT - # bootstrap-fixup is done in libexec/make-clean-vm -else - libexec/config-bootstrap-fixup + libexec/config-bootstrap-fixup - rm -rf $OUT - env -i LANG=en_US.UTF-8 LC_ALL=en_US.UTF-8 sudo vmbuilder kvm ubuntu --rootsize 10240 --arch=$ARCH --suite=$SUITE --addpkg=$addpkg --removepkg=$removepkg --ssh-key=var/id_dsa.pub --ssh-user-key=var/id_dsa.pub --mirror=$MIRROR --security-mirror=$SECURITY_MIRROR --dest=$OUT --flavour=$FLAVOUR --firstboot=`pwd`/target-bin/bootstrap-fixup - mv $OUT/*.qcow2 $OUT.qcow2 - rm -rf $OUT - # bootstrap-fixup is done on first boot + rm -rf $OUT + env -i LANG=en_US.UTF-8 LC_ALL=en_US.UTF-8 sudo vmbuilder kvm ubuntu --rootsize 10240 --arch=$ARCH --suite=$SUITE --addpkg=$addpkg --removepkg=$removepkg --ssh-key=var/id_dsa.pub --ssh-user-key=var/id_dsa.pub --mirror=$MIRROR --security-mirror=$SECURITY_MIRROR --dest=$OUT --flavour=$FLAVOUR --firstboot=`pwd`/target-bin/bootstrap-fixup + mv $OUT/*.qcow2 $OUT.qcow2 + rm -rf $OUT + # bootstrap-fixup is done on first boot fi diff --git a/target-bin/bootstrap-fixup.in b/target-bin/bootstrap-fixup.in index a043074..5d77cf2 100755 --- a/target-bin/bootstrap-fixup.in +++ b/target-bin/bootstrap-fixup.in @@ -11,12 +11,18 @@ echo '127.0.1.1 gitian' >> /etc/hosts # If LXC if grep /lxc/gitian /proc/1/cgroup > /dev/null; then + adduser --disabled-password --gecos ubuntu --quiet ubuntu || true apt-get remove -y rsyslog dpkg-divert --local --rename --add /sbin/initctl ln -s /bin/true /sbin/initctl dpkg-divert --local --rename --add /usr/bin/ischroot ln -s /bin/true /usr/bin/ischroot - for pkg in lxc cgmanager udev plymouth dmsetup upstart; do - echo $pkg hold | dpkg --set-selections || true - done + # Prevent interaction with init during upgrades + dpkg-divert --local --rename --add /usr/sbin/policy-rc.d + echo 'exit 101' > /usr/sbin/policy-rc.d + chmod +x /usr/sbin/policy-rc.d +## These are superceded by the policy-rc.d fix above +# for pkg in lxc cgmanager udev plymouth dmsetup upstart; do +# echo $pkg hold | dpkg --set-selections || true +# done fi