netboot
PXE provisioning management. Describe your netboot targets, images and DHCP
zones in config, and let netboot render the per-target boot artifacts and arm (or
disarm) DHCP for a machine as it enters and leaves the install process.
netboot is a small, hook-driven engine. A YAML config declares:
- targets — a machine, keyed by hostname / MAC / IP;
- images — what a target boots;
- dhcp zones — the network a target lives on, and the DHCP backend(s) for it;
- repos / resources — where boot artifacts are fetched from and served.
For a given target netboot builds a render context and produces netboot files
from Jinja2 or shell-style templates, resolving template names by MAC, hostname
or IP with sensible fallbacks. Behaviour is extensible through an event-hook
system and pluggable DhcpServer backends.
Install
pip install netboot # once published
# or, from a checkout:
pip install .
| Extra | Enables |
|---|---|
netboot[config] |
YAML config loading for the CLI (pyyaml) |
netboot[dns] |
DNS resolution of hostname targets (dnspython) |
netboot[docs] |
Build this documentation site (mkdocs) |
Built on duho (CLI/args/command discovery),
pathlib_next (URI-aware paths),
yaconfiglib (layered YAML), and
Jinja2. IP/MAC/DNS helpers are vendored in-tree (netboot._netutils).
Where next
- CLI — the
initiate/completecommands and global options. - Configuration — the shape of the YAML config.
- Extending — hooks and custom
DhcpServerbackends. - API Reference — the
Pixieengine and context objects.