Provisioning Server

Automated bare-metal server provisioning from power-on to OS installation with zero manual intervention.

Overview

The provisioning server is the foundation of our automated infrastructure deployment. It provides all necessary network services to enable bare-metal servers to boot over the network, download an operating system image, and complete a fully automated installation of Ubuntu Server.

Key Capabilities

  • Network-based OS installation via PXE boot
  • Automated Ubuntu Server deployment with cloud-init
  • Zero-touch provisioning for multiple servers simultaneously
  • Custom network boot configurations per MAC address

Network Services Architecture

DHCP Server

Assigns IP addresses and provides network boot instructions to bare-metal servers during the PXE boot process.

  • • Dynamic IP allocation for new servers
  • • Static IP reservations by MAC address
  • • Boot filename configuration
  • • Next-server (TFTP) configuration

TFTP Server

Provides the initial bootloader and kernel files required for network booting over the Trivial File Transfer Protocol.

  • • Serves PXE bootloader (pxelinux.0)
  • • Delivers Linux kernel and initrd
  • • Provides boot menu configurations
  • • Optimized for network boot speed

HTTP Server

Hosts the Ubuntu installation media, cloud-init configuration files, and post-installation scripts.

  • • Ubuntu ISO mirror for fast downloads
  • • Cloud-init user-data files
  • • Preseed/autoinstall configurations
  • • Post-installation automation scripts

Ansible Automation

Manages the configuration and deployment of all provisioning server services using Infrastructure as Code principles.

  • • Idempotent service configuration
  • • Version-controlled infrastructure
  • • Repeatable deployments
  • • Role-based service management

Provisioning Workflow

  1. 1. Power On: Bare-metal server powers on and initiates PXE network boot
  2. 2. DHCP Request: Server requests IP address and boot configuration from DHCP server
  3. 3. TFTP Boot: Server downloads bootloader, kernel, and initrd from TFTP server
  4. 4. HTTP Download: Installer downloads Ubuntu image and cloud-init configs from HTTP server
  5. 5. Automated Install: Ubuntu installs automatically with predefined configurations
  6. 6. First Boot: Server reboots into the newly installed OS, ready for Kubernetes deployment