Usual hardware introspection flow is as follows:
Operator enrolls nodes into Ironic e.g. via ironic CLI 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.
Operator sends nodes on introspection using ironic-inspector API or CLI (see usage).
On receiving node UUID ironic-inspector:
The ramdisk collects the required information and posts it back to ironic-inspector.
On receiving data from the ramdisk, ironic-inspector:
Note
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: add_ports
and
keep_ports
(please refer to example.conf
for detailed explanation).
Default values as of ironic-inspector 1.1.0 are add_ports=pxe
,
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:
add_ports=all
, 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 for details.
Ironic inspector can also be configured to not create any ports. This is
done by setting add_ports=disabled
. If setting add_ports
to disabled
the keep_ports
option should be also set to all
. This will ensure
no manually added ports will be deleted.
Starting DHCP server and configuring PXE boot environment is not part of this package and should be done separately.
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.
Except where otherwise noted, this document is licensed under Creative Commons Attribution 3.0 License. See all OpenStack Legal Documents.