summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorYuya Kusakabe <yuya.kusakabe@gmail.com>2016-03-08 09:08:36 +0900
committerYuya Kusakabe <yuya.kusakabe@gmail.com>2016-03-08 09:12:22 +0900
commitc5df2dd17dffda133a0c0bb68d6a9a16c10f1c2e (patch)
treeb795d1391f23c175f7b2205354b1935c5d999cf8
parent01083886e1e861378ce16195c9ad76c1d5ce3e4a (diff)
downloadvyos-build-c5df2dd17dffda133a0c0bb68d6a9a16c10f1c2e.tar.gz
vyos-build-c5df2dd17dffda133a0c0bb68d6a9a16c10f1c2e.zip
Add support for signed VMware OVA (ref T14).
-rw-r--r--Makefile6
-rwxr-xr-xscripts/build-vmware-ova (renamed from scripts/build-vmware-ovf)27
2 files changed, 26 insertions, 7 deletions
diff --git a/Makefile b/Makefile
index adce002c..6c401e2c 100644
--- a/Makefile
+++ b/Makefile
@@ -44,12 +44,12 @@ qemu:
@scripts/check-vm-build-env
@scripts/build-qemu-image
-.PHONY: vmware-ovf
+.PHONY: vmware-ova
.ONESHELL:
-vmware-ovf:
+vmware-ova:
@set -e
@scripts/check-vm-build-env
- @scripts/build-vmware-ovf
+ @scripts/build-vmware-ova
.PHONY: clean
.ONESHELL:
diff --git a/scripts/build-vmware-ovf b/scripts/build-vmware-ova
index 8890ba69..c0e85cdc 100755
--- a/scripts/build-vmware-ovf
+++ b/scripts/build-vmware-ova
@@ -25,6 +25,13 @@ else
echo "Your system has vmdk-convert."
fi
+if [ ! $(which ovftool) ]; then
+ echo "Your system doesn't have ovftool. Please install it from https://www.vmware.com/support/developer/ovf/."
+ exit 1
+else
+ echo "Your system has ovftool."
+fi
+
export PACKER_BUILD_DIR=packer_build
export PACKER_LOG_PATH=${PACKER_BUILD_DIR}/build_vmware_ovf.log
export PACKER_LOG=1
@@ -43,13 +50,25 @@ qemu-img convert -f raw ${source_image} -O vmdk -o adapter_type=lsilogic ${tmp_v
vmdk-convert ${tmp_vmdk} ${vmdk}
# Generate OVF
-vmdk_file_size=$(vmdk-convert -i ${vmdk} | jq .capacity)
+echo 'Generating OVF file...'
+vmdk_file_size=$(du --bytes ${vmdk} | cut -f1)
vmdk_populated_size=$(vmdk-convert -i ${vmdk} | jq .used)
version=$(cat build/version)
-cat scripts/template.ovf | sed "s/{{vmdk_file_size}}/${vmdk_file_size}/" > ${ovf}
-sed -i "s/{{vmdk_populated_size}}/${vmdk_populated_size}/" ${ovf}
-sed -i "s/{{version}}/${version}/" ${ovf}
+sed scripts/template.ovf \
+ -e "s/{{vmdk_file_size}}/${vmdk_file_size}/" \
+ -e "s/{{vmdk_populated_size}}/${vmdk_populated_size}/" \
+ -e "s/{{version}}/${version}/" \
+ > ${ovf}
# Generate manifest file
cd ${DST_DIR}
openssl sha1 *.vmdk *.ovf > vyos_vmware_image.mf
+
+# Convert the OVF to signed OVA...
+echo 'Converting the OVF to signed OVA...'
+private_key=${PRIVATE_KEY_PATH:-"../../key/privatekey.pem"}
+if [ ! -f ${private_key} ]; then
+ echo 'Please put your key to "key" directory in repository root, or set PRIVATE_KEY_PATH to environment variables.'
+ exit 1
+fi
+ovftool --privateKey=${PRIVATE_KEY_PATH} vyos_vmware_image.ovf vyos_vmware_image.ova