Skip to content

OS

This section describes the architecture and components used in provisioning operating systems.

OS Provisioning in DRP

DRP abstracts OS provisioning behind a common model regardless of the target operating system, installer type, or hardware platform. At the center of this model are BootEnvs — objects that describe how to boot a machine into a specific environment (the OS installer, a discovery OS, or the locally installed OS). A BootEnv contains the kernel, initrd, and iPXE configuration needed to boot the machine, along with a set of templates that are rendered per-machine at boot time to produce the installer configuration file (kickstart, preseed, cloud-init, or ESXi scripted install).

This abstraction means that the workflow layer — stages, tasks, and parameters — is the same whether DRP is installing CentOS via kickstart, Ubuntu via preseed, Windows via WinPE, or ESXi via scripted install. The OS-specific logic is encapsulated in the BootEnv and its templates; the workflow orchestration above it is uniform.

The Provisioning Pipeline

A typical OS provisioning sequence moves a machine through the following phases:

  1. Boot phase. The machine PXE boots and DRP serves it the BootEnv's iPXE script, kernel, and initrd. For installer-based methods, this loads the OS installer in memory. For image deploy, this loads Sledgehammer to perform the image write.

  2. Install phase. The OS installer (or image-deploy tasks) runs, writing the OS to disk. DRP's template system renders the kickstart/preseed/ks.cfg per-machine, injecting network configuration, disk partitioning, root credentials, and the post-install script. The post-install script installs the DRP agent and starts it so the machine connects back to DRP after the first reboot.

  3. First-boot configuration phase. After the installer completes, the machine reboots into the newly installed OS and boots from local disk (BootEnv changes to local). The DRP agent starts, connects to the DRP endpoint, and continues executing the workflow's remaining tasks — application configuration, service registration, validation, and any post-install runbook steps.

How DRP Abstracts OS Differences

Different operating systems require different installer mechanisms, different kickstart formats, and different post-install conventions. DRP handles this through the BootEnv and template system:

  • BootEnvs are OS-specific and are provided by content packs (for example, centos-8-install, ubuntu-20.04-install, esxi-7.0-install). Each BootEnv includes the kernel/initrd paths and the iPXE template needed for that OS's installer.
  • Templates within a BootEnv are rendered per-machine using DRP's Go template engine. Templates have access to all machine parameters, allowing per-machine network config, disk layout, locale, and credentials to be injected without modifying the BootEnv itself.
  • Parameters set on the machine or its profiles control the rendering of templates. This is how a single BootEnv can install the same OS with different configurations across different machine classes.

Sub-pages: Specific OS Types

  • Image Deploy — deploying pre-built disk images instead of running an OS installer.
  • ESXi Architecture — VMware ESXi-specific provisioning design and post-install agent patterns.

Read More