Files
warewulf/etc/ipxe/default.ipxe
Carter Dodd 379faad51d Refactor of server, logging, building of images, template updates
* Combine provision response handling, add hwaddr and interface to dhcp
* Simplify stage cases, add backward compatible uri parse
* Move control of image compression to client
* Fix kernel search path for ubuntu, buffer template generation
* Implement cpio and gz as functions, add log named functions
* Generalize fs image creation routine
* Combine daemonLogf to generalized wwlog
* Fix template newline insertion, update dhcp and hosts tmpl
* Update IPXE template to handle non-compressed files
* Update DHCP template to set network interfaces and server IP assignment
* Update DHCP/hosts templates to choose a host-name self-consistently
2022-05-13 16:52:59 -05:00

85 lines
2.4 KiB
Plaintext

#!ipxe
echo
echo ================================================================================
echo Warewulf v4 now booting: {{.Fqdn}} ({{.Hwaddr}})
echo
echo Container: {{.ContainerName}}
{{if .KernelOverride }}
echo Kernel: {{.KernelOverride}}
{{else}}
echo Kernel: {{.ContainerName}} (container default)
{{end}}
echo KernelArgs: {{.KernelArgs}}
echo
{{if ne .Syslog "" -}}
set syslog {{$.Syslog}};
{{- end}}
{{if ne .Syslogs "" -}}
set syslogs {{$.Syslogs}};
{{- end}}
set uri_base http://{{.Ipaddr}}:{{.Port}}/provision/{{.Hwaddr}}?assetkey=${asset}&uuid=${uuid}
echo Downloading node provisions: ${uri_base}
echo Kernel image:
kernel --name kernel ${uri_base}&stage=kernel || goto reboot
# try extracting compressed images first
# NOTE: system overlay tends to be the smallest, so failure here is the cheapest
echo System image:
imgextract --name system ${uri_base}&stage=system&compress=gz || goto nocompress
echo Container image:
imgextract --name container ${uri_base}&stage=container&compress=gz || goto reboot
echo Runtime image:
imgextract --name runtime ${uri_base}&stage=runtime&compress=gz || goto reboot
{{if ne .KernelOverride "" -}}
echo Kernel modules image:
imgextract --name kmods ${uri_base}&stage=kmods&compress=gz || goto reboot
{{- end}}
goto imoktogo
:nocompress
echo Extraction failed, attempting un-compressed version of images
echo System image:
initrd --name system ${uri_base}&stage=system || goto reboot
echo Container image:
initrd --name container ${uri_base}&stage=container || goto reboot
echo Runtime image:
initrd --name runtime ${uri_base}&stage=runtime || goto reboot
{{if ne .KernelOverride "" -}}
echo Kernel modules image:
initrd --name kmods ${uri_base}&stage=kmods || goto reboot
{{- end}}
:imoktogo
echo Booting in 3s...
{{if ne .KernelOverride "" -}}
echo boot kernel initrd=container initrd=kmods initrd=system initrd=runtime wwid={{.Hwaddr}} {{.KernelArgs}}
sleep 3
boot kernel initrd=container initrd=kmods initrd=system initrd=runtime wwid={{.Hwaddr}} {{.KernelArgs}} || goto reboot
{{- else -}}
echo boot kernel initrd=container initrd=system initrd=runtime wwid={{.Hwaddr}} {{.KernelArgs}}
sleep 3
boot kernel initrd=container initrd=system initrd=runtime wwid={{.Hwaddr}} {{.KernelArgs}} || goto reboot
{{- end}}
:reboot
echo
echo There was an error, rebooting in 15s...
echo
sleep 15
reboot