mirror of
				https://github.com/vyos/vyos-build.git
				synced 2025-10-01 20:28:40 +02:00 
			
		
		
		
	Add vmware ovf build procedure
This commit is contained in:
		
							parent
							
								
									ebd6876120
								
							
						
					
					
						commit
						48bcbfff70
					
				
							
								
								
									
										14
									
								
								Makefile
									
									
									
									
									
								
							
							
						
						
									
										14
									
								
								Makefile
									
									
									
									
									
								
							| @ -57,10 +57,14 @@ vagrant-libvirt: | ||||
| 
 | ||||
| .PHONY: vmware | ||||
| .ONESHELL: | ||||
| vmware: | ||||
| vmware: clean prepare | ||||
| 	@set -e | ||||
| 	@scripts/check-vm-build-env | ||||
| 	@scripts/build-vmware-image | ||||
| 	@echo "It's not like I'm building this specially for you or anything!" | ||||
| 	mkdir -p build/config/includes.chroot/etc/cloud/cloud.cfg.d | ||||
| 	cp tools/cloud-init/vmware/90_dpkg.cfg build/config/includes.chroot/etc/cloud/cloud.cfg.d/ | ||||
| 	cp -f tools/cloud-init/vmware/config.boot.default build/config/includes.chroot/opt/vyatta/etc/ | ||||
| 	cd $(build_dir) | ||||
| 	@../scripts/build-vmware-image | ||||
| 
 | ||||
| .PHONY: hyperv | ||||
| .ONESHELL: | ||||
| @ -140,6 +144,10 @@ clean: | ||||
| 	rm -f *.raw | ||||
| 	rm -f *.tar.gz | ||||
| 	rm -f *.qcow2 | ||||
| 	rm -f *.mf | ||||
| 	rm -f *.ovf | ||||
| 	rm -f *.ova | ||||
| 	rm -f *.vmdk | ||||
| 
 | ||||
| .PHONY: purge | ||||
| purge: | ||||
|  | ||||
| @ -1,10 +1,8 @@ | ||||
| #!/bin/sh | ||||
| # | ||||
| # Copyright (C) 2016 VyOS maintainers and contributors | ||||
| # Copyright (C) 2019 VyOS maintainers and contributors | ||||
| # | ||||
| # This program is free software; you can redistribute it and/or modify | ||||
| # it under the terms of the GNU General Public License version 2 or later as | ||||
| # published by the Free Software Foundation. | ||||
| # This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License version 2 or later as published by the Free Software Foundation. | ||||
| # | ||||
| # This program is distributed in the hope that it will be useful, | ||||
| # but WITHOUT ANY WARRANTY; without even the implied warranty of | ||||
| @ -16,7 +14,7 @@ | ||||
| # | ||||
| # File: build-vmware-image | ||||
| # Purpose: | ||||
| #   Build VyOS OVA and OVF for VMware. | ||||
| # Build VyOS image for VMWARE. | ||||
| 
 | ||||
| if [ ! $(which vmdk-convert) ]; then | ||||
|    echo "Your system doesn't have vmdk-convert. Please install it from https://github.com/vmware/open-vmdk." | ||||
| @ -32,32 +30,168 @@ else | ||||
|    echo "Your system has ovftool." | ||||
| fi | ||||
| 
 | ||||
| export PACKER_BUILD_DIR=packer_build | ||||
| lb bootstrap | ||||
| 
 | ||||
| DST_DIR=${PACKER_BUILD_DIR}/vmware | ||||
| mkdir -p ${DST_DIR} | ||||
| lb chroot | ||||
| lb installer | ||||
| lb binary_chroot | ||||
| lb chroot_devpts install | ||||
| lb chroot_proc install | ||||
| lb chroot_selinuxfs install | ||||
| lb chroot_sysfs install | ||||
| lb chroot_hosts install | ||||
| lb chroot_resolv install | ||||
| lb chroot_hostname install | ||||
| lb chroot_sysv-rc install | ||||
| lb chroot_upstart install | ||||
| lb chroot_apt install-binary | ||||
| lb chroot_archives chroot install | ||||
| lb binary_rootfs | ||||
| lb binary_manifest | ||||
| lb binary_package-lists | ||||
| lb binary_linux-image | ||||
| lb binary_memtest | ||||
| lb binary_grub | ||||
| lb binary_grub2 | ||||
| lb binary_syslinux | ||||
| lb binary_disk | ||||
| lb binary_loadlin | ||||
| lb binary_win32-loader | ||||
| lb binary_includes | ||||
| lb binary_hooks | ||||
| lb binary_checksums | ||||
| 
 | ||||
