mirror of
https://github.com/ceph/ceph
synced 2025-03-11 02:39:05 +00:00
Add script to create a vm image with extra packages
This commit is contained in:
parent
38f6a78c71
commit
48e8e0a7e6
61
build_qemu_image.sh
Executable file
61
build_qemu_image.sh
Executable file
@ -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
|
Loading…
Reference in New Issue
Block a user