Update the inspection documentation

This change moves inspection documentation to its own file
(similar to RAID and cleaning).

It also adds a list of capabilities we *might* discover during inspection.
It's partly based on the iLO spec [1], partly - on the in-band capabilities
discovery RFE [2]. The vendor-specific bits are missing on purpose.

The goal here is to have a common subset of capabilities to be discovered
by all (or the majority) of the drivers (including in-band inspection).

[1] http://specs.openstack.org/openstack/ironic-specs/specs/kilo-implemented/ilo-properties-capabilities-discovery.html#proposed-change
[2] https://bugs.launchpad.net/ironic-python-agent/+bug/1571580

Related-Bug: #1571580
Change-Id: If5d466a2c331674abb30d30dc39871f25a84de88
This commit is contained in:
Dmitry Tantsur 2016-04-20 14:36:17 +02:00
parent 67652e530e
commit f049cfd188
4 changed files with 117 additions and 69 deletions

View File

@ -0,0 +1,114 @@
.. _inspection:
===================
Hardware Inspection
===================
Overview
--------
Inspection allows Bare Metal service to discover required node properties
once required ``driver_info`` fields (for example, IPMI credentials) are set
by an operator. Inspection will also create the Bare Metal service ports for the
discovered ethernet MACs. Operators will have to manually delete the Bare Metal
service ports for which physical media is not connected. This is required due
to the `bug 1405131 <https://bugs.launchpad.net/ironic/+bug/1405131>`_.
There are two kinds of inspection supported by Bare Metal service:
#. Out-of-band inspection is currently implemented by iLO drivers, listed at
:ref:`ilo`.
#. `In-band inspection`_ by utilizing the ironic-inspector_ project.
Inspection can be initiated using node-set-provision-state.
The node should be in MANAGEABLE state before inspection is initiated.
* Move node to manageable state::
ironic node-set-provision-state <node_UUID> manage
* Initiate inspection::
ironic node-set-provision-state <node_UUID> inspect
.. note::
The above commands require the python-ironicclient_ to be version 0.5.0 or greater.
.. _capabilities-discovery:
Capabilities discovery
----------------------
This is an incomplete list of capabilities we want to discover during
inspection. The exact support is driver-specific though, the most complete
list is provided by :ref:`ilo`.
``secure_boot`` (``true`` or ``false``)
whether secure boot is supported for the node;
``boot_mode`` (``bios`` or ``uefi``)
the boot mode the node is using;
``cpu_vt`` (``true`` or ``false``)
whether the CPU virtualization is enabled;
``cpu_aes`` (``true`` or ``false``)
whether the AES CPU extensions are enabled;
``max_raid_level`` (integer, 0-10)
maximum RAID level supported by the node;
``pci_gpu_devices`` (non-negative integer)
number of GPU devices on the node.
The operator can specify these capabilities in nova flavor for node to be selected
for scheduling::
nova flavor-key my-baremetal-flavor set capabilities:pci_gpu_devices="> 0"
nova flavor-key my-baremetal-flavor set capabilities:secure_boot="true"
Please see a specific driver page for the exact list of capabilities this
driver can discover.
In-band inspection
------------------
This is supported by the following drivers::
pxe_drac
pxe_ipmitool
pxe_ipminative
pxe_ssh
This feature needs to be explicitly enabled in the configuration
by setting ``enabled = True`` in ``[inspector]`` section.
You must additionally install python-ironic-inspector-client_ to use
this functionality.
You must set ``service_url`` if the ironic-inspector service is
being run on a separate host from the ironic-conductor service, or is using
non-standard port.
In order to ensure that ports in Bare Metal service are synchronized with
NIC ports on the node, the following settings in the ironic-inspector
configuration file must be set::
[processing]
add_ports = all
keep_ports = present
.. note::
During Kilo cycle we used on older verions of Inspector called
ironic-discoverd_. Inspector is expected to be a mostly drop-in
replacement, and the same client library should be used to connect to both.
For Kilo, install ironic-discoverd_ of version 1.1.0 or higher
instead of python-ironic-inspector-client and use ``[discoverd]`` option
group in both Bare Metal service and ironic-discoverd configuration
files instead of ones provided above.
.. _ironic-inspector: https://pypi.python.org/pypi/ironic-inspector
.. _ironic-discoverd: https://pypi.python.org/pypi/ironic-discoverd
.. _python-ironic-inspector-client: https://pypi.python.org/pypi/python-ironic-inspector-client
.. _python-ironicclient: https://pypi.python.org/pypi/python-ironicclient

