From 662f62ddce729ee1e019625c386a4298ee83bdb4 Mon Sep 17 00:00:00 2001 From: Ross Brattain Date: Fri, 1 Sep 2017 02:17:54 -0700 Subject: ansible: resize VNF image When compiling Trex, DPDK, collectd and all the SampleVNFs we use more than the 2.2GB size of the original Ubuntu cloud image. Accordingly we need to resize the image. If we were not inside a docker container we would use virt-resize to automatically handle all the cases, but virt-resize launches qemu. Instead we can use qemu-img to add extra space, then luckily we can use parted to resize the partition and finally resize2fs to resize the filesystem. This limits us to only ext3/4 images, but if we need to we could add support for other filesystems by checking file system type. Change-Id: Iac84b8e6967af5be64c280a7b1eaaf09f5d6b3aa Signed-off-by: Ross Brattain --- ansible/build_yardstick_image.yml | 18 ++++++++++++++++++ 1 file changed, 18 insertions(+) (limited to 'ansible/build_yardstick_image.yml') diff --git a/ansible/build_yardstick_image.yml b/ansible/build_yardstick_image.yml index 8fbad5337..347e9bce0 100644 --- a/ansible/build_yardstick_image.yml +++ b/ansible/build_yardstick_image.yml @@ -87,6 +87,12 @@ - name: convert image to raw command: "qemu-img convert {{ image_dest }} {{ raw_imgfile }}" + - name: resize image to allow for more VNFs + command: "qemu-img resize -f raw {{ raw_imgfile }} +2G" + + - name: resize parition to allow for more VNFs + command: "parted -s -a optimal {{ raw_imgfile }} resizepart 1 100%" + - name: create mknod devices in chroot command: "mknod -m 0660 /dev/loop{{ item }} b 7 {{ item }}" args: @@ -124,6 +130,18 @@ - set_fact: image_fs_type: "{{ blkid_res.stdout.strip() }}" + - fail: + msg: "We only support ext4 image filesystems because we have to resize" + when: image_fs_type != "ext4" + + - name: fsck the image filesystem + command: "e2fsck -y -f {{ image_first_partition_device }}" + + - name: resize filesystem to full partition size + command: resize2fs {{ image_first_partition_device }} + + - name: fsck the image filesystem + command: "e2fsck -y -f {{ image_first_partition_device }}" - name: make tmp disposable fstab command: mktemp fake_fstab.XXXXXXXXXX -- cgit 1.2.3-korg