| # Convert qcow2 image to VMDK | ||||
| source_image=${PACKER_BUILD_DIR}/qemu/vyos_qemu_image.img | ||||
| tmp_vmdk=${DST_DIR}/tmp.vmdk | ||||
| vmdk=${DST_DIR}/vyos_vmware_image.vmdk | ||||
| ovf=${DST_DIR}/vyos_vmware_image.ovf | ||||
| qemu-img convert -f qcow2 ${source_image} -O vmdk -o adapter_type=lsilogic ${tmp_vmdk} | ||||
| vmdk-convert ${tmp_vmdk} ${vmdk} | ||||
| # get vyos build version | ||||
| version=$(cat version) | ||||
| dateymd=$(date +%Y%m%d) | ||||
| 
 | ||||
| ###################################### | ||||
| ### Prepare the HDD (format, ext.) ### | ||||
| ###################################### | ||||
| PARTED=/sbin/parted | ||||
| OUTPUT=disk.raw | ||||
| OUTPUTVMDK=VyOS-"$dateymd".vmdk | ||||
| IMAGE_SIZE=2 | ||||
| qemu-img create -f raw ${OUTPUT} ${IMAGE_SIZE}G | ||||
| 
 | ||||
| ${PARTED} -s ${OUTPUT} mktable msdos | ||||
| ${PARTED} -s -a optimal ${OUTPUT} mkpart primary ext4 1Mi 100% | ||||
| ${PARTED} -s ${OUTPUT} set 1 boot on | ||||
| RESULT_KPARTX=`kpartx -asv ${OUTPUT} 2>&1` | ||||
| 
 | ||||
| if echo "${RESULT_KPARTX}" | grep "^add map" ; then | ||||
| 	LOOP_DEVICE=$(echo ${RESULT_KPARTX} | cut -d" " -f3) | ||||
| 	LOOPRAW_DEVICE=${LOOP_DEVICE%p*} | ||||
| 	echo "kpartx mounted using: ${LOOP_DEVICE} via ${LOOPRAW_DEVICE}" | ||||
| else | ||||
| 	echo "It seems kpartx didn't mount the image correctly: exiting." | ||||
| 	exit 1 | ||||
| fi | ||||
| 
 | ||||
| cleanup(){ | ||||
| 	error=$? | ||||
| 	[ ! -d "${MOUNT_DIR}" ] && return | ||||
| 	if [ "$error" -gt 0 ]; then | ||||
| 		echo | ||||
| 		echo "Error $error" | ||||
| 	else | ||||
| 		echo "Finished." | ||||
| 	fi | ||||
| 
 | ||||
| 	set +e | ||||
| 
 | ||||
| 	sync | ||||
| 	umount -l ${MOUNT_DIR} | ||||
| 	rmdir ${MOUNT_DIR} | ||||
| 
 | ||||
|         umount devpts-live | ||||
|         umount proc-live | ||||
|         umount sysfs-live | ||||
| 
 | ||||
| 	dmsetup remove --deferred ${LOOP_DEVICE} | ||||
| 	losetup -d /dev/${LOOPRAW_DEVICE} | ||||
| 	exit $error | ||||
| } | ||||
| trap "cleanup" EXIT TERM INT | ||||
| 
 | ||||
| mkfs.ext4 /dev/mapper/${LOOP_DEVICE} -L persistence | ||||
| UUID=$(blkid -o value -s UUID /dev/mapper/${LOOP_DEVICE}) | ||||
| 
 | ||||
| # No fsck because of X days without checks | ||||
| tune2fs -i 0 /dev/mapper/${LOOP_DEVICE} | ||||
| 
 | ||||
| MOUNT_DIR=`mktemp -d -t build-debimg.XXXXXX` | ||||
| mount /dev/mapper/${LOOP_DEVICE} ${MOUNT_DIR} | ||||
| 
 | ||||
| ######################## | ||||
| ### Setting-up files ### | ||||
| ######################## | ||||
| mkdir -p ${MOUNT_DIR}/boot/grub | ||||
| mkdir -p ${MOUNT_DIR}/boot/"$version"/rw | ||||
| 
 | ||||
| echo "/ union" > ${MOUNT_DIR}/persistence.conf | ||||
| cp binary/live/filesystem.squashfs ${MOUNT_DIR}/boot/"$version"/"$version.squashfs" | ||||
| cp binary/live/initrd.img ${MOUNT_DIR}/boot/"$version"/initrd.img | ||||
| cp binary/live/vmlinuz ${MOUNT_DIR}/boot/"$version"/vmlinuz | ||||
| 
 | ||||
| ######################## | ||||
| ### Create grub menu ### | ||||
| ######################## | ||||
| cat > ${MOUNT_DIR}/boot/grub/grub.cfg << EOF | ||||
| set timeout=5 | ||||
| set default=0 | ||||
| 
 | ||||
| menuentry "VyOS  (KVM console)" { | ||||
|         linux /boot/"$version"/vmlinuz boot=live quiet vyos-union=/boot/"$version" console=ttyS0,9600 console=tty0 systemd.show_status=true | ||||
|         initrd /boot/"$version"/initrd.img | ||||
| } | ||||
| 
 | ||||
