]> git.apps.os.sepia.ceph.com Git - ceph.git/commitdiff
Add script to create a vm image with extra packages
authorJosh Durgin <josh.durgin@inktank.com>
Fri, 22 Jun 2012 02:23:42 +0000 (19:23 -0700)
committerJosh Durgin <josh.durgin@inktank.com>
Fri, 22 Jun 2012 02:23:42 +0000 (19:23 -0700)
build_qemu_image.sh [new file with mode: 0755]

diff --git a/build_qemu_image.sh b/build_qemu_image.sh
new file mode 100755 (executable)
index 0000000..614f519
--- /dev/null
@@ -0,0 +1,61 @@
+#!/bin/sh -x
+set -e
+
+IMAGE_URL=http://cloud-images.ubuntu.com/releases/precise/release/ubuntu-12.04-server-cloudimg-amd64-disk1.img
+
+wget -O base.qcow2 $IMAGE_URL
+
+image=base.raw
+qemu-img convert -O raw base.qcow2 $image
+rm -f base.qcow2
+
+# Note: this assumes that sector size is 512, and that there's only one
+# partition. very brittle.
+START_SECT=$(fdisk -lu $image | grep ^$image | awk '{print $3}')
+START_BYTE=$(echo "$START_SECT * 512" | bc)
+
+root=/tmp/$$
+
+cleanup() {
+    sudo chroot $root rm -f /etc/resolv.conf || true
+    sudo chroot $root ln -s ../run/resolvconf/resolv.conf /etc/resolv.conf || true
+       sudo umount $root/proc || true
+       sudo umount $root/sys || true
+       sudo umount $root/dev/pts || true
+       sudo umount $root
+    sudo rmdir $root
+}
+trap cleanup INT TERM EXIT
+
+sudo mkdir $root
+sudo mount -o loop,offset=$START_BYTE $image $root
+
+# set up chroot
+sudo mount -t proc proc $root/proc
+sudo mount -t sysfs sysfs $root/sys
+sudo mount -t devpts devptr $root/dev/pts
+
+# set up network access
+sudo chroot $root rm /etc/resolv.conf
+sudo cp /etc/resolv.conf $root/etc/resolv.conf
+
+# packages
+# These should be kept in sync with ceph-qa-chef.git/cookbooks/ceph-qa/default.rb
+sudo chroot $root apt-get -y --force-yes install iozone3 bonnie++ dbench \
+    tiobench build-essential attr libtool automake gettext uuid-dev      \
+    libacl1-dev bc xfsdump dmapi xfslibs-dev
+
+# install ltp without ltp-network-test, so we don't pull in xinetd and
+# a bunch of other unnecessary stuff
+sudo chroot $root apt-get -y --force-yes --no-install-recommends install ltp-kernel-test
+
+# add 9p fs support
+sudo chroot $root apt-get -y --force-yes install linux-image-extra-virtual
+
+cleanup
+trap - INT TERM EXIT
+
+qemu-img convert -O qcow2 $image output.qcow2
+rm -f $image
+
+exit 0