diff --git a/internal/render/render_test.go b/internal/render/render_test.go index f19ce93..a2e4ca0 100644 --- a/internal/render/render_test.go +++ b/internal/render/render_test.go @@ -136,7 +136,7 @@ func TestRenderIPXECatalog(t *testing.T) { mustContain(t, s, "kernel "+artifactBase+"/almalinux/9/BaseOS/x86_64/os/images/pxeboot/vmlinuz") mustContain(t, s, "initrd "+artifactBase+"/almalinux/9/BaseOS/x86_64/os/images/pxeboot/initrd.img") mustContain(t, s, "inst.repo="+artifactBase+"/almalinux/9/BaseOS/x86_64/os") - mustContain(t, s, "inst.ks=http://bootapi.example.net/ks/web01") + mustContain(t, s, "inst.ks.sendmac inst.ks=http://bootapi.example.net/ks/web01") mustContain(t, s, "inst.text") // catalog kernel arg mustContain(t, s, "net.ifnames=0") } diff --git a/templates/ipxe/boot.ipxe.tmpl b/templates/ipxe/boot.ipxe.tmpl index bf94c18..96fe21b 100644 --- a/templates/ipxe/boot.ipxe.tmpl +++ b/templates/ipxe/boot.ipxe.tmpl @@ -6,12 +6,14 @@ it. Mirrors how Cobbler generated a per-MAC gPXE script carrying inst.ks=. KernelURL/InitrdURL/RepoURL come from the selected catalog entry (artifactapi remote); KernelArgs are the catalog's extra args. KickstartURL uses -BOOTAPI_BASE_URL (http://). +BOOTAPI_BASE_URL (http://). inst.ks.sendmac makes anaconda send its interface +MACs as X-RHN-Provisioning-MAC-N headers when fetching the kickstart (Cobbler +parity; lets /ks resolve a host by MAC as well as by name). */ -}} #!ipxe echo bootapi: provisioning {{ .FQDN }} ({{ .Platform }}) {{ if and .KernelURL .InitrdURL -}} -kernel {{ .KernelURL }} initrd=initrd.img{{ if .RepoURL }} inst.repo={{ .RepoURL }}{{ end }} inst.ks={{ .KickstartURL }} ip=dhcp{{ range .KernelArgs }} {{ . }}{{ end }} +kernel {{ .KernelURL }} initrd=initrd.img{{ if .RepoURL }} inst.repo={{ .RepoURL }}{{ end }} inst.ks.sendmac inst.ks={{ .KickstartURL }} ip=dhcp{{ range .KernelArgs }} {{ . }}{{ end }} initrd {{ .InitrdURL }} boot {{- else -}}