Merge pull request #413 from crawford/vmx

build_library: various VMware improvements
This commit is contained in:
Alex Crawford 2015-06-01 16:46:03 -07:00
commit a231ef0bab
2 changed files with 42 additions and 11 deletions

View File

@ -1,7 +1,7 @@
<?xml version="1.0" encoding="UTF-8"?> <?xml version="1.0" encoding="UTF-8"?>
<Envelope vmw:buildId="build-1474528" xmlns="http://schemas.dmtf.org/ovf/envelope/1" xmlns:cim="http://schemas.dmtf.org/wbem/wscim/1/common" xmlns:ovf="http://schemas.dmtf.org/ovf/envelope/1" xmlns:rasd="http://schemas.dmtf.org/wbem/wscim/1/cim-schema/2/CIM_ResourceAllocationSettingData" xmlns:vmw="http://www.vmware.com/schema/ovf" xmlns:vssd="http://schemas.dmtf.org/wbem/wscim/1/cim-schema/2/CIM_VirtualSystemSettingData" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"> <Envelope vmw:buildId="build-1474528" xmlns="http://schemas.dmtf.org/ovf/envelope/1" xmlns:cim="http://schemas.dmtf.org/wbem/wscim/1/common" xmlns:ovf="http://schemas.dmtf.org/ovf/envelope/1" xmlns:rasd="http://schemas.dmtf.org/wbem/wscim/1/cim-schema/2/CIM_ResourceAllocationSettingData" xmlns:vmw="http://www.vmware.com/schema/ovf" xmlns:vssd="http://schemas.dmtf.org/wbem/wscim/1/cim-schema/2/CIM_VirtualSystemSettingData" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
<References> <References>
<File ovf:href="@@NAME@@-disk1.vmdk" ovf:id="file1" ovf:size="@@VMDK_FILE_SIZE@@"/> <File ovf:href="@@NAME@@.vmdk" ovf:id="file1" ovf:size="@@VMDK_FILE_SIZE@@"/>
</References> </References>
<DiskSection> <DiskSection>
<Info>Virtual disk information</Info> <Info>Virtual disk information</Info>
@ -16,7 +16,7 @@
<VirtualSystem ovf:id="@@NAME@@"> <VirtualSystem ovf:id="@@NAME@@">
<Info>A virtual machine</Info> <Info>A virtual machine</Info>
<Name>@@NAME@@</Name> <Name>@@NAME@@</Name>
<OperatingSystemSection ovf:id="100" vmw:osType="other26xLinux64Guest"> <OperatingSystemSection ovf:id="101" vmw:osType="otherLinux64Guest">
<Info>The kind of installed guest operating system</Info> <Info>The kind of installed guest operating system</Info>
</OperatingSystemSection> </OperatingSystemSection>
<VirtualHardwareSection> <VirtualHardwareSection>

View File

