blob: cc02289882a8c358504c382d25121481bac37ff8 (
plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
|
metadata:
name: deploy-cloudimg
maintainer:
- Michael Hudson-Doyle <michael.hudson@linaro.org>
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 relly 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"
- "wget --progress=dot -e dotbytes=10M -O cloud.dl $LAVA_CLOUD_IMG_URL"
- "file 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"
- "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"
- "mv /mnt/etc/resolv.conf /mnt/etc/resolv.conf.bak"
- "cp /etc/resolv.conf /mnt/etc/resolv.conf"
- "mount -t proc procfs /mnt/proc"
- "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"
- "mv /mnt/etc/resolv.conf.bak /mnt/etc/resolv.conf"
- "umount /mnt/proc"
- "sync"
- "umount /mnt || true"
- "growpart /dev/sda 1"
- "e2fsck -y -f /dev/sda1"
- "resize2fs /dev/sda1"
- "sync"
- "sleep 5"
- "sync"
params:
LAVA_CLOUD_IMG_URL: 'http://cloud-images.ubuntu.com/trusty/current/trusty-server-cloudimg-arm64-disk1.img'
EXTRA_PREP_SCRIPT_URL: ''
|