diff --git a/README.md b/README.md index e30896f5..4f1b67b8 100644 --- a/README.md +++ b/README.md @@ -153,6 +153,7 @@ In addition to being able to host netboot.xyz locally, you can also create your | Talos | https://www.talos.dev/ | Yes | No | | Tiny Core Linux | https://tinycorelinux.net | Yes | Yes | | Ubuntu | https://www.ubuntu.com | Yes | Yes | +| VMware | https://www.vmware.com | User supplied media | No | | Voyager | https://voyagerlive.org | No | Yes | | VyOS | https://vyos.io | Yes | No | | Zen Installer | https://sourceforge.net/projects/revenge-installer | Yes | No | diff --git a/roles/netbootxyz/defaults/main.yml b/roles/netbootxyz/defaults/main.yml index 71efed87..80e2225e 100644 --- a/roles/netbootxyz/defaults/main.yml +++ b/roles/netbootxyz/defaults/main.yml @@ -542,6 +542,10 @@ releases: name: 18.04 LTS Bionic Beaver - code_name: xenial name: 16.04 LTS Xenial Xerus + vmware: + enabled: true + menu: linux + name: VMware ESXi vyos: enabled: true menu: linux diff --git a/roles/netbootxyz/templates/menu/vmware.ipxe.j2 b/roles/netbootxyz/templates/menu/vmware.ipxe.j2 new file mode 100644 index 00000000..32da63af --- /dev/null +++ b/roles/netbootxyz/templates/menu/vmware.ipxe.j2 @@ -0,0 +1,68 @@ +#!ipxe + +# VMware ESXi +# https://www.vmware.com + +goto ${menu} || + +:vmware +set os VMware ESXi +clear vmware_choice +menu ${os} +item --gap Installers +item vmware_install ${space} ${os} Install +item --gap Options: +item url_set ${space} Base URL [ ${vmware_base_url} ] +choose vmware_choice || goto vmware_exit +goto ${vmware_choice} + +:url_set +echo Set the HTTP URL of an extracted VMware ISO without the trailing slash: +echo e.g. http://www.mydomain.com/vmware/esxi7 +echo +echo -n URL: ${} && read vmware_base_url +echo +echo The following files will be loaded the following files: +echo +echo For Legacy: ${vmware_base_url}/mboot.c32 +echo For EFI: ${vmware_base_url}/efi/boot/bootx64.efi +echo +echo The ESXi modules will be loaded from the following file: +echo ${vmware_base_url}/boot.cfg +echo +echo Ensure you have edited boot.cfg to reflect the prefix of: +echo +echo prefix=${vmware_base_url} +echo kernelopt=runweasel ks=${vmware_base_url}/ks.cfg +echo +echo If you aren't doing kickstart automation, you can leave off the ks option. +echo +echo If the filenames in the kernel= and modules= lines begin with a forward +echo slash (/) character, delete those characters. +echo +prompt Press any key to return to VMware Menu... +goto vmware + +:vmware_install +isset ${vmware_base_url} && goto boot_check || echo URL not set... && goto url_set +:boot_check +iseq ${platform} efi && goto efi_boot || goto legacy_boot + +:efi_boot +imgfree +kernel ${vmware_base_url}/efi/boot/bootx64.efi -c ${vmware_base_url}/boot.cfg +goto boot + +:legacy_boot +imgfree +kernel ${vmware_base_url}/mboot.c32 -c ${vmware_base_url}/boot.cfg +goto boot + +:boot +md5sum bootx64.efi +boot +goto vmware + +:vmware_exit +exit 0 +