82 lines
3.5 KiB
ReStructuredText
82 lines
3.5 KiB
ReStructuredText
===========================
|
|
Bare Metal service overview
|
|
===========================
|
|
|
|
The Bare Metal service is a collection of components that provides support to
|
|
manage and provision physical machines.
|
|
|
|
Also known as the ``ironic`` project, the Bare Metal service may, depending
|
|
upon configuration, interact with several other OpenStack services. This
|
|
includes:
|
|
|
|
- the OpenStack Telemetry module (``ceilometer``) for consuming the IPMI
|
|
metrics
|
|
- the OpenStack Identity service (``keystone``) for request authentication and
|
|
to locate other OpenStack services
|
|
- the OpenStack Image service (``glance``) from which to retrieve images and
|
|
image meta-data
|
|
- the OpenStack Networking service (``neutron``) for DHCP and network
|
|
configuration
|
|
- the OpenStack Compute service (``nova``) works with the Bare Metal service
|
|
and acts as a user-facing API for instance management, while the Bare Metal
|
|
service provides the admin/operator API for hardware management. The
|
|
OpenStack Compute service also provides scheduling facilities (matching
|
|
flavors <-> images <-> hardware), tenant quotas, IP assignment, and other
|
|
services which the Bare Metal service does not, in and of itself, provide.
|
|
- the OpenStack Object Storage (``swift``) provides temporary storage
|
|
for the configdrive, user images, deployment logs and inspection data.
|
|
|
|
The Bare Metal service includes the following components:
|
|
|
|
ironic-api
|
|
A RESTful API that processes application requests by sending them to the
|
|
ironic-conductor over `remote procedure call (RPC)`_.
|
|
|
|
ironic-conductor
|
|
Adds/edits/deletes nodes; powers on/off nodes with ipmi or other
|
|
vendor-specific protocol;
|
|
provisions/deploys/cleans bare metal nodes.
|
|
|
|
ironic-python-agent
|
|
A python service which is run in a temporary ramdisk to provide
|
|
ironic-conductor and ironic-inspector services with remote access, in-band
|
|
hardware control, and hardware introspection.
|
|
|
|
.. _`remote procedure call (RPC)`: https://en.wikipedia.org/wiki/Remote_procedure_call
|
|
|
|
Additionally, the Bare Metal service has certain external dependencies, which
|
|
are very similar to other OpenStack services:
|
|
|
|
- A database to store hardware information and state. You can set the database
|
|
back-end type and location. A simple approach is to use the same database
|
|
back end as the Compute service. Another approach is to use a separate
|
|
database back-end to further isolate bare metal resources (and associated
|
|
metadata) from users.
|
|
- An oslo.messaging compatible queue, such as RabbitMQ. It may use the same
|
|
implementation as that of the Compute service, but that is not a requirement.
|
|
|
|
Optionally, one may wish to utilize the following associated projects for
|
|
additional functionality:
|
|
|
|
python-ironicclient_
|
|
A command-line interface (CLI) and python bindings for interacting with the
|
|
Bare Metal service.
|
|
|
|
ironic-inspector_
|
|
An associated service which performs in-band hardware introspection by
|
|
PXE booting unregistered hardware into the ironic-python-agent ramdisk.
|
|
|
|
diskimage-builder_
|
|
A related project to help facilitate the creation of ramdisks and machine
|
|
images, such as those running the ironic-python-agent.
|
|
|
|
bifrost_
|
|
A set of Ansible playbooks that automates the task of deploying a base image
|
|
onto a set of known hardware using ironic in a standalone mode.
|
|
|
|
.. _python-ironicclient: https://docs.openstack.org/python-ironicclient/latest/
|
|
.. _ironic-inspector: https://docs.openstack.org/ironic-inspector/latest/
|
|
.. _diskimage-builder: https://docs.openstack.org/diskimage-builder/latest/
|
|
.. _bifrost: https://docs.openstack.org/bifrost/latest/
|
|
|