aboutsummaryrefslogtreecommitdiff
path: root/cloud-deploy/import-image-parts.sh
blob: 6b33e8daacbb219cb83b36431f0165066c504157 (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
#!/bin/bash

ARCH=${1}

cd "$(mktemp -d)"

IMAGE_NAME=trusty_${ARCH}
IMAGE_URL=http://cloud-images.ubuntu.com/trusty/current/trusty-server-cloudimg-${ARCH}.tar.gz

wget --progress=dot -e dotbytes=10M -O uec.tar.gz $IMAGE_URL

mkdir uec && cd uec && tar xfz ../uec.tar.gz

KERNEL=$(for f in "./"*-vmlinuz* "./"aki-*/image; do
    [ -f "$f" ] && echo "$f" && break; done; true)
IMAGE=$(for f in "./"*.img "./"ami-*/image; do
    [ -f "$f" ] && echo "$f" && break; done; true)

IMG_PROPERTY=" --property hw_machine_type=virt  --property hw_cdrom_bus=virtio"

sudo mount-image-callback --verbose $IMAGE -- sh -xc 'cp -v $MOUNTPOINT/boot/initrd* . && chmod ugo+r initrd*' || true

if [ -e initrd* ]; then
    RAMDISK_ID=$(glance image-create --name "$IMAGE_NAME-ramdisk" --is-public True --container-format ari --disk-format ari < initrd* | grep ' id ' | awk -F'[ \t]*\\|[ \t]*' '{ print $3 }')
    IMG_PROPERTY="$IMG_PROPERTY --property ramdisk_id=$RAMDISK_ID"
    COMMANDLINE="root=LABEL=cloudimg-rootfs rw rootwait console=ttyAMA0"
else
    COMMANDLINE=""
fi

KERNEL_ID=$(glance image-create --name "$IMAGE_NAME-kernel" --is-public True --container-format aki --disk-format aki < "$KERNEL" | grep ' id ' | awk -F'[ \t]*\\|[ \t]*' '{ print $3 }')
IMG_PROPERTY="$IMG_PROPERTY --property kernel_id=$KERNEL_ID"
IMAGE_UUID=$(glance image-create --name "${IMAGE_NAME}" $IMG_PROPERTY --is-public True --container-format ami --disk-format ami < "${IMAGE}" | grep ' id ' | awk -F'[ \t]*\\|[ \t]*' '{ print $3 }')

if [ -n "$COMMANDLINE" ]; then
    glance image-update $IMAGE_UUID --property os_command_line="$COMMANDLINE"
fi