- Set up netboot.xyz
- I used linuxserver/netbootxyz
- Grab assets.
- You can serve these however you like, I used the built-in asset mechanic in the docker image
grab-talos.sh
quick helper to download the kernel and the initramfs- I also placed the worker and controlplane defintions for Talos here
- Set up ipxe files.
- Netboot.xyz supports auto-loading based on MAC address and hostname from dhcp. sourcecode
HOSTNAME-
orMAC-
prefixes.- The MAC address is without colons in the filename
- Netboot.xyz supports auto-loading based on MAC address and hostname from dhcp. sourcecode
- Boot
Last active
April 23, 2025 21:05
-
-
Save Roxedus/08a1351e4c092b7527a8830dd3456d7b to your computer and use it in GitHub Desktop.
Netboot.xyz Talos unattended
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
#!/bin/bash | |
# Download from factory | |
ID= | |
VERSION=v1.7.0 | |
curl -o kernel-amd64 https://factory.talos.dev/image/$ID/$VERSION/kernel-amd64 | |
curl -o initramfs-amd64.xz https://factory.talos.dev/image/$ID/$VERSION/initramfs-amd64.xz |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
#!ipxe | |
set talos_type controlplane | |
chain talos-unattended.ipxe |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
#!ipxe | |
goto talos | |
:talos | |
set os Talos | |
set os_arch x86_64 | |
iseq ${os_arch} x86_64 && set os_arch amd64 || | |
iseq ${os_arch} arm64 && set os_arch arm64 || | |
isset ${talos_mirror} || set talos_mirror http://192.168.0.2:8080 | |
isset ${talos_type} || set talos_type worker | |
#echo Mirror URL: ${talos_mirror} | |
#echo Mirror Type: ${talos_type} | |
#prompt Press any key to continue | |
goto talos_boot | |
:talos_boot | |
isset ${talos_base_url} || set talos_base_url ${talos_mirror} | |
isset ${talos_config_url} && set talos_config talos.config=${talos_config_url}.yaml || | |
set boot_params printk.devkmsg=on slab_nomerge pti=on console=ttyS0 console=tty0 init_on_alloc=1 init_on_free=1 consoleblank=0 nvme_core.io_timeout=4294967295 ima_template=ima-ng ima_appraise=fix ima_hash=sha512 talos.platform=metal ${talos_config} initrd=initrd.magic ${cmdline} | |
imgfree | |
kernel ${talos_base_url}/kernel-${os_arch} ${boot_params} | |
initrd ${talos_base_url}/initramfs-${os_arch}.xz | |
echo | |
echo Booting with the following kernel args: | |
echo ${boot_params} | |
echo | |
echo MD5sums: | |
md5sum kernel-${os_arch} initramfs-${os_arch}.xz | |
boot |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment