Tooling

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 tinkctl manifests. 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.

On this page