Ansible NEXT server
The geekoops-next ansible role makes it easy to setup your own PXE boot server. It configures dnsmasq
to run a DHCP and TFTP server, from which your PXE clients can boot from. You can turn the DNS functionality of dnsmasq
off, so that it is possible to run this PXE server next to another DNS server on the same host.
This role also extracts a minimum syslinux
installation into your tftp directory. So, after deploying this role, your clients should be able to boot from this PXE server, but it appears empty.
Currently this role only supports legacy boot.
The following playbook installs this PXE boot server on jellyfish
. However we want to use another dhcp server for handing out the leases, so that we configure dnsmasq
to act as proxy. This is useful if you want to run your PXE server alongside another DHCP server, like for example in a network configuration where your Fritzbox takes care of the DHCP. Our example is in a libvirt
environment, so we let the default libvirt
DHCP server (192.168.122.1) handle dhcp:
- hosts: jellyfish
roles:
- role: geekoops-next
vars:
config_firewall: true
firewall_zone: "public"
dhcp_range: "192.168.122.1,proxy,255.255.255.0"
prompt: "My awesome network boot server"
If jellyfish
runs as virtual machine in your default libvirt
domain, you can now create a new virtual machine that boots from the network.
In virt-manager
, create a new Virtual machine, with “Manual Boot”. Use any Linux system, even “Generic OS” just works fine. We don’t need a disk for booting, so that one can be deselected. Now, if you boot the machine, you will see the boot menu from the PXE server