@ -108,6 +108,9 @@ IMG_DEFAULT_BUNDLE_FORMAT=
# Memory size to use in any config files # Memory size to use in any config files
IMG_DEFAULT_MEM=1024 IMG_DEFAULT_MEM=1024
# Number of CPUs to use in any config files
IMG_DEFAULT_CPUS=2
## qemu ## qemu
IMG_qemu_DISK_FORMAT=qcow2 IMG_qemu_DISK_FORMAT=qcow2
IMG_qemu_DISK_LAYOUT=vm IMG_qemu_DISK_LAYOUT=vm
@ -133,7 +136,7 @@ IMG_xen_CONF_FORMAT=xl
## virtualbox ## virtualbox
IMG_virtualbox_DISK_FORMAT=vmdk_ide IMG_virtualbox_DISK_FORMAT=vmdk_ide
IMG_virtualbox_DISK_LAYOUT=vm IMG_virtualbox_DISK_LAYOUT=vm
IMG_virtualbox_CONF_FORMAT=ovf IMG_virtualbox_CONF_FORMAT=ovf_virtualbox
## vagrant ## vagrant
IMG_vagrant_FS_HOOK=box IMG_vagrant_FS_HOOK=box
@ -158,9 +161,10 @@ IMG_vmware_CONF_FORMAT=vmx
IMG_vmware_OEM_PACKAGE=oem-vmware IMG_vmware_OEM_PACKAGE=oem-vmware
## vmware ## vmware
IMG_vmware_ova_DISK_FORMAT=vmdk_scsi IMG_vmware_ova_DISK_FORMAT=vmdk_stream
IMG_vmware_ova_DISK_LAYOUT=vm IMG_vmware_ova_DISK_LAYOUT=vm
IMG_vmware_ova_OEM_PACKAGE=oem-vmware IMG_vmware_ova_OEM_PACKAGE=oem-vmware
IMG_vmware_ova_CONF_FORMAT=ovf_vmware
IMG_vmware_ova_BUNDLE_FORMAT=ova IMG_vmware_ova_BUNDLE_FORMAT=ova
## vmware_insecure ## vmware_insecure
@ -682,7 +686,7 @@ ethernet0.addressType = "generated"
ethernet0.present = "TRUE" ethernet0.present = "TRUE"
ethernet0.virtualDev = "vmxnet3" ethernet0.virtualDev = "vmxnet3"
floppy0.present = "FALSE" floppy0.present = "FALSE"
guestOS = "other26xlinux-64" guestOS = "otherlinux-64"
memsize = "${vm_mem}" memsize = "${vm_mem}"
powerType.powerOff = "soft" powerType.powerOff = "soft"
powerType.powerOn = "hard" powerType.powerOn = "hard"
@ -822,7 +826,7 @@ EOF
VM_GENERATED_FILES+=( "${pygrub}" "${pvgrub}" "${VM_README}" ) VM_GENERATED_FILES+=( "${pygrub}" "${pvgrub}" "${VM_README}" )
} }
_write_ovf_conf() { _write_ovf_virtualbox_conf() {
local vm_mem="${1:-$(_get_vm_opt MEM)}" local vm_mem="${1:-$(_get_vm_opt MEM)}"
local src_name=$(basename "$VM_SRC_IMG") local src_name=$(basename "$VM_SRC_IMG")
local dst_name=$(basename "$VM_DST_IMG") local dst_name=$(basename "$VM_DST_IMG")
@ -888,8 +892,7 @@ _write_niftycloud_conf() {
local vm_mem="${1:-$(_get_vm_opt MEM)}" local vm_mem="${1:-$(_get_vm_opt MEM)}"
local src_name=$(basename "$VM_SRC_IMG") local src_name=$(basename "$VM_SRC_IMG")
local dst_name=$(basename "$VM_DST_IMG") local dst_name=$(basename "$VM_DST_IMG")
local dst_dir=$(dirname "$VM_DST_IMG") local ovf="$(_dst_dir)/$(_src_to_dst_name "${src_name}" ".ovf")"
local ovf="${dst_dir}/$(_src_to_dst_name "${src_name}" ".ovf")"
"${BUILD_LIBRARY_DIR}/niftycloud_ovf.sh" \ "${BUILD_LIBRARY_DIR}/niftycloud_ovf.sh" \
--vm_name "$VM_NAME" \ --vm_name "$VM_NAME" \
@ -905,6 +908,24 @@ EOF
VM_GENERATED_FILES+=( "$ovf" ) VM_GENERATED_FILES+=( "$ovf" )
} }
_write_ovf_vmware_conf() {
local vm_mem="${1:-$(_get_vm_opt MEM)}"
local vm_cpus="$(_get_vm_opt CPUS)"
local vmdk_file_size=$(du --bytes "${VM_DST_IMG}" | cut -f1)
local vmdk_capacity=$(vmdk-convert -i "${VM_DST_IMG}" | jq .capacity)
local ovf="$(_dst_path ".ovf")"
sed "${BUILD_LIBRARY_DIR}/template_vmware.ovf" \
-e "s/@@NAME@@/$(_dst_name)/g" \
-e "s/@@VMDK_FILE_SIZE@@/${vmdk_file_size}/g" \
-e "s/@@VMDK_CAPACITY@@/${vmdk_capacity}/g" \
-e "s/@@NUM_CPUS@@/${vm_cpus}/g" \
-e "s/@@MEM_SIZE@@/${vm_mem}/g" \
> "${ovf}"
VM_GENERATED_FILES+=( "$ovf" )
}
# If this is a bundled format generate it! # If this is a bundled format generate it!
write_vm_bundle() { write_vm_bundle() {
local bundle_format=$(_get_vm_opt BUNDLE_FORMAT) local bundle_format=$(_get_vm_opt BUNDLE_FORMAT)
@ -945,9 +966,19 @@ EOF
} }
_write_ova_bundle() { _write_ova_bundle() {
vmdk-convert ${VM_DST_IMG} ${VM_TMP_DIR}/vm.vmdk local mf="$(_dst_name ".mf")"
( cd $(_dst_dir) && mkova.sh $(_dst_name) ${VM_TMP_DIR}/vm.vmdk ${BUILD_LIBRARY_DIR}/template.ovf) local vmdk="$(basename ${VM_DST_IMG})"
VM_GENERATED_FILES+=$(_dst_dir)/$(_dst_name ".ova") local ovf=$(_dst_name ".ovf")
cp "${VM_DST_IMG}" "${VM_TMP_DIR}/${vmdk}"
cp "$(_dst_dir)/${ovf}" "${VM_TMP_DIR}/${ovf}"
echo "SHA1(${vmdk})= $(sha1sum "${VM_TMP_DIR}/${vmdk}" | cut -d' ' -f1)" > "${VM_TMP_DIR}/${mf}"
echo "SHA1(${ovf})= $(sha1sum "${VM_TMP_DIR}/${ovf}" | cut -d' ' -f1)" >> "${VM_TMP_DIR}/${mf}"
tar -cf $(_dst_path ".ova") -C "${VM_TMP_DIR}" "${ovf}" "${mf}" "${vmdk}"
VM_GENERATED_FILES+=( $(_dst_path ".ova") "${VM_DST_IMG}" )
} }
_write_secure_demo_disk() { _write_secure_demo_disk() {