iPXE server bootstrapped with preseeded Ubuntu/memtest/...
550
Repository to bootstrap a PXE server easily. Get in a few steps a working setup to boot over network.
It's flexible and programmed modularly. It's easy to use it with existing setups.
For easy installation, execute
# install dnsmasq or something else
cp config.sh.example config.sh
$EDITOR config.sh
./setup.sh
as root. This might seem spooky, but it only does:
/etc/dnsmasq.d/pixieboot/etc/exports.d/pixieboot./setup.sh [PARAMETER]
PARAMETER can be of:
system-install Install and configure
config-write Write (or update) PXE configuration file
integrate Configure system-services to use pixieboot for PXE-boot
If PARAMETER is omitted, setup.sh will do everything (integration, install the systems, write config)
The system is kept fully modular. You can easily add new bootable systems or use another TFTP/DHCP server combination.
For adding a new system, you have to create a new so-called recipe. The recipe is a script, containing information for downloading, installing and configuring a new system-chroot.
This recipe should be stored inside the recipes folder and respond
to the parameters install or config.
Executed with the config-parameter it should print on STDOUT
its configuration to put into PXELINUX config.
Executed with the install-parameter it should install its system
into folder of given environment-variable $BASE_SYSTEMS/$DISTRO_NAME.
Your recipe should not execute anything if the system seems to be
installed already. If it's not installed properly, a manual remove by
the user should be neccessary.
I could write 1000s of words here. But it might now be the best for you,
to look at the recipes-folder and look, what these scripts do there.
Most of the work, for adding new recipes, is just copy and paste.
integrations/config.shconfig.sh the value of INTEGRATIONS_ENABLED to include your
new integration../setup.sh integrate.You have to use the docker host-network, as DHCP is not usable via port-forwarding.
Also define the env-variable NFSHOST to match your local IP-Address. Additionally, you must not run a service on port 80, 67 or 53 on your host system.
docker run \
-h pixieboot \
--name pixieboot \
--env NFSHOST=<EXTERNAL_IP_ADDRESS> \
--net=host \
--detach \
bebehei/pixieboot:latest
Content type
Image
Digest
Size
150.9 MB
Last updated
about 9 years ago
docker pull bebehei/pixieboot