## PXE Use `pxelinux-generator.sh` script to generate configs and populate the target path with pxe profiles according to mac-address from `mac-lists.csv` file. **DHCP Setup** ```dhcp authoritative; ddns-update-style interim; allow booting; allow bootp; allow unknown-clients; ignore client-updates; default-lease-time 14400; max-lease-time 14400; subnet 192.168.22.0 netmask 255.255.255.0 { option routers 192.168.22.1; # lan option subnet-mask 255.255.255.0; option domain-name "ocp.lan"; option domain-name-servers 192.168.22.1; # range 192.168.22.80 192.168.22.99; next-server 192.168.22.1; filename "pxelinux/pxelinux.0"; } ``` **Host File Structure** ``` /var/lib/tftpboot/ └── pxelinux ├── bg.png ├── boot.msg ├── fcos-37-pxe │   ├── fcos-initramfs.x86_64.img │   ├── fcos-live-kernel.x86_64 │   └── fcos-live-rootfs.x86_64.img ├── ldlinux.c32 ├── libcom32.c32 ├── libutil.c32 ├── menu.c32 ├── pxelinux.0 ├── pxelinux.cfg │   ├── 01-00-50-56-bb-f8-6d │   ├── 01-52-54-00-1b-15-29 │   ├── 01-52-54-00-47-1a-1b │   ├── 01-52-54-00-5e-7c-d6 │   ├── 01-52-54-00-70-f5-db │   ├── 01-52-54-00-84-b1-11 │   ├── 01-52-54-00-a1-55-1a │   ├── 01-52-54-00-c0-d0-de │   ├── 01-52-54-00-f1-d1-63 │   ├── 01-ac-1f-6b-ef-83-74 │   └── default ├── rhcos-4.9-pxe └── vesamenu.c32 ``` ### Dependencies - initramfs and kernel file (Will make the handler later) - PXE setup - DHCP Config - tftpboot