Office Infrastructure Overview¶
Introduction¶
netboot.xyz lets you PXE boot various operating system installers or utilities from a single tool over the network. This lets you use one media for many types of operating systems or tools. The iPXE project is used to provide a user-friendly menu from within the BIOS that lets you easily choose the operating system you want along with any specific types of versions or bootable flags.
You can remotely attach the ISO to servers, set it up as a rescue option in Grub, or even set up your home network to boot to it by default so that it's always available.
Simple setup¶
Local instance with docker¶
docker run -d --name=netbootxyz ghcr.io/netbootxyz/netbootxyz\
-e MENU_VERSION=2.0.76 \
-e NGINX_PORT=80 \
-e WEB_APP_PORT=3000 \
-p 3000:3000 \
-p 69:69/udp \
-p 8080:80 \
--restart unless-stopped
# To start the container:
docker start netbootxyz
# To stop the container:
docker stop netbootxyz
Info
This will bring up a "default" netboot.xyz setup, with a pretty generic menu (with many options available)
This menu needs to be configured and (at least) a new entry needs to be added for Ubuntu Server.
Router configuration (Fortigate)¶
config system dhcp server
edit 2
# ... (existing configurations for edit 2) ...
set next-server 192.168.2.19
set filename "netboot.xyz.efi"
# ... (rest of the existing configurations for edit 2) ...
next
end
To unset the above two variables, do this:
config system dhcp server
edit 2
unset next-server
unset filename
next
end
Technical Tip: Configuring FortiGate for PXE Client booting
Warning
192.168.2.19 is the IP of the machine used in this POC (where the docker container with netboot.xyz was runing)
In a production environment this needs to be distinct machine, like the NUC or it could be the 'infra' machine that
is already up and running.
Danger
Be careful when changing the router configuration, it may break the internet access.
TODO: Persistent "production-grade" configuration
TODO: Custom menu with "Ubuntu Server"
TODO: Local copy (cached) image for Ubuntu Server 22.04