| menuentry "Lost password change  (KVM console)" { | ||||
|         linux /boot/"$version"/vmlinuz boot=live vyos-union=/boot/"$version" console=ttyS0,9600 console=tty0 systemd.show_status=true init=/opt/vyatta/sbin/standalone_root_pw_reset | ||||
|         initrd /boot/"$version"/initrd.img | ||||
| } | ||||
| 
 | ||||
| menuentry "VyOS $version (Serial console)" { | ||||
|         linux /boot/"$version"/vmlinuz boot=live vyos-union=/boot/"$version" console=tty0 console=ttyS0,9600n8d consoleblank=0 systemd.show_status=true | ||||
|         initrd /boot/"$version"/initrd.img | ||||
| } | ||||
| 
 | ||||
| menuentry "Lost password change $version (Serial console)" { | ||||
|         linux /boot/"$version"/vmlinuz boot=live vyos-union=/boot/"$version" console=tty0 console=ttyS0,9600n8d consoleblank=0 systemd.show_status=true init=/opt/vyatta/sbin/standalone_root_pw_reset | ||||
|         initrd /boot/"$version"/initrd.img | ||||
| } | ||||
| EOF | ||||
| 
 | ||||
| 
 | ||||
| ############################# | ||||
| ### Setting-up bootloader ### | ||||
| ############################# | ||||
| grub-install  --boot-directory ${MOUNT_DIR}/boot --force --no-floppy --skip-fs-probe /dev/${LOOPRAW_DEVICE} | ||||
| 
 | ||||
| ################### | ||||
| ### HOOK SCRIPT ### | ||||
| ################### | ||||
| fstrim ${MOUNT_DIR} | ||||
| sync | ||||
| 
 | ||||
| qemu-img convert -f raw ${OUTPUT} -O vmdk -o adapter_type=lsilogic ${OUTPUTVMDK} | ||||
| rm ${OUTPUT} | ||||
| 
 | ||||
| vmdk=vyos_vmware_image.vmdk | ||||
| ovf=vyos_vmware_image.ovf | ||||
| vmdk-convert ${OUTPUTVMDK} ${vmdk} | ||||
| 
 | ||||
| # Generate OVF | ||||
| 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) | ||||
| sed scripts/template.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... | ||||
| @ -68,7 +202,9 @@ if [ ! -f ${private_key} ]; then | ||||
|   exit 1 | ||||
| fi | ||||
| ovftool --privateKey=${PRIVATE_KEY_PATH} vyos_vmware_image.ovf vyos_vmware_image-signed.ova | ||||
| #ovftool vyos_vmware_image.ovf vyos_vmware_image-signed.ova | ||||
| 
 | ||||
