Chapter 1. Bare Metal Provisioning service (ironic) functionality

You use the Bare Metal Provisioning service (ironic) components to provision and manage physical machines as bare metal instances for your cloud users. To provision and manage bare metal instances, the Bare Metal Provisioning service interacts with the following Red Hat OpenStack Platform (RHOSP) services in the overcloud:

  • The Compute service (nova) provides scheduling, tenant quotas, and a user-facing API for virtual machine instance management. The Bare Metal Provisioning service provides the administrative API for hardware management.
  • The Identity service (keystone) provides request authentication and assists the Bare Metal Provisioning service to locate other RHOSP services.
  • The Image service (glance) manages disk and instance images and image metadata.
  • The Networking service (neutron) provides DHCP and network configuration, and provisions the virtual or physical networks that instances connect to on boot.
  • The Object Storage service (swift) exposes temporary image URLs for some drivers.

Bare Metal Provisioning service components

The Bare Metal Provisioning service consists of services, named ironic-*. The following services are the core Bare Metal Provisioning services:

Bare Metal Provisioning API (ironic-api)
This service provides the external REST API to users. The API sends application requests to the Bare Metal Provisioning conductor over remote procedure call (RPC).
Bare Metal Provisioning conductor (ironic-conductor)

This service uses drivers to perform the following bare metal node management tasks:

  • Adds, edits, and deletes bare metal nodes.
  • Powers bare metal nodes on and off with IPMI, Redfish, or other vendor-specific protocol.
  • Provisions, deploys, and cleans bare metal nodes.
Bare Metal Provisioning inspector (ironic-inspector)
This service discovers the hardware properties of a bare metal node that are required for scheduling bare metal instances, and creates the Bare Metal Provisioning service ports for the discovered ethernet MACs.
Bare Metal Provisioning database
This database tracks hardware information and state.
Message queue
All services use this messaging service to communicate with each other, including implementing the RPC between ironic-api and ironic-conductor.
Bare Metal Provisioning agent (ironic-python-agent)
This service runs in a temporary ramdisk to provide ironic-conductor and ironic-inspector services with remote access, in-band hardware control, and hardware introspection.

Provisioning a bare metal instance

The Bare Metal Provisioning service uses iPXE to provision physical machines as bare metal instances. The following diagram outlines how the RHOSP services interact during the provisioning process when a cloud user launches a new bare metal instance with the default drivers.

The PXE Provisioning Process