View File

@ -1895,76 +1895,11 @@ UUID interchangeably.
.. _wiki_hostname: http://en.wikipedia.org/wiki/Hostname
.. _inspection:
Hardware Inspection
-------------------
Starting with the Kilo release, Bare Metal service supports hardware inspection
that simplifies enrolling nodes.
Inspection allows Bare Metal service to discover required node properties
once required ``driver_info`` fields (for example, IPMI credentials) are set
by an operator. Inspection will also create the Bare Metal service ports for the
discovered ethernet MACs. Operators will have to manually delete the Bare Metal
service ports for which physical media is not connected. This is required due
to the `bug 1405131 <https://bugs.launchpad.net/ironic/+bug/1405131>`_.
There are two kinds of inspection supported by Bare Metal service:
#. Out-of-band inspection is currently implemented by iLO drivers, listed at
:ref:`ilo`.
#. In-band inspection is performed by utilizing the ironic-inspector_ project.
This is supported by the following drivers::
pxe_drac
pxe_ipmitool
pxe_ipminative
pxe_ssh
This feature needs to be explicitly enabled in the configuration
by setting ``enabled = True`` in ``[inspector]`` section.
You must additionally install python-ironic-inspector-client_ to use
this functionality.
You must set ``service_url`` if the ironic-inspector service is
being run on a separate host from the ironic-conductor service, or is using
non-standard port.
In order to ensure that ports in Bare Metal service are synchronized with
NIC ports on the node, the following settings in the ironic-inspector
configuration file must be set::
[processing]
add_ports = all
keep_ports = present
.. note::
During Kilo cycle we used on older verions of Inspector called
ironic-discoverd_. Inspector is expected to be a mostly drop-in
replacement, and the same client library should be used to connect to both.
For Kilo, install ironic-discoverd_ of version 1.1.0 or higher
instead of python-ironic-inspector-client and use ``[discoverd]`` option
group in both Bare Metal service and ironic-discoverd configuration
files instead of ones provided above.
Inspection can be initiated using node-set-provision-state.
The node should be in MANAGEABLE state before inspection is initiated.
* Move node to manageable state::
ironic node-set-provision-state <node_UUID> manage
* Initiate inspection::
ironic node-set-provision-state <node_UUID> inspect
.. note::
The above commands require the python-ironicclient_ to be version 0.5.0 or greater.
.. _ironic-discoverd: https://pypi.python.org/pypi/ironic-discoverd
.. _python-ironic-inspector-client: https://pypi.python.org/pypi/python-ironic-inspector-client
.. _python-ironicclient: https://pypi.python.org/pypi/python-ironicclient
that simplifies enrolling nodes - please see :ref:`inspection` for details.
Specifying the disk for deployment
==================================

View File

@ -878,13 +878,11 @@ for scheduling::
nova flavor-key my-baremetal-flavor set capabilities:server_model="<in> Gen8"
nova flavor-key my-baremetal-flavor set capabilities:pci_gpu_devices="> 0"
nova flavor-key my-baremetal-flavor set capabilities:nic_capacity="10Gb"
nova flavor-key my-baremetal-flavor set capabilities:ilo_firmware_version="<in> 2.10"
nova flavor-key my-baremetal-flavor set capabilities:secure_boot="true"
See :ref:`capabilities-discovery` for more details and examples.
Swiftless deploy for intermediate images
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^

View File

@ -39,6 +39,7 @@ Administrator's Guide
deploy/drivers
deploy/cleaning
deploy/raid
deploy/inspection
deploy/troubleshooting
Release Notes <http://docs.openstack.org/releasenotes/ironic/>