Switch non-vendor parts admin guide to hardware types
This change makes the admin guide use hardware types for examples and explanations. The in-band inspection document was updated with recent changes. Vendor driver documentation requires more careful review, and ideally should be updated by vendor representatives. Change-Id: I98a2eb905e352502a7f9f4cb1804c9d64489ec47 Partial-Bug: #1690185
This commit is contained in:
parent
75499e1ccf
commit
8a87fc6fcb
@ -26,17 +26,17 @@ How it works
|
|||||||
============
|
============
|
||||||
|
|
||||||
A node initially enrolled begins in the ``enroll`` state. An operator
|
A node initially enrolled begins in the ``enroll`` state. An operator
|
||||||
must then move the node to ``manageable`` state, which causes the driver's
|
must then move the node to ``manageable`` state, which causes the node's
|
||||||
``power`` interface to be validated. Once in ``manageable`` state,
|
``power`` interface to be validated. Once in ``manageable`` state,
|
||||||
an operator can then explicitly choose to adopt a node.
|
an operator can then explicitly choose to adopt a node.
|
||||||
|
|
||||||
Adoption of a node results in the validation of the driver ``boot`` interface,
|
Adoption of a node results in the validation of its ``boot`` interface,
|
||||||
and upon success the process leverages what is referred to as the "takeover"
|
and upon success the process leverages what is referred to as the "takeover"
|
||||||
logic. The takeover process is intended for conductors to take over the
|
logic. The takeover process is intended for conductors to take over the
|
||||||
management of nodes for a conductor that has failed.
|
management of nodes for a conductor that has failed.
|
||||||
|
|
||||||
The takeover process involves the driver deploy ``prepare`` and ``take_over``
|
The takeover process involves the deploy interface's ``prepare`` and
|
||||||
methods being called. These steps take driver specific actions such as
|
``take_over`` methods being called. These steps take specific actions such as
|
||||||
downloading and staging the deployment kernel and ramdisk, ISO image, any
|
downloading and staging the deployment kernel and ramdisk, ISO image, any
|
||||||
required boot image, or boot ISO image and then places any PXE or virtual
|
required boot image, or boot ISO image and then places any PXE or virtual
|
||||||
media configuration necessary for the node should it be required.
|
media configuration necessary for the node should it be required.
|
||||||
@ -101,7 +101,7 @@ Requirements for use are essentially the same as to deploy a node:
|
|||||||
* Sufficient driver information to allow for a successful
|
* Sufficient driver information to allow for a successful
|
||||||
power management validation.
|
power management validation.
|
||||||
|
|
||||||
* Sufficient instance_info to pass deploy driver preparation.
|
* Sufficient instance_info to pass deploy interface preparation.
|
||||||
|
|
||||||
Each driver may have additional requirements dependent upon the
|
Each driver may have additional requirements dependent upon the
|
||||||
configuration that is supplied. An example of this would be defining
|
configuration that is supplied. An example of this would be defining
|
||||||
@ -110,8 +110,8 @@ to attempt to retrieve the pertinent files. Inability to do so will
|
|||||||
result in the adoption failing, and the node being placed in the
|
result in the adoption failing, and the node being placed in the
|
||||||
``adopt failed`` state.
|
``adopt failed`` state.
|
||||||
|
|
||||||
agent_ipmitool example
|
Example
|
||||||
----------------------
|
-------
|
||||||
|
|
||||||
This is an example to create a new node, named ``testnode``, with
|
This is an example to create a new node, named ``testnode``, with
|
||||||
sufficient information to pass basic validation in order to be taken
|
sufficient information to pass basic validation in order to be taken
|
||||||
@ -122,7 +122,7 @@ from the ``manageable`` state to ``active`` state::
|
|||||||
export OS_BAREMETAL_API_VERSION=1.17
|
export OS_BAREMETAL_API_VERSION=1.17
|
||||||
|
|
||||||
openstack baremetal node create --name testnode \
|
openstack baremetal node create --name testnode \
|
||||||
--driver agent_ipmitool \
|
--driver ipmi \
|
||||||
--driver-info ipmi_address=<ip_address> \
|
--driver-info ipmi_address=<ip_address> \
|
||||||
--driver-info ipmi_username=<username> \
|
--driver-info ipmi_username=<username> \
|
||||||
--driver-info ipmi_password=<password> \
|
--driver-info ipmi_password=<password> \
|
||||||
|
@ -43,15 +43,17 @@ Ironic added support for automated cleaning in the Kilo release.
|
|||||||
|
|
||||||
Enabling automated cleaning
|
Enabling automated cleaning
|
||||||
---------------------------
|
---------------------------
|
||||||
To enable automated cleaning, ensure that your ironic.conf is set as follows.
|
|
||||||
(Prior to Mitaka, this option was named 'clean_nodes'.)::
|
To enable automated cleaning, ensure that your ironic.conf is set as follows:
|
||||||
|
|
||||||
|
.. code-block:: ini
|
||||||
|
|
||||||
[conductor]
|
[conductor]
|
||||||
automated_clean=true
|
automated_clean=true
|
||||||
|
|
||||||
This will enable the default set of cleaning steps, based on your hardware and
|
This will enable the default set of cleaning steps, based on your hardware and
|
||||||
ironic drivers. If you're using an agent_* driver, this includes, by default,
|
ironic hardware types used for nodes. This includes, by default, erasing all
|
||||||
erasing all of the previous tenant's data.
|
of the previous tenant's data.
|
||||||
|
|
||||||
You may also need to configure a `Cleaning Network`_.
|
You may also need to configure a `Cleaning Network`_.
|
||||||
|
|
||||||
@ -60,7 +62,7 @@ Cleaning steps
|
|||||||
|
|
||||||
Cleaning steps used for automated cleaning are ordered from higher to lower
|
Cleaning steps used for automated cleaning are ordered from higher to lower
|
||||||
priority, where a larger integer is a higher priority. In case of a conflict
|
priority, where a larger integer is a higher priority. In case of a conflict
|
||||||
between priorities across drivers, the following resolution order is used:
|
between priorities across interfaces, the following resolution order is used:
|
||||||
Power, Management, Deploy, and RAID interfaces.
|
Power, Management, Deploy, and RAID interfaces.
|
||||||
|
|
||||||
You can skip a cleaning step by setting the priority for that cleaning step
|
You can skip a cleaning step by setting the priority for that cleaning step
|
||||||
@ -146,7 +148,7 @@ An example of the request body for this API::
|
|||||||
}]
|
}]
|
||||||
}
|
}
|
||||||
|
|
||||||
In the above example, the driver's RAID interface would configure hardware
|
In the above example, the node's RAID interface would configure hardware
|
||||||
RAID without non-root volumes, and then all devices would be erased
|
RAID without non-root volumes, and then all devices would be erased
|
||||||
(in that order).
|
(in that order).
|
||||||
|
|
||||||
@ -206,19 +208,20 @@ out-of-band. Ironic supports using both methods to clean a node.
|
|||||||
In-band
|
In-band
|
||||||
-------
|
-------
|
||||||
In-band steps are performed by ironic making API calls to a ramdisk running
|
In-band steps are performed by ironic making API calls to a ramdisk running
|
||||||
on the node using a Deploy driver. Currently, all the drivers using
|
on the node using a deploy interface. Currently, all the deploy interfaces
|
||||||
ironic-python-agent ramdisk support in-band cleaning. By default,
|
support in-band cleaning. By default, ironic-python-agent ships with a minimal
|
||||||
ironic-python-agent ships with a minimal cleaning configuration, only erasing
|
cleaning configuration, only erasing disks. However, you can add your own
|
||||||
disks. However, with this ramdisk, you can add your own cleaning steps and/or
|
cleaning steps and/or override default cleaning steps with a custom
|
||||||
override default cleaning steps with a custom Hardware Manager.
|
Hardware Manager.
|
||||||
|
|
||||||
Out-of-band
|
Out-of-band
|
||||||
-----------
|
-----------
|
||||||
Out-of-band are actions performed by your management controller, such as IPMI,
|
Out-of-band are actions performed by your management controller, such as IPMI,
|
||||||
iLO, or DRAC. Out-of-band steps will be performed by ironic using a Power or
|
iLO, or DRAC. Out-of-band steps will be performed by ironic using a power or
|
||||||
Management driver. Which steps are performed depends on the driver and hardware.
|
management interface. Which steps are performed depends on the hardware type
|
||||||
|
and hardware itself.
|
||||||
|
|
||||||
For Out-of-Band cleaning operations supported by iLO drivers, refer to
|
For Out-of-Band cleaning operations supported by iLO hardware types, refer to
|
||||||
:ref:`ilo_node_cleaning`.
|
:ref:`ilo_node_cleaning`.
|
||||||
|
|
||||||
FAQ
|
FAQ
|
||||||
@ -228,8 +231,12 @@ How are cleaning steps ordered?
|
|||||||
-------------------------------
|
-------------------------------
|
||||||
For automated cleaning, cleaning steps are ordered by integer priority, where
|
For automated cleaning, cleaning steps are ordered by integer priority, where
|
||||||
a larger integer is a higher priority. In case of a conflict between priorities
|
a larger integer is a higher priority. In case of a conflict between priorities
|
||||||
across drivers, the following resolution order is used: Power, Management,
|
across hardware interfaces, the following resolution order is used:
|
||||||
Deploy, and RAID interfaces.
|
|
||||||
|
#. Power interface
|
||||||
|
#. Management interface
|
||||||
|
#. Deploy interface
|
||||||
|
#. RAID interface
|
||||||
|
|
||||||
For manual cleaning, the cleaning steps should be specified in the desired
|
For manual cleaning, the cleaning steps should be specified in the desired
|
||||||
order.
|
order.
|
||||||
@ -257,7 +264,7 @@ to disable erase_devices, you'd set the following configuration option::
|
|||||||
[deploy]
|
[deploy]
|
||||||
erase_devices_priority=0
|
erase_devices_priority=0
|
||||||
|
|
||||||
To enable/disable the in-band disk erase using ``agent_ilo`` driver, use the
|
To enable/disable the in-band disk erase using ``ilo`` hardware type, use the
|
||||||
following configuration option::
|
following configuration option::
|
||||||
|
|
||||||
[ilo]
|
[ilo]
|
||||||
@ -292,7 +299,7 @@ some tradeoffs to having it enabled. For instance, ironic cannot deploy a new
|
|||||||
instance to a node that is currently cleaning, and cleaning can be a time
|
instance to a node that is currently cleaning, and cleaning can be a time
|
||||||
consuming process. To mitigate this, we suggest using disks with support for
|
consuming process. To mitigate this, we suggest using disks with support for
|
||||||
cryptographic ATA Security Erase, as typically the erase_devices step in the
|
cryptographic ATA Security Erase, as typically the erase_devices step in the
|
||||||
deploy driver takes the longest time to complete of all cleaning steps.
|
deploy interface takes the longest time to complete of all cleaning steps.
|
||||||
|
|
||||||
Why can't I power on/off a node while it's cleaning?
|
Why can't I power on/off a node while it's cleaning?
|
||||||
----------------------------------------------------
|
----------------------------------------------------
|
||||||
|
@ -94,8 +94,21 @@ The web console can be configured in Bare Metal service in the following way:
|
|||||||
configuration file (/etc/ironic/ironic.conf). See the reference for
|
configuration file (/etc/ironic/ironic.conf). See the reference for
|
||||||
configuration in :ref:`kernel-boot-parameters`.
|
configuration in :ref:`kernel-boot-parameters`.
|
||||||
|
|
||||||
|
* Enable the ``ipmitool-shellinabox`` console interface, for example:
|
||||||
|
|
||||||
|
.. code-block:: ini
|
||||||
|
|
||||||
|
[DEFAULT]
|
||||||
|
enabled_console_interfaces = ipmitool-shellinabox,no-console
|
||||||
|
|
||||||
* Configure node web console.
|
* Configure node web console.
|
||||||
|
|
||||||
|
If the node uses a hardware type, for example ``ipmi``, set the node's
|
||||||
|
console interface to ``ipmitool-shellinabox``::
|
||||||
|
|
||||||
|
openstack --os-baremetal-api-version 1.31 baremetal node set <node-uuid> \
|
||||||
|
--console-interface ipmitool-shellinabox
|
||||||
|
|
||||||
Enable the web console, for example::
|
Enable the web console, for example::
|
||||||
|
|
||||||
openstack baremetal node set <node-uuid> \
|
openstack baremetal node set <node-uuid> \
|
||||||
@ -116,7 +129,7 @@ The web console can be configured in Bare Metal service in the following way:
|
|||||||
|
|
||||||
openstack baremetal driver property list <driver>
|
openstack baremetal driver property list <driver>
|
||||||
|
|
||||||
For ``*_ipmitool`` and ``*_ipminative`` drivers, this option is ``ipmi_terminal_port``.
|
For the ``ipmi`` hardware type, this option is ``ipmi_terminal_port``.
|
||||||
Give a customized port number to ``<customized_port>``,
|
Give a customized port number to ``<customized_port>``,
|
||||||
for example ``8023``, this customized port is used in web console url.
|
for example ``8023``, this customized port is used in web console url.
|
||||||
|
|
||||||
@ -142,11 +155,8 @@ The web console can be configured in Bare Metal service in the following way:
|
|||||||
Node serial console
|
Node serial console
|
||||||
-------------------
|
-------------------
|
||||||
|
|
||||||
Serial consoles for nodes are implemented using `socat`_.
|
Serial consoles for nodes are implemented using `socat`_. It is supported by
|
||||||
In Newton, the following drivers support socat consoles for nodes:
|
the ``ipmi`` and ``irmc`` hardware types.
|
||||||
|
|
||||||
* agent_ipmitool_socat
|
|
||||||
* pxe_ipmitool_socat
|
|
||||||
|
|
||||||
Serial consoles can be configured in the Bare Metal service as follows:
|
Serial consoles can be configured in the Bare Metal service as follows:
|
||||||
|
|
||||||
@ -168,8 +178,21 @@ Serial consoles can be configured in the Bare Metal service as follows:
|
|||||||
service configuration file. See the reference on how to configure them in
|
service configuration file. See the reference on how to configure them in
|
||||||
:ref:`kernel-boot-parameters`.
|
:ref:`kernel-boot-parameters`.
|
||||||
|
|
||||||
|
* Enable the ``ipmitool-socat`` console interface, for example:
|
||||||
|
|
||||||
|
.. code-block:: ini
|
||||||
|
|
||||||
|
[DEFAULT]
|
||||||
|
enabled_console_interfaces = ipmitool-socat,no-console
|
||||||
|
|
||||||
* Configure node console.
|
* Configure node console.
|
||||||
|
|
||||||
|
If the node uses a hardware type, for example ``ipmi``, set the node's
|
||||||
|
console interface to ``ipmitool-socat``::
|
||||||
|
|
||||||
|
openstack --os-baremetal-api-version 1.31 baremetal node set <node-uuid> \
|
||||||
|
--console-interface ipmitool-socat
|
||||||
|
|
||||||
Enable the serial console, for example::
|
Enable the serial console, for example::
|
||||||
|
|
||||||
openstack baremetal node set <node-uuid> --driver-info ipmi_terminal_port=<port>
|
openstack baremetal node set <node-uuid> --driver-info ipmi_terminal_port=<port>
|
||||||
|
@ -17,9 +17,8 @@ For more information see the `ironic-python-agent documentation
|
|||||||
Drivers
|
Drivers
|
||||||
=======
|
=======
|
||||||
|
|
||||||
Starting with the Kilo release all drivers (except for fake ones) are using
|
Starting with the Kilo release all deploy interfaces (except for fake ones)
|
||||||
IPA for deployment. There are two types of them, which can be distinguished
|
are using IPA. There are two types of them:
|
||||||
by prefix:
|
|
||||||
|
|
||||||
* For nodes using the :ref:`iscsi-deploy` interface, IPA exposes the root hard
|
* For nodes using the :ref:`iscsi-deploy` interface, IPA exposes the root hard
|
||||||
drive as an iSCSI share and calls back to the ironic conductor. The
|
drive as an iSCSI share and calls back to the ironic conductor. The
|
||||||
@ -32,28 +31,28 @@ by prefix:
|
|||||||
process: downloading an image from swift, putting it on the machine and doing
|
process: downloading an image from swift, putting it on the machine and doing
|
||||||
any post-deploy actions.
|
any post-deploy actions.
|
||||||
|
|
||||||
Which one to choose depends on your environment. iSCSI-based drivers put
|
Which one to choose depends on your environment. :ref:`iscsi-deploy` puts
|
||||||
higher load on conductors, agent-based drivers currently require the whole
|
higher load on conductors, :ref:`direct-deploy` currently requires the whole
|
||||||
image to fit in the node's memory.
|
image to fit in the node's memory, except when using raw images. It also
|
||||||
|
requires :doc:`/install/configure-glance-swift`.
|
||||||
|
|
||||||
.. todo: other differences?
|
.. todo: other differences?
|
||||||
|
|
||||||
.. todo: explain configuring swift for temporary URL's
|
|
||||||
|
|
||||||
Requirements
|
Requirements
|
||||||
------------
|
------------
|
||||||
|
|
||||||
Using IPA requires it to be present and configured on the deploy ramdisk, see
|
Using IPA requires it to be present and configured on the deploy ramdisk, see
|
||||||
:ref:`deploy-ramdisk`
|
:ref:`deploy-ramdisk`
|
||||||
|
|
||||||
Using proxies for image download in agent drivers
|
Using proxies for image download
|
||||||
=================================================
|
================================
|
||||||
|
|
||||||
Overview
|
Overview
|
||||||
--------
|
--------
|
||||||
|
|
||||||
IPA supports using proxies while downloading the user image. For example, this
|
When using the :ref:`direct-deploy`, IPA supports using proxies for downloading
|
||||||
could be used to speed up download by using caching proxy.
|
the user image. For example, this could be used to speed up download by using
|
||||||
|
a caching proxy.
|
||||||
|
|
||||||
Steps to enable proxies
|
Steps to enable proxies
|
||||||
-----------------------
|
-----------------------
|
||||||
@ -100,9 +99,7 @@ Steps to enable proxies
|
|||||||
|
|
||||||
#. Add one or more of ``image_http_proxy``, ``image_https_proxy``,
|
#. Add one or more of ``image_http_proxy``, ``image_https_proxy``,
|
||||||
``image_no_proxy`` to driver_info properties in each node that will use the
|
``image_no_proxy`` to driver_info properties in each node that will use the
|
||||||
proxy. Please refer to the ``openstack baremetal driver property list``
|
proxy.
|
||||||
output of the ``agent_*`` driver you're using for descriptions of these
|
|
||||||
properties.
|
|
||||||
|
|
||||||
Advanced configuration
|
Advanced configuration
|
||||||
======================
|
======================
|
||||||
|
@ -45,16 +45,6 @@ Please see :doc:`/install/configure-ipmi` for the required dependencies.
|
|||||||
[DEFAULT]
|
[DEFAULT]
|
||||||
enabled_hardware_types = ipmi
|
enabled_hardware_types = ipmi
|
||||||
|
|
||||||
#. The ``pxe_ipmitool`` classic driver is enabled by default. To enable one or
|
|
||||||
more of the other IPMI classic drivers, add them to the
|
|
||||||
``enabled_drivers`` configuration option in your ``ironic.conf``.
|
|
||||||
The following enables ``pxe_ipmitool`` and ``agent_ipmitool`` drivers:
|
|
||||||
|
|
||||||
.. code-block:: ini
|
|
||||||
|
|
||||||
[DEFAULT]
|
|
||||||
enabled_drivers = pxe_ipmitool,agent_ipmitool
|
|
||||||
|
|
||||||
#. Restart the Ironic conductor service.
|
#. Restart the Ironic conductor service.
|
||||||
|
|
||||||
Please see :doc:`/install/enabling-drivers` for more details.
|
Please see :doc:`/install/enabling-drivers` for more details.
|
||||||
|
@ -2,12 +2,17 @@
|
|||||||
SNMP driver
|
SNMP driver
|
||||||
===========
|
===========
|
||||||
|
|
||||||
The SNMP power driver enables control of power distribution units of the type
|
The SNMP hardware type enables control of power distribution units of the type
|
||||||
frequently found in data centre racks. PDUs frequently have a management
|
frequently found in data centre racks. PDUs frequently have a management
|
||||||
ethernet interface and SNMP support enabling control of the power outlets.
|
ethernet interface and SNMP support enabling control of the power outlets.
|
||||||
|
|
||||||
The SNMP power driver works with the PXE driver for network deployment and
|
The SNMP power interface works with the :ref:`pxe-boot` interface for network
|
||||||
network-configured boot.
|
deployment and network-configured boot.
|
||||||
|
|
||||||
|
.. note::
|
||||||
|
Unlike most of the other power interfaces, the SNMP power interface does
|
||||||
|
not have a corresponding management interface. The SNMP hardware type uses
|
||||||
|
the ``fake`` management interface instead.
|
||||||
|
|
||||||
List of supported devices
|
List of supported devices
|
||||||
=========================
|
=========================
|
||||||
@ -57,8 +62,8 @@ Software Requirements
|
|||||||
- The PySNMP package must be installed, variously referred to as ``pysnmp``
|
- The PySNMP package must be installed, variously referred to as ``pysnmp``
|
||||||
or ``python-pysnmp``
|
or ``python-pysnmp``
|
||||||
|
|
||||||
Enabling the SNMP Power Driver
|
Enabling the SNMP Hardware Type
|
||||||
==============================
|
===============================
|
||||||
|
|
||||||
#. Add ``snmp`` to the list of ``enabled_hardware_types`` in ``ironic.conf``.
|
#. Add ``snmp`` to the list of ``enabled_hardware_types`` in ``ironic.conf``.
|
||||||
Also update ``enabled_management_interfaces`` and
|
Also update ``enabled_management_interfaces`` and
|
||||||
@ -71,15 +76,6 @@ Enabling the SNMP Power Driver
|
|||||||
enabled_management_interfaces = fake
|
enabled_management_interfaces = fake
|
||||||
enabled_power_interfaces = snmp
|
enabled_power_interfaces = snmp
|
||||||
|
|
||||||
#. Alternatively, if you prefer using the classic driver instead of the
|
|
||||||
``snmp`` hardware type, add ``pxe_snmp`` to the list of ``enabled_drivers``
|
|
||||||
in ``ironic.conf``:
|
|
||||||
|
|
||||||
.. code-block:: ini
|
|
||||||
|
|
||||||
[DEFAULT]
|
|
||||||
enabled_drivers = pxe_snmp
|
|
||||||
|
|
||||||
#. To set the default boot option, update ``default_boot_option`` in
|
#. To set the default boot option, update ``default_boot_option`` in
|
||||||
``ironic.conf``:
|
``ironic.conf``:
|
||||||
|
|
||||||
@ -94,10 +90,10 @@ Enabling the SNMP Power Driver
|
|||||||
to set an explicit value for this option.
|
to set an explicit value for this option.
|
||||||
|
|
||||||
.. note::
|
.. note::
|
||||||
It is important to set ``boot_option`` to ``netboot`` as SNMP drivers
|
It is important to set ``boot_option`` to ``netboot`` as SNMP hardware
|
||||||
do not support setting of boot devices. One can also configure a node
|
type does not support setting of boot devices. One can also configure
|
||||||
to boot using ``netboot`` by setting its ``capabilities`` and updating
|
a node to boot using ``netboot`` by setting its ``capabilities`` and
|
||||||
Nova flavor as described below:
|
updating Nova flavor as described below:
|
||||||
|
|
||||||
.. code-block:: console
|
.. code-block:: console
|
||||||
|
|
||||||
@ -114,9 +110,8 @@ Enabling the SNMP Power Driver
|
|||||||
Ironic Node Configuration
|
Ironic Node Configuration
|
||||||
=========================
|
=========================
|
||||||
|
|
||||||
Nodes configured to use the SNMP driver should have the ``driver`` field
|
Nodes configured to use the SNMP hardware type should have the ``driver`` field
|
||||||
set to the hardware type ``snmp`` (preferred) or to the classic driver
|
set to the hardware type ``snmp``.
|
||||||
``pxe_snmp``.
|
|
||||||
|
|
||||||
The following property values have to be added to the node's
|
The following property values have to be added to the node's
|
||||||
``driver_info`` field:
|
``driver_info`` field:
|
||||||
@ -134,7 +129,8 @@ The following property values have to be added to the node's
|
|||||||
- ``snmp_security``: (Required for SNMPv3) SNMPv3 User-based Security Model
|
- ``snmp_security``: (Required for SNMPv3) SNMPv3 User-based Security Model
|
||||||
(USM) user name.
|
(USM) user name.
|
||||||
|
|
||||||
The following command can be used to enroll a node with the ``snmp`` driver:
|
The following command can be used to enroll a node with the ``snmp`` hardware
|
||||||
|
type:
|
||||||
|
|
||||||
.. code-block:: bash
|
.. code-block:: bash
|
||||||
|
|
||||||
@ -148,8 +144,8 @@ The following command can be used to enroll a node with the ``snmp`` driver:
|
|||||||
PDU Configuration
|
PDU Configuration
|
||||||
=================
|
=================
|
||||||
|
|
||||||
This version of the SNMP power driver does not support SNMPv3 authentication
|
This version of the SNMP power interface does not support SNMPv3 authentication
|
||||||
or encryption features. When using SNMPv3, the SNMPv3 agent at the PDU must
|
or encryption features. When using SNMPv3, the SNMPv3 agent at the PDU must
|
||||||
be configured in ``noAuthNoPriv`` mode. Also, the ``snmp_security`` parameter
|
be configured in ``noAuthNoPriv`` mode. Also, the ``snmp_security`` parameter
|
||||||
is used to configure SNMP USM user name to the SNMP manager at the power
|
is used to configure SNMP USM user name to the SNMP manager at the power
|
||||||
driver. The same USM user name must be configured to the target SNMP agent.
|
interface. The same USM user name must be configured to the target SNMP agent.
|
||||||
|
@ -16,33 +16,29 @@ to the `bug 1405131 <https://bugs.launchpad.net/ironic/+bug/1405131>`_.
|
|||||||
|
|
||||||
There are two kinds of inspection supported by Bare Metal service:
|
There are two kinds of inspection supported by Bare Metal service:
|
||||||
|
|
||||||
#. Out-of-band inspection is currently implemented by iLO drivers, listed at
|
#. Out-of-band inspection is currently implemented by several hardware types,
|
||||||
:ref:`ilo`.
|
including ``ilo``, ``idrac`` and ``irmc``.
|
||||||
|
|
||||||
#. `In-band inspection`_ by utilizing the ironic-inspector_ project.
|
#. `In-band inspection`_ by utilizing the ironic-inspector_ project.
|
||||||
|
|
||||||
Inspection can be initiated using node-set-provision-state.
|
The node should be in the ``manageable`` state before inspection is initiated.
|
||||||
The node should be in MANAGEABLE state before inspection is initiated.
|
If it is in the ``enroll`` or ``available`` state, move it to ``manageable``
|
||||||
|
first::
|
||||||
* Move node to manageable state::
|
|
||||||
|
|
||||||
openstack baremetal node manage <node_UUID>
|
openstack baremetal node manage <node_UUID>
|
||||||
|
|
||||||
* Initiate inspection::
|
Then inspection can be initiated using the following command::
|
||||||
|
|
||||||
openstack baremetal node inspect <node_UUID>
|
openstack baremetal node inspect <node_UUID>
|
||||||
|
|
||||||
.. note::
|
|
||||||
The above commands require the python-ironicclient_ to be version 0.5.0 or greater.
|
|
||||||
|
|
||||||
.. _capabilities-discovery:
|
.. _capabilities-discovery:
|
||||||
|
|
||||||
Capabilities discovery
|
Capabilities discovery
|
||||||
----------------------
|
----------------------
|
||||||
|
|
||||||
This is an incomplete list of capabilities we want to discover during
|
This is an incomplete list of capabilities we want to discover during
|
||||||
inspection. The exact support is driver-specific though, the most complete
|
inspection. The exact support is hardware and hardware type specific though,
|
||||||
list is provided by the iLO :ref:`ilo-inspection`.
|
the most complete list is provided by the iLO :ref:`ilo-inspection`.
|
||||||
|
|
||||||
``secure_boot`` (``true`` or ``false``)
|
``secure_boot`` (``true`` or ``false``)
|
||||||
whether secure boot is supported for the node
|
whether secure boot is supported for the node
|
||||||
@ -69,8 +65,8 @@ for scheduling::
|
|||||||
|
|
||||||
nova flavor-key my-baremetal-flavor set capabilities:secure_boot="true"
|
nova flavor-key my-baremetal-flavor set capabilities:secure_boot="true"
|
||||||
|
|
||||||
Please see a specific driver page for the exact list of capabilities this
|
Please see a specific :doc:`hardware type page </admin/drivers>` for
|
||||||
driver can discover.
|
the exact list of capabilities this hardware type can discover.
|
||||||
|
|
||||||
In-band inspection
|
In-band inspection
|
||||||
------------------
|
------------------
|
||||||
@ -81,29 +77,33 @@ than the out-of-band inspection, but it is not vendor-specific and works
|
|||||||
across a wide range of hardware. In-band inspection is using the
|
across a wide range of hardware. In-band inspection is using the
|
||||||
ironic-inspector_ project.
|
ironic-inspector_ project.
|
||||||
|
|
||||||
Currently it is supported by the following generic drivers::
|
It is supported by all hardware types, and used by default, if enabled, by the
|
||||||
|
``ipmi`` hardware type. The ``inspector`` *inspect* interface has to be
|
||||||
|
enabled to use it:
|
||||||
|
|
||||||
pxe_ipmitool
|
.. code-block:: ini
|
||||||
pxe_ipminative
|
|
||||||
agent_ipmitool
|
|
||||||
agent_ipminative
|
|
||||||
fake_inspector
|
|
||||||
|
|
||||||
It is also the default inspection approach for the following vendor drivers::
|
[DEFAULT]
|
||||||
|
enabled_inspect_interfaces = inspector,no-inspect
|
||||||
|
|
||||||
pxe_drac
|
If using classic drivers supporting in-band inspection, like ``pxe_ipmitool``,
|
||||||
pxe_ucs
|
another option has to be set as well:
|
||||||
pxe_cimc
|
|
||||||
agent_ucs
|
.. code-block:: ini
|
||||||
agent_cimc
|
|
||||||
|
[inspector]
|
||||||
|
enabled = True
|
||||||
|
|
||||||
This feature needs to be explicitly enabled in the ironic configuration file
|
|
||||||
by setting ``enabled = True`` in ``[inspector]`` section.
|
|
||||||
You must additionally install python-ironic-inspector-client_ to use
|
You must additionally install python-ironic-inspector-client_ to use
|
||||||
this functionality.
|
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
|
If the ironic-inspector service is not registered in the service catalog, set
|
||||||
non-standard port.
|
the following option:
|
||||||
|
|
||||||
|
.. code-block:: ini
|
||||||
|
|
||||||
|
[inspector]
|
||||||
|
endpoint-override = http://inspector.example.com:5050
|
||||||
|
|
||||||
In order to ensure that ports in Bare Metal service are synchronized with
|
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
|
NIC ports on the node, the following settings in the ironic-inspector
|
||||||
@ -113,17 +113,6 @@ configuration file must be set::
|
|||||||
add_ports = all
|
add_ports = all
|
||||||
keep_ports = present
|
keep_ports = present
|
||||||
|
|
||||||
.. note::
|
|
||||||
During Kilo cycle we used an older version 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-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-ironic-inspector-client: https://pypi.python.org/pypi/python-ironic-inspector-client
|
||||||
.. _python-ironicclient: https://pypi.python.org/pypi/python-ironicclient
|
.. _python-ironicclient: https://pypi.python.org/pypi/python-ironicclient
|
||||||
|
@ -138,9 +138,10 @@ Example of node CRUD notification::
|
|||||||
"clean_step": None,
|
"clean_step": None,
|
||||||
"console_enabled": False,
|
"console_enabled": False,
|
||||||
"created_at": "2016-01-26T20:41:03+00:00",
|
"created_at": "2016-01-26T20:41:03+00:00",
|
||||||
"driver": "fake",
|
"driver": "ipmi",
|
||||||
"driver_info": {
|
"driver_info": {
|
||||||
"host": "192.168.0.111"},
|
"ipmi_address": "192.168.0.111",
|
||||||
|
"ipmi_username": "root"},
|
||||||
"extra": {},
|
"extra": {},
|
||||||
"inspection_finished_at": None,
|
"inspection_finished_at": None,
|
||||||
"inspection_started_at": None,
|
"inspection_started_at": None,
|
||||||
@ -149,16 +150,16 @@ Example of node CRUD notification::
|
|||||||
"last_error": None,
|
"last_error": None,
|
||||||
"maintenance": False,
|
"maintenance": False,
|
||||||
"maintenance_reason": None,
|
"maintenance_reason": None,
|
||||||
"boot_interface": None,
|
"boot_interface": "pxe",
|
||||||
"console_interface": None,
|
"console_interface": "no-console",
|
||||||
"deploy_interface": None,
|
"deploy_interface": "iscsi",
|
||||||
"inspect_interface": None,
|
"inspect_interface": "no-inspect",
|
||||||
"management_interface": None,
|
"management_interface": "ipmitool",
|
||||||
"network_interface": "flat",
|
"network_interface": "flat",
|
||||||
"power_interface": None,
|
"power_interface": "ipmitool",
|
||||||
"raid_interface": None,
|
"raid_interface": "no-raid",
|
||||||
"storage_interface": None,
|
"storage_interface": "noop",
|
||||||
"vendor_interface": None,
|
"vendor_interface": "no-vendor",
|
||||||
"name": None,
|
"name": None,
|
||||||
"power_state": "power off",
|
"power_state": "power off",
|
||||||
"properties": {
|
"properties": {
|
||||||
@ -358,7 +359,7 @@ node maintenance notification::
|
|||||||
"clean_step": None,
|
"clean_step": None,
|
||||||
"console_enabled": False,
|
"console_enabled": False,
|
||||||
"created_at": "2016-01-26T20:41:03+00:00",
|
"created_at": "2016-01-26T20:41:03+00:00",
|
||||||
"driver": "fake",
|
"driver": "ipmi",
|
||||||
"extra": {},
|
"extra": {},
|
||||||
"inspection_finished_at": None,
|
"inspection_finished_at": None,
|
||||||
"inspection_started_at": None,
|
"inspection_started_at": None,
|
||||||
@ -367,16 +368,16 @@ node maintenance notification::
|
|||||||
"last_error": None,
|
"last_error": None,
|
||||||
"maintenance": True,
|
"maintenance": True,
|
||||||
"maintenance_reason": "hw upgrade",
|
"maintenance_reason": "hw upgrade",
|
||||||
"boot_interface": None,
|
"boot_interface": "pxe",
|
||||||
"console_interface": None,
|
"console_interface": "no-console",
|
||||||
"deploy_interface": None,
|
"deploy_interface": "iscsi",
|
||||||
"inspect_interface": None,
|
"inspect_interface": "no-inspect",
|
||||||
"management_interface": None,
|
"management_interface": "ipmitool",
|
||||||
"network_interface": "flat",
|
"network_interface": "flat",
|
||||||
"power_interface": None,
|
"power_interface": "ipmitool",
|
||||||
"raid_interface": None,
|
"raid_interface": "no-raid",
|
||||||
"storage_interface": None,
|
"storage_interface": "noop",
|
||||||
"vendor_interface": None,
|
"vendor_interface": "no-vendor",
|
||||||
"name": None,
|
"name": None,
|
||||||
"power_state": "power off",
|
"power_state": "power off",
|
||||||
"properties": {
|
"properties": {
|
||||||
@ -434,7 +435,7 @@ notification::
|
|||||||
"clean_step": None,
|
"clean_step": None,
|
||||||
"console_enabled": True,
|
"console_enabled": True,
|
||||||
"created_at": "2016-01-26T20:41:03+00:00",
|
"created_at": "2016-01-26T20:41:03+00:00",
|
||||||
"driver": "fake",
|
"driver": "ipmi",
|
||||||
"extra": {},
|
"extra": {},
|
||||||
"inspection_finished_at": None,
|
"inspection_finished_at": None,
|
||||||
"inspection_started_at": None,
|
"inspection_started_at": None,
|
||||||
@ -443,16 +444,16 @@ notification::
|
|||||||
"last_error": None,
|
"last_error": None,
|
||||||
"maintenance": False,
|
"maintenance": False,
|
||||||
"maintenance_reason": None,
|
"maintenance_reason": None,
|
||||||
"boot_interface": None,
|
"boot_interface": "pxe",
|
||||||
"console_interface": None,
|
"console_interface": "no-console",
|
||||||
"deploy_interface": None,
|
"deploy_interface": "iscsi",
|
||||||
"inspect_interface": None,
|
"inspect_interface": "no-inspect",
|
||||||
"management_interface": None,
|
"management_interface": "ipmitool",
|
||||||
"network_interface": "flat",
|
"network_interface": "flat",
|
||||||
"power_interface": None,
|
"power_interface": "ipmitool",
|
||||||
"raid_interface": None,
|
"raid_interface": "no-raid",
|
||||||
"storage_interface": None,
|
"storage_interface": "noop",
|
||||||
"vendor_interface": None,
|
"vendor_interface": "no-vendor",
|
||||||
"name": None,
|
"name": None,
|
||||||
"power_state": "power off",
|
"power_state": "power off",
|
||||||
"properties": {
|
"properties": {
|
||||||
@ -503,7 +504,7 @@ ironic-conductor is attempting to change the node::
|
|||||||
"clean_step": None,
|
"clean_step": None,
|
||||||
"console_enabled": False,
|
"console_enabled": False,
|
||||||
"created_at": "2016-01-26T20:41:03+00:00",
|
"created_at": "2016-01-26T20:41:03+00:00",
|
||||||
"driver": "fake",
|
"driver": "ipmi",
|
||||||
"extra": {},
|
"extra": {},
|
||||||
"inspection_finished_at": None,
|
"inspection_finished_at": None,
|
||||||
"inspection_started_at": None,
|
"inspection_started_at": None,
|
||||||
@ -511,16 +512,16 @@ ironic-conductor is attempting to change the node::
|
|||||||
"last_error": None,
|
"last_error": None,
|
||||||
"maintenance": False,
|
"maintenance": False,
|
||||||
"maintenance_reason": None,
|
"maintenance_reason": None,
|
||||||
"boot_interface": None,
|
"boot_interface": "pxe",
|
||||||
"console_interface": None,
|
"console_interface": "no-console",
|
||||||
"deploy_interface": None,
|
"deploy_interface": "iscsi",
|
||||||
"inspect_interface": None,
|
"inspect_interface": "no-inspect",
|
||||||
"management_interface": None,
|
"management_interface": "ipmitool",
|
||||||
"network_interface": "flat",
|
"network_interface": "flat",
|
||||||
"power_interface": None,
|
"power_interface": "ipmitool",
|
||||||
"raid_interface": None,
|
"raid_interface": "no-raid",
|
||||||
"storage_interface": None,
|
"storage_interface": "noop",
|
||||||
"vendor_interface": None,
|
"vendor_interface": "no-vendor",
|
||||||
"name": None,
|
"name": None,
|
||||||
"power_state": "power off",
|
"power_state": "power off",
|
||||||
"properties": {
|
"properties": {
|
||||||
@ -566,7 +567,7 @@ prior to the correction::
|
|||||||
"clean_step": None,
|
"clean_step": None,
|
||||||
"console_enabled": False,
|
"console_enabled": False,
|
||||||
"created_at": "2016-01-26T20:41:03+00:00",
|
"created_at": "2016-01-26T20:41:03+00:00",
|
||||||
"driver": "fake",
|
"driver": "ipmi",
|
||||||
"extra": {},
|
"extra": {},
|
||||||
"inspection_finished_at": None,
|
"inspection_finished_at": None,
|
||||||
"inspection_started_at": None,
|
"inspection_started_at": None,
|
||||||
@ -574,16 +575,16 @@ prior to the correction::
|
|||||||
"last_error": None,
|
"last_error": None,
|
||||||
"maintenance": False,
|
"maintenance": False,
|
||||||
"maintenance_reason": None,
|
"maintenance_reason": None,
|
||||||
"boot_interface": None,
|
"boot_interface": "pxe",
|
||||||
"console_interface": None,
|
"console_interface": "no-console",
|
||||||
"deploy_interface": None,
|
"deploy_interface": "iscsi",
|
||||||
"inspect_interface": None,
|
"inspect_interface": "no-inspect",
|
||||||
"management_interface": None,
|
"management_interface": "ipmitool",
|
||||||
"network_interface": "flat",
|
"network_interface": "flat",
|
||||||
"power_interface": None,
|
"power_interface": "ipmitool",
|
||||||
"raid_interface": None,
|
"raid_interface": "no-raid",
|
||||||
"storage_interface": None,
|
"storage_interface": "noop",
|
||||||
"vendor_interface": None,
|
"vendor_interface": "no-vendor",
|
||||||
"name": None,
|
"name": None,
|
||||||
"power_state": "power off",
|
"power_state": "power off",
|
||||||
"properties": {
|
"properties": {
|
||||||
@ -640,7 +641,7 @@ indicate a node's provision states before state change, "event" is the FSM
|
|||||||
"clean_step": None,
|
"clean_step": None,
|
||||||
"console_enabled": False,
|
"console_enabled": False,
|
||||||
"created_at": "2016-01-26T20:41:03+00:00",
|
"created_at": "2016-01-26T20:41:03+00:00",
|
||||||
"driver": "fake",
|
"driver": "ipmi",
|
||||||
"extra": {},
|
"extra": {},
|
||||||
"inspection_finished_at": None,
|
"inspection_finished_at": None,
|
||||||
"inspection_started_at": None,
|
"inspection_started_at": None,
|
||||||
@ -649,16 +650,16 @@ indicate a node's provision states before state change, "event" is the FSM
|
|||||||
"last_error": None,
|
"last_error": None,
|
||||||
"maintenance": False,
|
"maintenance": False,
|
||||||
"maintenance_reason": None,
|
"maintenance_reason": None,
|
||||||
"boot_interface": None,
|
"boot_interface": "pxe",
|
||||||
"console_interface": None,
|
"console_interface": "no-console",
|
||||||
"deploy_interface": None,
|
"deploy_interface": "iscsi",
|
||||||
"inspect_interface": None,
|
"inspect_interface": "no-inspect",
|
||||||
"management_interface": None,
|
"management_interface": "ipmitool",
|
||||||
"network_interface": "flat",
|
"network_interface": "flat",
|
||||||
"power_interface": None,
|
"power_interface": "ipmitool",
|
||||||
"raid_interface": None,
|
"raid_interface": "no-raid",
|
||||||
"storage_interface": None,
|
"storage_interface": "noop",
|
||||||
"vendor_interface": None,
|
"vendor_interface": "no-vendor",
|
||||||
"name": None,
|
"name": None,
|
||||||
"power_state": "power off",
|
"power_state": "power off",
|
||||||
"properties": {
|
"properties": {
|
||||||
|
@ -17,14 +17,14 @@ for their corresponding REST API requests.
|
|||||||
|
|
||||||
Prerequisites
|
Prerequisites
|
||||||
=============
|
=============
|
||||||
The bare metal node needs to use a driver that supports RAID
|
The bare metal node needs to use a hardware type that supports RAID
|
||||||
configuration. Drivers may implement RAID configuration either in-band or
|
configuration. RAID interfaces may implement RAID configuration either in-band
|
||||||
out-of-band.
|
or out-of-band.
|
||||||
|
|
||||||
In-band RAID configuration is done using the Ironic Python Agent
|
In-band RAID configuration is done using the Ironic Python Agent
|
||||||
ramdisk. For in-band RAID configuration using agent ramdisk, a hardware
|
ramdisk. For in-band RAID configuration using agent ramdisk, a hardware
|
||||||
manager which supports RAID should be bundled with the ramdisk.
|
manager which supports RAID should be bundled with the ramdisk.
|
||||||
The drivers supporting RAID configuration could be found using the CLI
|
Whether a node supports RAID configuration could be found using the CLI
|
||||||
command ``openstack baremetal node validate <node-uuid>``.
|
command ``openstack baremetal node validate <node-uuid>``.
|
||||||
|
|
||||||
Build agent ramdisk which supports RAID configuration
|
Build agent ramdisk which supports RAID configuration
|
||||||
@ -66,7 +66,8 @@ If the ``target_raid_config`` is an empty dictionary, it unsets the value of
|
|||||||
done on the node.
|
done on the node.
|
||||||
|
|
||||||
Each dictionary of logical disk contains the desired properties of logical
|
Each dictionary of logical disk contains the desired properties of logical
|
||||||
disk supported by the driver. These properties are discoverable by::
|
disk supported by the hardware type or classic driver. These properties are
|
||||||
|
discoverable by::
|
||||||
|
|
||||||
openstack baremetal --os-baremetal-api-version 1.15 driver raid property list <driver name>
|
openstack baremetal --os-baremetal-api-version 1.15 driver raid property list <driver name>
|
||||||
|
|
||||||
@ -103,7 +104,7 @@ The RAID properties can be split into 4 different types:
|
|||||||
- ``is_root_volume`` - Set to ``true`` if this is the root volume. At
|
- ``is_root_volume`` - Set to ``true`` if this is the root volume. At
|
||||||
most one logical disk can have this set to ``true``; the other
|
most one logical disk can have this set to ``true``; the other
|
||||||
logical disks must have this set to ``false``. The
|
logical disks must have this set to ``false``. The
|
||||||
``root device hint`` will be saved, if the driver is capable of
|
``root device hint`` will be saved, if the RAID interface is capable of
|
||||||
retrieving it. This is ``false`` by default.
|
retrieving it. This is ``false`` by default.
|
||||||
|
|
||||||
#. Backing physical disk hints. These hints are specified for each logical
|
#. Backing physical disk hints. These hints are specified for each logical
|
||||||
@ -133,9 +134,9 @@ The RAID properties can be split into 4 different types:
|
|||||||
on a wider range of attributes (eg. S.M.A.R.T. status, physical location).
|
on a wider range of attributes (eg. S.M.A.R.T. status, physical location).
|
||||||
The values for these properties are hardware dependent.
|
The values for these properties are hardware dependent.
|
||||||
|
|
||||||
- ``controller`` - The name of the controller as read by the driver.
|
- ``controller`` - The name of the controller as read by the RAID interface.
|
||||||
- ``physical_disks`` - A list of physical disks to use as read by the
|
- ``physical_disks`` - A list of physical disks to use as read by the
|
||||||
driver.
|
RAID interface.
|
||||||
|
|
||||||
.. note::
|
.. note::
|
||||||
If properties from both "Backing physical disk hints" or
|
If properties from both "Backing physical disk hints" or
|
||||||
@ -242,7 +243,8 @@ To get the current RAID configuration::
|
|||||||
Workflow
|
Workflow
|
||||||
========
|
========
|
||||||
|
|
||||||
* Operator configures the bare metal node with a driver that has a ``RAIDInterface``.
|
* Operator configures the bare metal node with a hardware type that has
|
||||||
|
a ``RAIDInterface`` other than ``no-raid`` (``None`` for classic drivers).
|
||||||
|
|
||||||
* For in-band RAID configuration, operator builds an agent ramdisk which
|
* For in-band RAID configuration, operator builds an agent ramdisk which
|
||||||
supports RAID configuration by bundling the hardware manager with the
|
supports RAID configuration by bundling the hardware manager with the
|
||||||
|
Loading…
Reference in New Issue
Block a user