Universal Workflow Operations¶
This section will address usage of the Universal Workflow system. The architecture and implementation of the Universal Workflow system is described at Universal Workflow Architecture.
Actions¶
The universal workflow system is assembled from several content packs. The actions below describe how to adapt the provided workflows to your environment; each links to the content pack that implements it.
Applying an Application¶
Universal application profiles select and configure the operating system and post-install automation applied
to a machine. Assign the appropriate universal-application-* profile to a machine (or have a classification
rule assign it) to apply it. See the Universal Workflow content pack.
Building an Application¶
To provision a workload the provided profiles do not cover, build a new universal application profile (and, if required, a matching boot environment) following the content pack conventions. See the Universal Workflow content pack.
Modifying Discovery Classifier¶
Classification runs during discovery to assign profiles and workflows based on what a machine reports about itself. Adjust the classifier rules to drive additional workflows. See the Classify content pack.
Adding Tasks to a Workflow¶
FlexiFlow injects additional stages or tasks into a universal workflow at defined points, without editing the workflow itself. See the FlexiFlow content pack.
Configuring Callbacks¶
Callbacks invoke external REST services at points in a workflow, for example to integrate with IPAM, CMDB, or notification systems. See the Callback content pack.
Using Validations¶
Validation tasks assert that a machine meets required conditions before a workflow proceeds, and can halt or remediate on failure. See the Validation content pack.
Provided Workflows¶
The following workflows are the default set of universal workflows. Using these are starting points that do most default operations needed to operate a data center.
Each workflow defines what it requires on start and set on completion. These actions allow for the workflows to work together. For example, Discover should set the needed parameters for driving Hardware and the networking in the other workflows. These are the elements defined by the universal parts of these components.
Universal depends upon:
- Digital Rebar Community Content Pack
- Task Library Content Pack
- FlexiFlow Content Pack
- Validation Content Pack
- Callback Plugin
- Classification Content Pack
Core Universal Workflows are detailed below.
Discover¶
This workflow handles discovery a machine and inventories the machine. It also will validate the basic initial pieces. The final piece is classification to drive additional workflows if needed.
NOTE: Discover assumes that it is running in sledgehammer.
The default stages for discover are:
- discover
- inventory-minimal
- centos-setup-repos
- ipmi-inventory
- bios-inventory
- raid-inventory
- network-lldp
- inventory
A common set of post discover flexiflow tasks would be
- rack-discover
- universal-classify
- universal-host-crt-callback
Start¶
This workflow handles starting a virtual machine or context that does not need a full bare metal discovery ( see Discover). It also will validate the basic initial pieces. The final piece is classification to drive additional workflows if needed.
NOTE: Unlike Discover, Start does not assume that is running in sledgehammer.
The default stages for start are:
- start
- drp-agent
- inventory-minimal
- cloud-inventory
- network-lldp
- inventory
Hardware IPMI, Flash, RAID and BIOS Configure¶
This workflow is used to configure hardware and burnin that state. It is also the place where BMC certificates are loaded.
The workflow assumes that the parameters of configuration have been set. See Modifying Discovery Classifier and Build Baseline.
Build Baseline¶
This workflow is used outside of a universal workflow to snapshot the hardware state of a machine and builds profiles named such they work with the universal-classify stage/task.
ESXi Kickstart, Install, Config¶
Installs ESXi through multiple steps.
Solidfire RTFI¶
Handles updating and setting up SolidFire systems through RTFI process
Linux Install¶
Handles installing a linux operating system via network boot (kickstart or preseed).
Alternative Provisioning process in which disk images are written directly to media instead of being installed via kickstart or preseed.
Linux Join¶
Runs standard install processes on Linux systems that are being added to Digital Rebar but where installed by another system (like a Cloud).
Image Deploy¶
Image Deploy - Handles deploying an image-based system
Image Capture¶
This is not a universal workflow in itself. By altering the linux-install workflow with the following tasks.... this goes in the linux post install pre reboot.
- image-reset-package-repos
- image-update-packages
- image-install-cloud-init
- image-builder-cleanup
- image-capture
Digital Rebar Bootstrap¶
This pipeline is used to bootstrap Digital Rebar Servers.
Runbook Processing¶
Provides configuration management operations (e.g.: Ansible, Chef, Puppet, Salt) for installed machines.
Cluster Provision¶
Uses Cluster Managers (v4.8+) to manage clusters of machines.
Resource Broker Provision¶
Uses Resource Brokers (v4.8+) to provision and decommission cloud and virtual infrastructure.
Burnin¶
Stress testing for system verification and validation before production deployment.
Rebuild¶
Redrives the system through the process as a reset operation.
Decommission¶
Decommission clears, wipes, and otherwise resets machines being removed from service, removing data from systems and cleaning them up for reuse or disposal.
Maintenance¶
Sets the system to go into non-destructive Hardware and returns to LocalIdle
Local¶
Starts the existing O/S installed on the system without image or network provisioning.
SledgehammerWait¶
SledgehammerWait - End state for waiting or debugging