#! /usr/bin/env bash set -euo pipefail VMDK_SHA=$(sha256sum ubuntu-bionic-18.04-cloudimg.vmdk | awk '{print $1}') OVF_SHA=$(sha256sum ubuntu-bionic-18.04-cloudimg.ovf | awk '{print $1}') KEY=$(cat ~/.id_rsa.pub) # OVA Extract cd mkdir -p bionic cd bionic curl -O https://cloud-images.ubuntu.com/bionic/current/bionic-server-cloudimg-amd64.ova tar -xvf bionic-server-cloudimg-amd64.ova rm -rf bionic-server-cloudimg-amd64.ova # OVF Modification sed -i "s#<Property ovf:key="public-keys" ovf:type="string" ovf:userConfigurable="true" ovf:value=""#<Property ovf:key="public-keys" ovf:type="string" ovf:userConfigurable="true" ovf:value="$KEY"#g" ubuntu-bionic-18.04-cloudimg.ovf # MF Generation cp ubuntu-bionic-18.04-cloudimg.mf ubuntu-bionic-18.04-cloudimg.mfBKP printf "SHA256(ubuntu-bionic-18.04-cloudimg.vmdk)= $VMDK_SHA\n">ubuntu-bionic-18.04-cloudimg.mf printf "SHA256(ubuntu-bionic-18.04-cloudimg.ovf)=$OVF_SHA\n">>ubuntu-bionic-18.04-cloudimg.mf # OVA Reassemble tar -cvf bionic.ova --format=ustar ubuntu-bionic-18.04-cloudimg.ovf ubuntu-bionic-18.04-cloudimg.vmdk ubuntu-bionic-18.04-cloudimg.mf