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