Following the example in the documentation (with some minor tweaks):
yum install syslinux
cp /usr/share/syslinux/{pxelinux.0,menu.c32,memdisk,mboot.c32,chain.c32} /var/lib/tftpboot/
config setprop dnsmasq dhcp-boot pxelinux.0
signal-event nethserver-dnsmasq-save
mkdir /var/lib/tftpboot/pxelinux.cfg
vi /var/lib/tftpboot/pxelinux.cfg/default
Content of /var/lib/tftpboot/pxelinux.cfg/default file (tweak it as needed: i.e. append the repo boot parameter, add menus for other distros, etc.):
@filippo_carletti and @JOduMonT shared some examples (a, b) of how they are using it.
mkdir /var/lib/tftpboot/CentOS
Copy initrd.img and vmlinuz (or the whole images folder content) from ISO to /var/lib/tftpboot/CentOS
Change ownership:
chown -R nobody /var/lib/tftpboot/*
Test pxe server is working by booting a client machine with network boot support:
What remains is to decide where to store the installation files, and how they will be retrieved by the clients (ftp, http, nfs…), tweaking the /var/lib/tftpboot/pxelinux.cfg/default file accordingly.
Note I don’t use it so I might have missed something (uefi…) This was on NethServer 6.8 acting as dhcp server and configuring the ftp server as installation source, just for testing purposes (installing the ftp server module from software center, creating a user, adding the repo boot parameter with the ftp settings to the pxe default file, and copying the installation files over the ftp user path). Hope it helps.