harvester.ipxe.j2 2.1 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667
  1. #!ipxe
  2. # Harvester
  3. # https://harvesterhci.io/
  4. # https://docs.harvesterhci.io/v0.2/install/pxe-boot-install/
  5. goto ${menu} ||
  6. :harvester
  7. set os {{ releases.harvester.name }}
  8. set os_arch ${arch}
  9. iseq ${os_arch} x86_64 && set os_arch amd64 ||
  10. set harvester_mirror {{ releases.harvester.mirror }}
  11. set harvester_version {{ releases.harvester.versions[0].name }}
  12. isset ${harvester_version} || set harvester_version {{ releases.harvester.versions[0].name }}
  13. menu ${os} - ${os_arch}
  14. item --gap Harvester:
  15. item harvester_boot ${space} Begin install ${os} ${harvester_version}
  16. item --gap Parameters:
  17. item harvester_version ${space} ${os} version: ${harvester_version}
  18. item harvester_config_url ${space} Set config-create or config-join.yaml URL: ${harvester_config_url}
  19. choose --default ${menu} menu || goto harvester_exit
  20. echo ${cls}
  21. goto ${menu} ||
  22. goto harvester_exit
  23. :harvester_version
  24. menu ${os} version
  25. item latest ${space} latest
  26. item custom ${space} Set custom version
  27. choose --default ${version} version || goto harvester_exit
  28. echo ${cls}
  29. goto harvester_version_${version} ||
  30. goto harvester_exit
  31. :harvester_version_latest
  32. set harvester_version {{ releases.harvester.versions[0].name }}
  33. set harvester_base_url ${harvester_mirror}/${harvester_version}
  34. goto harvester
  35. :harvester_version_custom
  36. clear harvester_version
  37. echo -n Please set harvester version manually (in format vX.Y.Z): && read harvester_version
  38. set harvester_base_url ${harvester_mirror}/${harvester_version}
  39. clear menu
  40. goto harvester
  41. :harvester_config_url
  42. echo -n Set config.yaml URL: && read harvester_config_url
  43. clear menu
  44. goto harvester
  45. :harvester_boot
  46. isset ${harvester_base_url} || set harvester_base_url ${harvester_mirror}/${harvester_version}
  47. set install_params k3os.mode=install harvester.install.automatic=true harvester.install.config_url=${harvester_config_url}
  48. set boot_params console=ttyS0 console=tty1
  49. imgfree
  50. kernel ${harvester_base_url}/harvester-vmlinuz-${os_arch} ${install_params} ${boot_params} {{ kernel_params }}
  51. initrd ${harvester_base_url}/harvester-initrd-${os_arch}
  52. echo
  53. echo MD5sums:
  54. md5sum harvester-vmlinuz-${os_arch} harvester-initrd-${os_arch}
  55. boot
  56. :harvester_exit
  57. clear menu
  58. exit 0