metadata: name: deploy-cloudimg maintainer: - Michael Hudson-Doyle format: "Lava-Test-Shell Test Definition 1.0" version: 1.0 description: "Deploy an Ubuntu cloud image to /dev/sda." os: - ubuntu devices: # Only tested on mustang so far. - mustang environment: - lava-test-shell # # We rely on the bootstrap image being correctly set-up as we may not # have enough name resolution set-up to install packages here. Some # packages we do need to be present are: # # wget # cloud-guest-utils # e2fsprogs run: steps: - "set -x" - "resolvconf -u" - "cat /etc/resolv.conf" - "wget --progress=dot -e dotbytes=10M -O cloud.dl $LAVA_CLOUD_IMG_URL" - "file cloud.dl" - "md5sum cloud.dl" - "if file cloud.dl | grep -q gzip; then" - " CAT=zcat" - " F=cloud.dl" - "else" - " qemu-img convert -O raw cloud.dl cloud.raw" - " F=cloud.raw" - " CAT=cat" - "fi" - "$CAT $F | dd of=/dev/sda bs=1M" - "rm cloud.*" - "sync" - "echo 1 > /sys/class/block/sda/device/rescan" - "growpart /dev/sda 1" - "e2fsck -y -f /dev/sda1" - "resize2fs /dev/sda1" - "mount /dev/sda1 /mnt" - "mkdir -p /mnt/var/lib/cloud/seed/nocloud-net" - "cp -a cloud-seed/* /mnt/var/lib/cloud/seed/nocloud-net/" - "if type -p lava-self > /dev/null; then" - " HOSTNAME=$(lava-self)" - "else" - " HOSTNAME=linaro-test" - "fi" - 'echo "s/@HOSTNAME@/$HOSTNAME/g" >> /tmp/cloud-init.sed' - 'find /mnt/var/lib/cloud/seed/nocloud-net/ -type f -print0 | xargs -0 sed -i -f /tmp/cloud-init.sed' - "cat ps1-setting-frag >> /mnt/etc/profile" - "cat ps1-setting-frag >> /mnt/etc/skel/.bashrc" - "mount -t proc procfs /mnt/proc" - "mount -o bind /run /mnt/run" - "cp boot.script in-chroot.sh /mnt/" - '[ -n "$EXTRA_PREP_SCRIPT_URL" ] && { wget -O /mnt/extra --progress=dot -e dotbytes=1k $EXTRA_PREP_SCRIPT_URL; chmod u+x /mnt/extra; }' - "chroot /mnt bash -x /in-chroot.sh" - "rm /mnt/in-chroot.sh" - "[ -f /mnt/extra ] && rm /mnt/extra" - "umount /mnt/proc" - "umount /mnt/run" - "umount /mnt || true" params: LAVA_CLOUD_IMG_URL: 'http://cloud-images.ubuntu.com/trusty/current/trusty-server-cloudimg-arm64-disk1.img' EXTRA_PREP_SCRIPT_URL: ''