Bare-Metal Provisioning
MAAS, Tinkerbell, Foreman, PXE — turning empty hardware into running servers.
Modern (CRD / API-driven)
- ★ Tinkerbell (CNCF, EquinixMetal) — modern bare-metal provisioning workflow engine. PXE / iPXE-driven, declarative, k8s-friendly. The default for new bare-metal fleets.
- ★ Cluster API + Tinkerbell — provision bare-metal k8s nodes declaratively.
- Sidero Metal — Tinkerbell-shape; integrates with Talos for cluster lifecycle.
Established / mature
- ★ MAAS (Canonical) — Metal-as-a-Service; web UI; commission, deploy, lifecycle hardware. Used at scale.
- Foreman — provisioning + config management; integrates with Puppet / Ansible / Salt.
- Cobbler — older; kickstart-driven; still common.
- FAI (Fully Automatic Installation) — Debian-flavored.
- Ironic (OpenStack) — bare-metal as part of OpenStack.
Boot tooling
- PXE — classic network boot.
- iPXE — modern; HTTP / HTTPS / chainload; scriptable. Default for new setups.
- netboot.xyz — community-curated boot menu; great for labs.
- GRUB / systemd-boot / Limine — bootloaders post-provision.
Hardware management
- IPMI / Redfish — out-of-band management; power on/off, console, sensors.
- freeipmi / ipmitool — CLI for IPMI.
- Redfish API — modern REST replacement for IPMI.
- OpenBMC — open-source BMC firmware.
Inventory / discovery
- NetBox — IPAM + DCIM; track every server, IP, rack.
- DCIM-lite alternatives: RackTables, Phpipam.
- OpenDCIM — older.
- Steampipe + cloud accounts — query "what do we actually have?"
OS choice for bare metal
- Talos / Bottlerocket / Flatcar — see Container Host OS.
- Ubuntu / Debian / Rocky / Alma — boring, fine.
- Proxmox VE — for hypervisor / VM hosts.
- TrueNAS Scale — for NAS-with-containers boxes.
Cabling / out-of-band
- Tailscale on the IPMI VLAN — gives you encrypted access to BMCs without exposing them publicly.
- Console servers (Lantronix, Opengear) — for serial-out-of-band on real datacenter racks.
When you actually need this
- You own physical servers (colocated or on-site).
- A homelab beyond mini-PCs.
- A fleet at the scale where cloud cost is no longer the cheapest option.
When you don't
- Cloud-native or hosted-everywhere — your provider provisions hardware.
- Single VPS — provider handles it.
- 1–3 mini-PCs at home — install OS manually; cloud-init from a USB stick.
Patterns to adopt
- ★ Inventory in code. NetBox + Terraform or
tinkctlmanifests. Don't keep "the truth" in a spreadsheet. - PXE chainload iPXE for fast, scriptable, modern boot.
- Out-of-band on a separate VLAN. Never expose IPMI to the public internet.
- Cluster API for scale. When you have 20+ machines, doing it by hand is a job.
Pick this if…
- Default modern bare-metal: Tinkerbell (+ Cluster API for k8s).
- Mature single-pane UI: MAAS.
- Old shop with kickstart heritage: Cobbler.
- Provisioning + Puppet integration: Foreman.
- Inventory: NetBox.