mirror of
https://github.com/vyos/vyos-build.git
synced 2025-10-01 20:28:40 +02:00
Add support for signed VMware OVA (ref T14).
This commit is contained in:
parent
01083886e1
commit
c5df2dd17d
6
Makefile
6
Makefile
@ -44,12 +44,12 @@ qemu:
|
|||||||
@scripts/check-vm-build-env
|
@scripts/check-vm-build-env
|
||||||
@scripts/build-qemu-image
|
@scripts/build-qemu-image
|
||||||
|
|
||||||
.PHONY: vmware-ovf
|
.PHONY: vmware-ova
|
||||||
.ONESHELL:
|
.ONESHELL:
|
||||||
vmware-ovf:
|
vmware-ova:
|
||||||
@set -e
|
@set -e
|
||||||
@scripts/check-vm-build-env
|
@scripts/check-vm-build-env
|
||||||
@scripts/build-vmware-ovf
|
@scripts/build-vmware-ova
|
||||||
|
|
||||||
.PHONY: clean
|
.PHONY: clean
|
||||||
.ONESHELL:
|
.ONESHELL:
|
||||||
|
|||||||
@ -25,6 +25,13 @@ else
|
|||||||
echo "Your system has vmdk-convert."
|
echo "Your system has vmdk-convert."
|
||||||
fi
|
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_BUILD_DIR=packer_build
|
||||||
export PACKER_LOG_PATH=${PACKER_BUILD_DIR}/build_vmware_ovf.log
|
export PACKER_LOG_PATH=${PACKER_BUILD_DIR}/build_vmware_ovf.log
|
||||||
export PACKER_LOG=1
|
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}
|
vmdk-convert ${tmp_vmdk} ${vmdk}
|
||||||
|
|
||||||
# Generate OVF
|
# 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)
|
vmdk_populated_size=$(vmdk-convert -i ${vmdk} | jq .used)
|
||||||
version=$(cat build/version)
|
version=$(cat build/version)
|
||||||
cat scripts/template.ovf | sed "s/{{vmdk_file_size}}/${vmdk_file_size}/" > ${ovf}
|
sed scripts/template.ovf \
|
||||||
sed -i "s/{{vmdk_populated_size}}/${vmdk_populated_size}/" ${ovf}
|
-e "s/{{vmdk_file_size}}/${vmdk_file_size}/" \
|
||||||
sed -i "s/{{version}}/${version}/" ${ovf}
|
-e "s/{{vmdk_populated_size}}/${vmdk_populated_size}/" \
|
||||||
|
-e "s/{{version}}/${version}/" \
|
||||||
|
> ${ovf}
|
||||||
|
|
||||||
# Generate manifest file
|
# Generate manifest file
|
||||||
cd ${DST_DIR}
|
cd ${DST_DIR}
|
||||||
openssl sha1 *.vmdk *.ovf > vyos_vmware_image.mf
|
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
|
||||||
Loading…
x
Reference in New Issue
Block a user