Skip to content

Instantly share code, notes, and snippets.

@stbenjam
Created August 15, 2018 14:24
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save stbenjam/ba0eed2df4a2c5cad82a0723d1cad9bb to your computer and use it in GitHub Desktop.
Save stbenjam/ba0eed2df4a2c5cad82a0723d1cad9bb to your computer and use it in GitHub Desktop.
option arch code 93 = unsigned integer 16; # RFC4578
local-address 192.168.73.1;
class "pxeclients" {
match if substring (option vendor-class-identifier, 0, 9) = "PXEClient";
next-server 192.168.73.1;
log(info, "PXE Client Detected");
if exists user-class and option user-class = "iPXE" {
filename "https://foreman.example.com:443/unattended/iPXE";
} else if option arch = 00:06 {
filename "grub2/bootia32.efi";
} else if option arch = 00:07 {
filename "grub2/bootx64.efi";
} else {
filename "pxelinux.0";
}
}
class "httpclients" {
match if substring (option vendor-class-identifier, 0, 10) = "HTTPClient";
log(info, "HTTP UEFI Client Detected");
option vendor-class-identifier "HTTPClient";
if option arch = 00:0F {
filename "http://192.168.73.1/pub/bootia32.efi";
} else if option arch = 00:10 {
filename "http://192.168.73.1/pub/grubx64.efi";
}
}
subnet 192.168.73.0 netmask 255.255.255.0 {
range 192.168.73.2 192.168.73.254;
option domain-name-servers 192.168.73.1;
option routers 192.168.73.1;
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment