BMS Components
BMSs are a collection of Ironic components and provide services in physical server management and configuration.
- ironic-api
A RESTful API that processes application requests by sending them to ironic-conductor through remote procedure calls (RPCs). It can run through the WSGI or as a separate process.
- ironic-conductor
Adds, edits, or deletes a server node. Uses IPMI or other protocols customized by suppliers to power on or off nodes, and specifies, deploys, or clears bare metal instance nodes.
Ironic-conductor uses drivers to perform operations on hardware.
- ironic-python-agent
Python service running in the temporary ramdisk. It provides remote access, in-band hardware control, and hardware introspection for ironic-conductor and ironic-inspector.
In addition, the BMSs are similar to other OpenStack services, and also require some external dependencies:
A database that stores hardware information and status. You can set the database backend type and location. A simple approach is to use the same database backend as the Compute service. Another option is to use a separate database backend to further isolate bare metal server resources (and associated metadata) from users.
An oslo.messaging message queue, for example, RabbitMQ. It can use the same implementation as the Compute service, but this is not required. It implements RPC between ironic-api and ironic-conductor.