| # Convert the OVF to signed OVF... | ||||
| echo 'Converting the OVF to signed OVF...' | ||||
| ovftool --privateKey=${PRIVATE_KEY_PATH} vyos_vmware_image.ovf vyos_vmware_image-signed.ovf | ||||
| #ovftool vyos_vmware_image.ovf vyos_vmware_image-signed.ovf | ||||
|  | ||||
| @ -1,121 +1,187 @@ | ||||
| <?xml version="1.0" encoding="UTF-8"?> | ||||
| <Envelope vmw:buildId="build-3018522" 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"> | ||||
| <?xml version='1.0' encoding='UTF-8'?> | ||||
| <ovf:Envelope xmlns:ovf="http://schemas.dmtf.org/ovf/envelope/1" xmlns="http://schemas.dmtf.org/ovf/envelope/1" xmlns:rasd="http://schemas.dmtf.org/wbem/wscim/1/cim-schema/2/CIM_ResourceAllocationSettingData" xmlns:vssd="http://schemas.dmtf.org/wbem/wscim/1/cim-schema/2/CIM_VirtualSystemSettingData" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:vmw="http://www.vmware.com/schema/ovf"> | ||||
|   <References> | ||||
|     <File ovf:href="vyos_vmware_image.vmdk" ovf:id="file1" ovf:size="{{vmdk_file_size}}"/> | ||||
|   </References> | ||||
|   <DiskSection> | ||||
|     <Info>Virtual disk information</Info> | ||||
|     <Disk ovf:capacity="4" ovf:capacityAllocationUnits="byte * 2^30" ovf:diskId="vmdisk1" ovf:fileRef="file1" ovf:format="http://www.vmware.com/interfaces/specifications/vmdk.html#streamOptimized" ovf:populatedSize="{{vmdk_populated_size}}"/> | ||||
|   </DiskSection> | ||||
|   <DeploymentOptionSection> | ||||
|     <Info>List of profiles</Info> | ||||
|     <Configuration ovf:default="true" ovf:id="1CPU-512MB"> | ||||
|       <Label ovf:msgid="Small.label">Small</Label> | ||||
|       <Description ovf:msgid="Small.description">Minimal hardware profile - 1 vCPU, 512 MB RAM</Description> | ||||
|     </Configuration> | ||||
|     <Configuration ovf:id="4CPU-16GB"> | ||||
|       <Label ovf:msgid="Medium.label">Medium</Label> | ||||
|       <Description ovf:msgid="Medium.description">Medium hardware profile - 4 vCPUs, 16 GB RAM</Description> | ||||
|     </Configuration> | ||||
|     <Configuration ovf:id="8CPU-32GB"> | ||||
|       <Label ovf:msgid="Large.label">Large</Label> | ||||
|       <Description ovf:msgid="Large.description">Large hardware profile - 8 vCPUs, 32 GB RAM</Description> | ||||
|     </Configuration> | ||||
|   </DeploymentOptionSection> | ||||
|   <NetworkSection> | ||||
|     <Info>The list of logical networks</Info> | ||||
|     <Network ovf:name="VM Network"> | ||||
|       <Description>The VM Network network</Description> | ||||
|     <Info>List of logical networks used in the package</Info> | ||||
|     <Network ovf:name="Network 1"> | ||||
|       <Description ovf:msgid="Network_1.description">Network 1</Description> | ||||
|     </Network> | ||||
|   </NetworkSection> | ||||
|   <VirtualSystem ovf:id="vm"> | ||||
|   <vmw:IpAssignmentSection ovf:required="false" vmw:protocols="IPv4 IPv6" vmw:schemes="ovfenv dhcp"> | ||||
|     <Info>Supported IP assignment schemes</Info> | ||||
|   </vmw:IpAssignmentSection> | ||||
|   <DiskSection> | ||||
|     <Info>Virtual disk information</Info> | ||||
|     <Disk ovf:capacity="10" ovf:capacityAllocationUnits="byte * 2^30" ovf:diskId="vmdisk1" ovf:fileRef="file1" ovf:format="http://www.vmware.com/interfaces/specifications/vmdk.html#streamOptimized" ovf:populatedSize="{{vmdk_populated_size}}"/> | ||||
|   </DiskSection> | ||||
|   <VirtualSystem ovf:id="VyOS"> | ||||
|     <Info>A virtual machine</Info> | ||||
|     <Name>vyos</Name> | ||||
|     <OperatingSystemSection ovf:id="1" vmw:osType="other26xLinux64Guest"> | ||||
|       <Info>The kind of installed guest operating system</Info> | ||||
|     </OperatingSystemSection> | ||||
|     <VirtualHardwareSection> | ||||
|       <Info>Virtual hardware requirements</Info> | ||||
|       <System> | ||||
|         <vssd:ElementName>Virtual Hardware Family</vssd:ElementName> | ||||
|         <vssd:InstanceID>0</vssd:InstanceID> | ||||
|         <vssd:VirtualSystemIdentifier>vyos</vssd:VirtualSystemIdentifier> | ||||
|         <vssd:VirtualSystemType>vmx-09</vssd:VirtualSystemType> | ||||
|       </System> | ||||
|       <Item> | ||||
|         <rasd:AllocationUnits>hertz * 10^6</rasd:AllocationUnits> | ||||
|         <rasd:Description>Number of Virtual CPUs</rasd:Description> | ||||
|         <rasd:ElementName>1 virtual CPU(s)</rasd:ElementName> | ||||
|         <rasd:InstanceID>1</rasd:InstanceID> | ||||
|         <rasd:ResourceType>3</rasd:ResourceType> | ||||
|         <rasd:VirtualQuantity>1</rasd:VirtualQuantity> | ||||
|       </Item> | ||||
|       <Item> | ||||
|         <rasd:AllocationUnits>byte * 2^30</rasd:AllocationUnits> | ||||
|         <rasd:Description>Memory Size</rasd:Description> | ||||
|         <rasd:ElementName>1GB of memory</rasd:ElementName> | ||||
|         <rasd:InstanceID>2</rasd:InstanceID> | ||||
|         <rasd:ResourceType>4</rasd:ResourceType> | ||||
|         <rasd:VirtualQuantity>1</rasd:VirtualQuantity> | ||||
|       </Item> | ||||
|       <Item> | ||||
|         <rasd:Address>0</rasd:Address> | ||||
|         <rasd:Description>SCSI Controller</rasd:Description> | ||||
|         <rasd:ElementName>scsiController0</rasd:ElementName> | ||||
|         <rasd:InstanceID>3</rasd:InstanceID> | ||||
|         <rasd:ResourceSubType>lsilogic</rasd:ResourceSubType> | ||||
|         <rasd:ResourceType>6</rasd:ResourceType> | ||||
|       </Item> | ||||
|       <Item> | ||||
|         <rasd:Address>1</rasd:Address> | ||||
|         <rasd:Description>IDE Controller</rasd:Description> | ||||
|         <rasd:ElementName>ideController1</rasd:ElementName> | ||||
|         <rasd:InstanceID>4</rasd:InstanceID> | ||||
|         <rasd:ResourceType>5</rasd:ResourceType> | ||||
|       </Item> | ||||
|       <Item ovf:required="false"> | ||||
|         <rasd:AutomaticAllocation>true</rasd:AutomaticAllocation> | ||||
|         <rasd:ElementName>serial0</rasd:ElementName> | ||||
|         <rasd:InstanceID>5</rasd:InstanceID> | ||||
|         <rasd:ResourceType>21</rasd:ResourceType> | ||||
|         <vmw:Config ovf:required="false" vmw:key="yieldOnPoll" vmw:value="false"/> | ||||
|       </Item> | ||||
|       <Item ovf:required="false"> | ||||
|         <rasd:AddressOnParent>0</rasd:AddressOnParent> | ||||
|         <rasd:AutomaticAllocation>false</rasd:AutomaticAllocation> | ||||
|         <rasd:ElementName>cdrom0</rasd:ElementName> | ||||
|         <rasd:InstanceID>6</rasd:InstanceID> | ||||
|         <rasd:Parent>5</rasd:Parent> | ||||
|         <rasd:ResourceType>15</rasd:ResourceType> | ||||
|       </Item> | ||||
|       <Item> | ||||
|         <rasd:AddressOnParent>0</rasd:AddressOnParent> | ||||
|         <rasd:ElementName>disk0</rasd:ElementName> | ||||
|         <rasd:HostResource>ovf:/disk/vmdisk1</rasd:HostResource> | ||||
|         <rasd:InstanceID>7</rasd:InstanceID> | ||||
|         <rasd:Parent>3</rasd:Parent> | ||||
|         <rasd:ResourceType>17</rasd:ResourceType> | ||||
|       </Item> | ||||
|       <Item> | ||||
|         <rasd:AddressOnParent>2</rasd:AddressOnParent> | ||||
|         <rasd:AutomaticAllocation>true</rasd:AutomaticAllocation> | ||||
|         <rasd:Connection>VM Network</rasd:Connection> | ||||
|         <rasd:Description>VmxNet3 ethernet adapter on "VM Network"</rasd:Description> | ||||
|         <rasd:ElementName>ethernet0</rasd:ElementName> | ||||
|         <rasd:InstanceID>8</rasd:InstanceID> | ||||
|         <rasd:ResourceSubType>VmxNet3</rasd:ResourceSubType> | ||||
|         <rasd:ResourceType>10</rasd:ResourceType> | ||||
|         <vmw:Config ovf:required="false" vmw:key="wakeOnLanEnabled" vmw:value="false"/> | ||||
|       </Item> | ||||
|       <Item ovf:required="false"> | ||||
|         <rasd:AutomaticAllocation>false</rasd:AutomaticAllocation> | ||||
|         <rasd:ElementName>video</rasd:ElementName> | ||||
|         <rasd:InstanceID>9</rasd:InstanceID> | ||||
|         <rasd:ResourceType>24</rasd:ResourceType> | ||||
|       </Item> | ||||
|       <Item ovf:required="false"> | ||||
|         <rasd:AutomaticAllocation>false</rasd:AutomaticAllocation> | ||||
|         <rasd:ElementName>vmci</rasd:ElementName> | ||||
|         <rasd:InstanceID>10</rasd:InstanceID> | ||||
|         <rasd:ResourceSubType>vmware.vmci</rasd:ResourceSubType> | ||||
|         <rasd:ResourceType>1</rasd:ResourceType> | ||||
|       </Item> | ||||
|       <vmw:Config ovf:required="false" vmw:key="cpuHotAddEnabled" vmw:value="true"/> | ||||
|       <vmw:Config ovf:required="false" vmw:key="memoryHotAddEnabled" vmw:value="true"/> | ||||
|       <vmw:Config ovf:required="false" vmw:key="powerOpInfo.powerOffType" vmw:value="soft"/> | ||||
|       <vmw:Config ovf:required="false" vmw:key="powerOpInfo.resetType" vmw:value="soft"/> | ||||
|       <vmw:Config ovf:required="false" vmw:key="powerOpInfo.suspendType" vmw:value="soft"/> | ||||
|     </VirtualHardwareSection> | ||||
|     <ProductSection> | ||||
|     <ProductSection ovf:required="false"> | ||||
|       <Info>VyOS is a Linux-based network operating system that provides software-based network routing, firewall, and VPN functionality.</Info> | ||||
|       <Product>VyOS</Product> | ||||
|       <Vendor>VyOS maintainers and contributors</Vendor> | ||||
|       <Version>{{version}}</Version> | ||||
|       <ProductUrl>https://www.vyos.io</ProductUrl> | ||||
|       <VendorUrl>https://sentrium.io/</VendorUrl> | ||||
|       <AppUrl/> | ||||
|       <Category>Appliance user Settings</Category> | ||||
|       <Property ovf:key="password" ovf:type="string" ovf:userConfigurable="true" ovf:value="" ovf:qualifiers="MinLen(8)" ovf:password="true"> | ||||
|         <Label ovf:msgid="Password.label">Password</Label> | ||||
|         <Description ovf:msgid="Password.description">The password for the appliance 'vyos' account. Passwords must be at least 8 characters in length.</Description> | ||||
|       </Property> | ||||
|       <Property ovf:key="public-keys" ovf:type="string" ovf:value="" ovf:userConfigurable="true"> | ||||
|         <Label>Public key</Label> | ||||
|         <Description>The public ssh key for the appliance 'vyos' account.</Description> | ||||
|       </Property> | ||||
|       <Category>Appliance IPv4 Network Settings</Category> | ||||
|       <Property ovf:key="local-hostname" ovf:type="string" ovf:userConfigurable="true" ovf:value="" ovf:qualifiers="MinLen(0),MaxLen(65535)"> | ||||
|         <Label>Hostname</Label> | ||||
|         <Description>The host name for this virtual machine.</Description> | ||||
|       </Property> | ||||
|       <Property ovf:key="ip0" ovf:type="string" ovf:userConfigurable="true"> | ||||
|         <Label>Network IPv4 Address</Label> | ||||
|         <Description>The IPv4 address. Leave blank if DHCP is desired.</Description> | ||||
|       </Property> | ||||
|       <Property ovf:key="netmask0" ovf:type="string" ovf:userConfigurable="true"> | ||||
|         <Label>Network IPv4 Netmask</Label> | ||||
|         <Description>The IPv4 netmask or prefix for this interface. Leave blank if DHCP is desired.</Description> | ||||
|       </Property> | ||||
|       <Property ovf:key="gateway" ovf:type="string" ovf:userConfigurable="true"> | ||||
|         <Label>Default Gateway v4</Label> | ||||
|         <Description>Default gateway address. Leave blank if DHCP is desired.</Description> | ||||
|       </Property> | ||||
|       <Property ovf:key="DNS" ovf:type="string" ovf:userConfigurable="true"> | ||||
|         <Label>Domain Name Servers</Label> | ||||
|         <Description>The domain name server IP Addresses for this VM (comma separated). Leave blank if DHCP is desired.</Description> | ||||
|       </Property> | ||||
|       <Property ovf:key="NTP" ovf:type="string" ovf:userConfigurable="true"> | ||||
|         <Label>Domain Time Servers</Label> | ||||
|         <Description>NTP servers for this VM (comma separated). Leave blank if DHCP is desired.</Description> | ||||
|       </Property> | ||||
|     </ProductSection> | ||||
|     <ProductSection ovf:class="vm" ovf:required="false"> | ||||
|       <Info>VM specific properties</Info> | ||||
|       <Property ovf:key="vmname" ovf:type="string" ovf:value="VyOS"/> | ||||
|     </ProductSection> | ||||
|     <AnnotationSection> | ||||
|       <Info/> | ||||
|       <Annotation>VyOS</Annotation> | ||||
|     </AnnotationSection> | ||||
|     <OperatingSystemSection ovf:id="100" ovf:version="1" vmw:osType="other3xLinux64Guest"> | ||||
|       <Info>Guest Operating System</Info> | ||||
|       <Description>VyOS</Description> | ||||
|     </OperatingSystemSection> | ||||
|     <VirtualHardwareSection ovf:transport="com.vmware.guestInfo" ovf:required="false"> | ||||
|       <Info>Virtual Hardware Requirements</Info> | ||||
|       <System> | ||||
|         <vssd:ElementName>Virtual Hardware Family</vssd:ElementName> | ||||
|         <vssd:InstanceID>0</vssd:InstanceID> | ||||
|         <vssd:VirtualSystemType>vmx-11</vssd:VirtualSystemType> | ||||
|       </System> | ||||
|       <Item configuration="1CPU-512MB"> | ||||
|         <rasd:AllocationUnits>hertz * 10^6</rasd:AllocationUnits> | ||||
|         <rasd:Description>Number of virtual CPUs</rasd:Description> | ||||
|         <rasd:ElementName xmlns:rasd="http://schemas.dmtf.org/wbem/wscim/1/cim-schema/2/CIM_ResourceAllocationSettingData">1 virtual CPU</rasd:ElementName> | ||||
|         <rasd:InstanceID xmlns:rasd="http://schemas.dmtf.org/wbem/wscim/1/cim-schema/2/CIM_ResourceAllocationSettingData">1</rasd:InstanceID> | ||||
|         <rasd:ResourceType>3</rasd:ResourceType> | ||||
|         <rasd:VirtualQuantity>1</rasd:VirtualQuantity> | ||||
|       </Item> | ||||
|       <Item configuration="4CPU-16GB"> | ||||
|         <rasd:AllocationUnits>hertz * 10^6</rasd:AllocationUnits> | ||||
|         <rasd:Description>Number of virtual CPUs</rasd:Description> | ||||
|         <rasd:ElementName xmlns:rasd="http://schemas.dmtf.org/wbem/wscim/1/cim-schema/2/CIM_ResourceAllocationSettingData">4 virtual CPUs</rasd:ElementName> | ||||
|         <rasd:InstanceID xmlns:rasd="http://schemas.dmtf.org/wbem/wscim/1/cim-schema/2/CIM_ResourceAllocationSettingData">1</rasd:InstanceID> | ||||
|         <rasd:ResourceType>3</rasd:ResourceType> | ||||
|         <rasd:VirtualQuantity>4</rasd:VirtualQuantity> | ||||
|       </Item> | ||||
|       <Item configuration="8CPU-32GB"> | ||||
|         <rasd:AllocationUnits>hertz * 10^6</rasd:AllocationUnits> | ||||
|         <rasd:Description>Number of virtual CPUs</rasd:Description> | ||||
|         <rasd:ElementName xmlns:rasd="http://schemas.dmtf.org/wbem/wscim/1/cim-schema/2/CIM_ResourceAllocationSettingData">8 virtual CPUs</rasd:ElementName> | ||||
|         <rasd:InstanceID xmlns:rasd="http://schemas.dmtf.org/wbem/wscim/1/cim-schema/2/CIM_ResourceAllocationSettingData">1</rasd:InstanceID> | ||||
|         <rasd:ResourceType>3</rasd:ResourceType> | ||||
|         <rasd:VirtualQuantity>8</rasd:VirtualQuantity> | ||||
|       </Item> | ||||
|       <Item configuration="1CPU-512MB"> | ||||
|         <rasd:AllocationUnits>byte * 2^20</rasd:AllocationUnits> | ||||
|         <rasd:Description>Memory Size</rasd:Description> | ||||
|         <rasd:ElementName xmlns:rasd="http://schemas.dmtf.org/wbem/wscim/1/cim-schema/2/CIM_ResourceAllocationSettingData">512 MB of memory</rasd:ElementName> | ||||
|         <rasd:InstanceID xmlns:rasd="http://schemas.dmtf.org/wbem/wscim/1/cim-schema/2/CIM_ResourceAllocationSettingData">2</rasd:InstanceID> | ||||
|         <rasd:ResourceType>4</rasd:ResourceType> | ||||
|         <rasd:VirtualQuantity>512</rasd:VirtualQuantity> | ||||
|       </Item> | ||||
|       <Item configuration="4CPU-16GB"> | ||||
|         <rasd:AllocationUnits>byte * 2^20</rasd:AllocationUnits> | ||||
|         <rasd:Description>Memory Size</rasd:Description> | ||||
|         <rasd:ElementName xmlns:rasd="http://schemas.dmtf.org/wbem/wscim/1/cim-schema/2/CIM_ResourceAllocationSettingData">16 GB of memory</rasd:ElementName> | ||||
|         <rasd:InstanceID xmlns:rasd="http://schemas.dmtf.org/wbem/wscim/1/cim-schema/2/CIM_ResourceAllocationSettingData">2</rasd:InstanceID> | ||||
|         <rasd:ResourceType>4</rasd:ResourceType> | ||||
|         <rasd:VirtualQuantity>16384</rasd:VirtualQuantity> | ||||
|       </Item> | ||||
|       <Item configuration="8CPU-32GB"> | ||||
|         <rasd:AllocationUnits>byte * 2^20</rasd:AllocationUnits> | ||||
|         <rasd:Description>Memory Size</rasd:Description> | ||||
|         <rasd:ElementName xmlns:rasd="http://schemas.dmtf.org/wbem/wscim/1/cim-schema/2/CIM_ResourceAllocationSettingData">32 GB of memory</rasd:ElementName> | ||||
|         <rasd:InstanceID xmlns:rasd="http://schemas.dmtf.org/wbem/wscim/1/cim-schema/2/CIM_ResourceAllocationSettingData">2</rasd:InstanceID> | ||||
|         <rasd:ResourceType>4</rasd:ResourceType> | ||||
|         <rasd:VirtualQuantity>32768</rasd:VirtualQuantity> | ||||
|       </Item> | ||||
|       <Item> | ||||
|         <rasd:Address xmlns:rasd="http://schemas.dmtf.org/wbem/wscim/1/cim-schema/2/CIM_ResourceAllocationSettingData">0</rasd:Address> | ||||
|         <rasd:ElementName xmlns:rasd="http://schemas.dmtf.org/wbem/wscim/1/cim-schema/2/CIM_ResourceAllocationSettingData">SCSI Controller 0 - LSI Logic</rasd:ElementName> | ||||
|         <rasd:InstanceID xmlns:rasd="http://schemas.dmtf.org/wbem/wscim/1/cim-schema/2/CIM_ResourceAllocationSettingData">3</rasd:InstanceID> | ||||
|         <rasd:ResourceSubType>lsilogic</rasd:ResourceSubType> | ||||
|         <rasd:ResourceType>6</rasd:ResourceType> | ||||
|       </Item> | ||||
|       <Item> | ||||
|         <rasd:AddressOnParent>0</rasd:AddressOnParent> | ||||
|         <rasd:ElementName xmlns:rasd="http://schemas.dmtf.org/wbem/wscim/1/cim-schema/2/CIM_ResourceAllocationSettingData">disk0</rasd:ElementName> | ||||
|         <rasd:HostResource>ovf:/disk/vmdisk1</rasd:HostResource> | ||||
|         <rasd:InstanceID xmlns:rasd="http://schemas.dmtf.org/wbem/wscim/1/cim-schema/2/CIM_ResourceAllocationSettingData">4</rasd:InstanceID> | ||||
|         <rasd:Parent>3</rasd:Parent> | ||||
|         <rasd:ResourceType>17</rasd:ResourceType> | ||||
|       </Item> | ||||
|       <Item> | ||||
|         <rasd:AddressOnParent>1</rasd:AddressOnParent> | ||||
|         <rasd:AutomaticAllocation>true</rasd:AutomaticAllocation> | ||||
|         <rasd:Connection>Network 1</rasd:Connection> | ||||
|         <rasd:ElementName xmlns:rasd="http://schemas.dmtf.org/wbem/wscim/1/cim-schema/2/CIM_ResourceAllocationSettingData">Ethernet adapter on "Network 1"</rasd:ElementName> | ||||
|         <rasd:InstanceID xmlns:rasd="http://schemas.dmtf.org/wbem/wscim/1/cim-schema/2/CIM_ResourceAllocationSettingData">5</rasd:InstanceID> | ||||
|         <rasd:ResourceSubType>vmxnet3</rasd:ResourceSubType> | ||||
|         <rasd:ResourceType>10</rasd:ResourceType> | ||||
|       </Item> | ||||
|       <Item> | ||||
|         <rasd:Address>0</rasd:Address> | ||||
|         <rasd:ElementName xmlns:rasd="http://schemas.dmtf.org/wbem/wscim/1/cim-schema/2/CIM_ResourceAllocationSettingData">IDE Controller 0</rasd:ElementName> | ||||
|         <rasd:InstanceID xmlns:rasd="http://schemas.dmtf.org/wbem/wscim/1/cim-schema/2/CIM_ResourceAllocationSettingData">6</rasd:InstanceID> | ||||
|         <rasd:ResourceType>5</rasd:ResourceType> | ||||
|       </Item> | ||||
|       <Item> | ||||
|         <rasd:AddressOnParent>0</rasd:AddressOnParent> | ||||
|         <rasd:AutomaticAllocation>false</rasd:AutomaticAllocation> | ||||
|         <rasd:ElementName xmlns:rasd="http://schemas.dmtf.org/wbem/wscim/1/cim-schema/2/CIM_ResourceAllocationSettingData">CD/DVD Drive 1</rasd:ElementName> | ||||
|         <rasd:InstanceID xmlns:rasd="http://schemas.dmtf.org/wbem/wscim/1/cim-schema/2/CIM_ResourceAllocationSettingData">7</rasd:InstanceID> | ||||
|         <rasd:Parent>6</rasd:Parent> | ||||
|         <rasd:ResourceType>15</rasd:ResourceType> | ||||
|       </Item> | ||||
|       <vmw:Config ovf:required="false" vmw:key="tools.syncTimeWithHost" vmw:value="TRUE"/> | ||||
|     </VirtualHardwareSection> | ||||
|   </VirtualSystem> | ||||
| </Envelope> | ||||
| </ovf:Envelope> | ||||
|  | ||||
							
								
								
									
										3
									
								
								tools/cloud-init/vmware/90_dpkg.cfg
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										3
									
								
								tools/cloud-init/vmware/90_dpkg.cfg
									
									
									
									
									
										Normal file
									
								
							| @ -0,0 +1,3 @@ | ||||
