How Ironic Inspector Works
Usual hardware introspection flow is as follows:
Operator enrolls nodes into Ironic e.g. via
openstack baremetal CLI <cli/osc_plugin_cli.html>command. Power management credentials should be provided to Ironic at this step.
Nodes are put in the correct state for introspection as described in
node states <node_states>.
Operator sends nodes on introspection using ironic-inspector API or CLI (see
On receiving node UUID ironic-inspector:
- validates node power credentials, current power and provisioning states,
- allows access to PXE boot service for the nodes,
- issues reboot command for the nodes, so that they boot the ramdisk.
The ramdisk collects the required information and posts it back to ironic-inspector.
On receiving data from the ramdisk, ironic-inspector:
- validates received data,
- finds the node in Ironic database using it's BMC address (MAC address in case of SSH driver),
- fills missing node properties with received data and creates missing ports.
ironic-inspector is responsible to create Ironic ports for some or all NIC's found on the node. ironic-inspector is also capable of deleting ports that should not be present. There are two important configuration options that affect this behavior:
keep_ports(please refer to
the sample configuration file </configuration/sample-config>for a detailed explanation).
Default values as of ironic-inspector 1.1.0 are
keep_ports=all, which means that only one port will be added, which is associated with NIC the ramdisk PXE booted from. No ports will be deleted. This setting ensures that deploying on introspected nodes will succeed despite Ironic bug 1405131.
Ironic inspection feature by default requires different settings:
keep_ports=present, which means that ports will be created for all detected NIC's, and all other ports will be deleted. Refer to the
Ironic inspection documentation <admin/inspection.html>for details.
Ironic inspector can also be configured to not create any ports. This is done by setting
add_ports=disabled. If setting
add_portsto disabled the
keep_portsoption should be also set to
all. This will ensure no manually added ports will be deleted.
Separate API (see
usage <usage_guide>and API reference) can be used to query introspection results for a given node.
Nodes are put in the correct state for deploying as described in
node states <node_states>.
Starting DHCP server and configuring PXE boot environment is not part of this package and should be done separately.
State machine diagram
The diagram below shows the introspection states that an ironic-inspector FSM goes through during the node introspection, discovery and reprocessing. The diagram also shows events that trigger state transitions.