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