| # to update this file, run dpkg-reconfigure cloud-init | ||||
| datasource_list: [ OVF ] | ||||
| disable_vmware_customization: false | ||||
							
								
								
									
										30
									
								
								tools/cloud-init/vmware/config.boot.default
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										30
									
								
								tools/cloud-init/vmware/config.boot.default
									
									
									
									
									
										Normal file
									
								
							| @ -0,0 +1,30 @@ | ||||
| system { | ||||
|     host-name vyos | ||||
|     login { | ||||
|         user vyos { | ||||
|             authentication { | ||||
|                 encrypted-password $6$QxPS.uk6mfo$9QBSo8u1FkH16gMyAVhus6fU3LOzvLR9Z9.82m3tiHFAxTtIkhaZSWssSgzt4v4dGAL8rhVQxTg0oAG9/q11h/ | ||||
|                 plaintext-password "" | ||||
|             } | ||||
|             level admin | ||||
|         } | ||||
|     } | ||||
|     syslog { | ||||
|         global { | ||||
|             facility all { | ||||
|                 level info | ||||
|             } | ||||
|             facility protocols { | ||||
|                 level debug | ||||
|             } | ||||
|         } | ||||
|     } | ||||
|     config-management { | ||||
|         commit-revisions 100 | ||||
|     } | ||||
| } | ||||
| 
 | ||||
| interfaces { | ||||
|     loopback lo { | ||||
|     } | ||||
| } | ||||
		Loading…
	
	
			
			x
			
			
		
	
		Reference in New Issue
	
	Block a user