Skip to content

Instantly share code, notes, and snippets.

@ryanmaclean
Created March 9, 2020 18:35
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save ryanmaclean/9e8ac7e765859c943673463ce4cb52c3 to your computer and use it in GitHub Desktop.
Save ryanmaclean/9e8ac7e765859c943673463ce4cb52c3 to your computer and use it in GitHub Desktop.
Ubuntu Bionic OVA Customization
#! /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
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment