Merge "[admin docs] ironic -> openstack baremetal CLI"

This commit is contained in:
Jenkins 2017-08-27 16:53:30 +00:00 committed by Gerrit Code Review
commit d6451b6dab
13 changed files with 191 additions and 173 deletions

View File

@ -119,25 +119,25 @@ from the ``manageable`` state to ``active`` state::
# Explicitly set the client API version environment variable to
# 1.17, which introduces the adoption capability.
export IRONIC_API_VERSION=1.17
export OS_BAREMETAL_API_VERSION=1.17
ironic node-create -n testnode \
-d agent_ipmitool \
-i ipmi_address=<ip_address> \
-i ipmi_username=<username> \
-i ipmi_password=<password> \
-i deploy_kernel=<deploy_kernel_id_or_url> \
-i deploy_ramdisk=<deploy_ramdisk_id_or_url>
openstack baremetal node create --name testnode \
--driver agent_ipmitool \
--driver-info ipmi_address=<ip_address> \
--driver-info ipmi_username=<username> \
--driver-info ipmi_password=<password> \
--driver-info deploy_kernel=<deploy_kernel_id_or_url> \
--driver-info deploy_ramdisk=<deploy_ramdisk_id_or_url>
ironic port-create --node <node_uuid> -a <node_mac_address>
openstack baremetal port create <node_mac_address> --node <node_uuid>
ironic node-update testnode add \
instance_info/image_source="http://localhost:8080/blankimage" \
instance_info/capabilities="{\"boot_option\": \"local\"}"
openstack baremetal node set testnode \
--instance-info image_source="http://localhost:8080/blankimage" \
--instance-info capabilities="{\"boot_option\": \"local\"}"
ironic node-set-provision-state testnode manage
openstack baremetal node manage testnode --wait
ironic node-set-provision-state testnode adopt
openstack baremetal node adopt testnode --wait
.. NOTE::
In the above example, the image_source setting must reference a valid
@ -160,7 +160,7 @@ from the ``manageable`` state to ``active`` state::
used to match an instance in the Compute service. Doing so is not
required for the proper operation of the Bare Metal service.
ironic node-update <node name or uuid> add instance_uuid=<uuid>
openstack baremetal node set <node name or uuid> --instance-uuid <uuid>
.. NOTE::
In Newton, coupled with API version 1.20, the concept of a
@ -180,18 +180,18 @@ upon what driver is selected for the node.
Any node that is in the ``adopt failed`` state can have the ``adopt`` verb
re-attempted. Example::
ironic node-set-provision-state <node name or uuid> adopt
openstack baremetal node adopt <node name or uuid>
If a user wishes to abort their attempt at adopting, they can then move
the node back to ``manageable`` from ``adopt failed`` state by issuing the
``manage`` verb. Example::
ironic node-set-provision-state <node name or uuid> manage
openstack baremetal node manage <node name or uuid>
If all else fails the hardware node can be removed from the Bare Metal
service. The ``node-delete`` command, which is **not** the same as setting
service. The ``node delete`` command, which is **not** the same as setting
the provision state to ``deleted``, can be used while the node is in
``adopt failed`` state. This will delete the node without cleaning
occurring to preserve the node's current state. Example::
ironic node-delete <node name or uuid>
openstack baremetal node delete <node name or uuid>

View File

@ -150,40 +150,42 @@ In the above example, the driver's RAID interface would configure hardware
RAID without non-root volumes, and then all devices would be erased
(in that order).
Starting manual cleaning via ``ironic`` CLI
-------------------------------------------
Starting manual cleaning via "openstack baremetal" CLI
------------------------------------------------------
Manual cleaning is supported in the ``ironic node-set-provision-state``
command, starting with python-ironicclient 1.2.
Manual cleaning is available via the ``openstack baremetal node clean``
command, starting with Bare Metal API version 1.15.
The target/verb is 'clean' and the argument 'clean-steps' must be specified.
Its value is one of:
The argument ``--clean-steps`` must be specified. Its value is one of:
- a JSON string
- path to a JSON file whose contents are passed to the API
- '-', to read from stdin. This allows piping in the clean steps.
Using '-' to signify stdin is common in Unix utilities.
Keep in mind that manual cleaning is only supported in API version 1.15 and
higher.
The following examples assume that the Bare Metal API version was set via
the ``OS_BAREMETAL_API_VERSION`` environment variable. (The alternative is to
add ``--os-baremetal-api-version 1.15`` to the command.)::
export OS_BAREMETAL_API_VERSION=1.15
Examples of doing this with a JSON string::
ironic --ironic-api-version 1.15 node-set-provision-state <node> \
clean --clean-steps '[{"interface": "deploy", "step": "erase_devices_metadata"}]'
openstack baremetal node clean <node> \
--clean-steps '[{"interface": "deploy", "step": "erase_devices_metadata"}]'
ironic --ironic-api-version 1.15 node-set-provision-state <node> \
clean --clean-steps '[{"interface": "deploy", "step": "erase_devices"}]'
openstack baremetal node clean <node> \
--clean-steps '[{"interface": "deploy", "step": "erase_devices"}]'
Or with a file::
ironic --ironic-api-version 1.15 node-set-provision-state <node> \
clean --clean-steps my-clean-steps.txt
openstack baremetal node clean <node> \
--clean-steps my-clean-steps.txt
Or with stdin::
cat my-clean-steps.txt | ironic --ironic-api-version 1.15 <node> \
node-set-provision-state clean --clean-steps -
cat my-clean-steps.txt | openstack baremetal node clean <node> \
--clean-steps -
Cleaning Network
================
@ -274,11 +276,14 @@ the number of iterations, use the following configuration option::
What cleaning step is running?
------------------------------
To check what cleaning step the node is performing or attempted to perform and
failed, either query the node endpoint for the node or run ``ironic node-show
$node_ident`` and look in the `driver_internal_info` field. The `clean_steps`
field will contain a list of all remaining steps with their priorities, and the
first one listed is the step currently in progress or that the node failed
before going into ``clean failed`` state.
failed, run the following command; it will return the value in the node's
``driver_internal_info`` field::
openstack baremetal node show $node_ident -f value -c driver_internal_info
The ``clean_steps`` field will contain a list of all remaining steps with their
priorities, and the first one listed is the step currently in progress or that
the node failed before going into ``clean failed`` state.
Should I disable automated cleaning?
------------------------------------
@ -309,8 +314,10 @@ information about the nature of the cleaning failure.
A ``clean failed`` node can be moved to ``manageable`` state, where it cannot
be scheduled by nova and you can safely attempt to fix the node. To move a node
from ``clean failed`` to ``manageable``:
``ironic node-set-provision-state manage``.
from ``clean failed`` to ``manageable``::
openstack baremetal node manage $node_ident
You can now take actions on the node, such as replacing a bad disk drive.
Strategies for determining why a cleaning step failed include checking the
@ -324,10 +331,10 @@ to allow it to be scheduled by nova.
::
# First, move it out of maintenance mode
ironic node-set-maintenance $node_ident false
openstack baremetal node maintenance unset $node_ident
# Now, make the node available for scheduling by nova
ironic node-set-provision-state $node_ident provide
openstack baremetal node provide $node_ident
The node will begin automated cleaning from the start, and move to
``available`` state when complete.

View File

@ -98,22 +98,23 @@ The web console can be configured in Bare Metal service in the following way:
Enable the web console, for example::
ironic node-update <node-uuid> add driver_info/<terminal_port>=<customized_port>
ironic node-set-console-mode <node-uuid> true
openstack baremetal node set <node-uuid> \
--driver-info <terminal_port>=<customized_port>
openstack baremetal node console enable <node-uuid>
Check whether the console is enabled, for example::
ironic node-validate <node-uuid>
openstack baremetal node validate <node-uuid>
Disable the web console, for example::
ironic node-set-console-mode <node-uuid> false
ironic node-update <node-uuid> remove driver_info/<terminal_port>
openstack baremetal node console disable <node-uuid>
openstack baremetal node unset <node-uuid> --driver-info <terminal_port>
The ``<terminal_port>`` is driver dependent. The actual name of this field can be
checked in driver properties, for example::
ironic driver-properties <driver>
openstack baremetal driver property list <driver>
For ``*_ipmitool`` and ``*_ipminative`` drivers, this option is ``ipmi_terminal_port``.
Give a customized port number to ``<customized_port>``,
@ -121,7 +122,7 @@ The web console can be configured in Bare Metal service in the following way:
Get web console information for a node as follows::
ironic node-get-console <node-uuid>
openstack baremetal node console show <node-uuid>
+-----------------+----------------------------------------------------------------------+
| Property | Value |
+-----------------+----------------------------------------------------------------------+
@ -171,22 +172,22 @@ Serial consoles can be configured in the Bare Metal service as follows:
Enable the serial console, for example::
ironic node-update <node-uuid> add driver_info/ipmi_terminal_port=<port>
ironic node-set-console-mode <node-uuid> true
openstack baremetal node set <node-uuid> --driver-info ipmi_terminal_port=<port>
openstack baremetal node console enable <node-uuid>
Check whether the serial console is enabled, for example::
ironic node-validate <node-uuid>
openstack baremetal node validate <node-uuid>
Disable the serial console, for example::
ironic node-set-console-mode <node-uuid> false
ironic node-update <node-uuid> remove driver_info/ipmi_terminal_port
openstack baremetal node console disable <node-uuid>
openstack baremetal node unset <node-uuid> --driver-info <ipmi_terminal_port>
Serial console information is available from the Bare Metal service. Get
serial console information for a node from the Bare Metal service as follows::
ironic node-get-console <node-uuid>
openstack baremetal node console show <node-uuid>
+-----------------+----------------------------------------------------------------------+
| Property | Value |
+-----------------+----------------------------------------------------------------------+

View File

@ -79,14 +79,24 @@ also required in ``driver_info``:
The following sequence of commands can be used to enroll a UCS Standalone node.
Create Node::
* Create Node::
ironic node-create -d <pxe_iscsi_cimc OR pxe_agent_cimc> -i cimc_address=<CIMC hostname OR ip-address> -i cimc_username=<cimc_username> -i cimc_password=<cimc_password> -i deploy_kernel=<glance_uuid_of_deploy_kernel> -i deploy_ramdisk=<glance_uuid_of_deploy_ramdisk> -p cpus=<number_of_cpus> -p memory_mb=<memory_size_in_MB> -p local_gb=<local_disk_size_in_GB> -p cpu_arch=<cpu_arch>
openstack baremetal node create --driver <pxe_iscsi_cimc OR pxe_agent_cimc> \
--driver-info cimc_address=<CIMC hostname OR ip-address> \
--driver-info cimc_username=<cimc_username> \
--driver-info cimc_password=<cimc_password> \
--driver-info deploy_kernel=<glance_uuid_of_deploy_kernel> \
--driver-info deploy_ramdisk=<glance_uuid_of_deploy_ramdisk> \
--property cpus=<number_of_cpus> \
--property memory_mb=<memory_size_in_MB> \
--property local_gb=<local_disk_size_in_GB> \
--property cpu_arch=<cpu_arch>
The above command 'ironic node-create' will return UUID of the node, which is the value of $NODE in the following command.
The above command 'openstack baremetal node create' will return UUID of the
node, which is the value of $NODE in the following command.
Associate port with the node created::
* Associate port with the node created::
ironic port-create -n $NODE -a <MAC_address_of_Ucs_server's_NIC>
openstack baremetal port create --node $NODE <MAC_address_of_Ucs_server's_NIC>
For more information about enrolling nodes see :ref:`enrollment` in the install guide.

View File

@ -468,7 +468,11 @@ Nodes configured for iLO driver should have the ``driver`` property set to
For example, you could run a similar command like below to enroll the ProLiant
node::
ironic node-create -d iscsi_ilo -i ilo_address=<ilo-ip-address> -i ilo_username=<ilo-username> -i ilo_password=<ilo-password> -i ilo_deploy_iso=<glance-uuid-of-deploy-iso>
openstack baremetal node create --driver iscsi_ilo \
--driver-info ilo_address=<ilo-ip-address> \
--driver-info ilo_username=<ilo-username> \
--driver-info ilo_password=<ilo-password> \
--driver-info ilo_deploy_iso=<glance-uuid-of-deploy-iso>
Boot modes
~~~~~~~~~~
@ -628,7 +632,11 @@ Nodes configured for iLO driver should have the ``driver`` property set to
For example, you could run a similar command like below to enroll the ProLiant
node::
ironic node-create -d agent_ilo -i ilo_address=<ilo-ip-address> -i ilo_username=<ilo-username> -i ilo_password=<ilo-password> -i ilo_deploy_iso=<glance-uuid-of-deploy-iso>
openstack baremetal node create --driver agent_ilo \
--driver-info ilo_address=<ilo-ip-address> \
--driver-info ilo_username=<ilo-username> \
--driver-info ilo_password=<ilo-password> \
--driver-info ilo_deploy_iso=<glance-uuid-of-deploy-iso>
Boot modes
~~~~~~~~~~
@ -768,7 +776,12 @@ Nodes configured for iLO driver should have the ``driver`` property set to
For example, you could run a similar command like below to enroll the ProLiant
node::
ironic node-create -d pxe_ilo -i ilo_address=<ilo-ip-address> -i ilo_username=<ilo-username> -i ilo_password=<ilo-password> -i deploy_kernel=<glance-uuid-of-pxe-deploy-kernel> -i deploy_ramdisk=<glance-uuid-of-deploy-ramdisk>
openstack baremetal node create --driver pxe_ilo \
--driver-info ilo_address=<ilo-ip-address> \
--driver-info ilo_username=<ilo-username> \
--driver-info ilo_password=<ilo-password> \
--driver-info deploy_kernel=<glance-uuid-of-pxe-deploy-kernel> \
--driver-info deploy_ramdisk=<glance-uuid-of-deploy-ramdisk>
Boot modes
~~~~~~~~~~
@ -831,7 +844,7 @@ detection and setting of boot mode (Legacy BIOS or UEFI).
To configure a node in ``uefi`` mode, then set ``capabilities`` as below::
ironic node-update <node-uuid> add properties/capabilities='boot_mode:uefi'
openstack baremetal node set <node-uuid> --property capabilities='boot_mode:uefi'
Nodes having ``boot_mode`` set to ``uefi`` may be requested by adding an
``extra_spec`` to the nova flavor::
@ -878,7 +891,7 @@ The UEFI secure boot can be configured in ironic by adding
To enable ``secure_boot`` on a node add it to ``capabilities`` as below::
ironic node-update <node-uuid> add properties/capabilities='secure_boot:true'
openstack baremetal node set <node-uuid> --property capabilities='secure_boot:true'
Alternatively see `Hardware Inspection Support`_ to know how to
automatically populate the secure boot capability.

View File

@ -102,8 +102,9 @@ Steps to enable proxies
#. 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
proxy. Please refer to ``ironic driver-properties`` output of the
``agent_*`` driver you're using for descriptions of these properties.
proxy. Please refer to the ``openstack baremetal driver property list``
output of the ``agent_*`` driver you're using for descriptions of these
properties.
Advanced configuration
======================
@ -123,4 +124,4 @@ that, you have to update the node's ``driver_info`` field and set the
``deploy_forces_oob_reboot`` parameter with the value of **True**. For
example, the below command sets this configuration in a specific node::
ironic node-update <UUID or name> add driver_info/deploy_forces_oob_reboot=True
openstack baremetal node set <UUID or name> --driver-info deploy_forces_oob_reboot=True

View File

@ -84,11 +84,13 @@ good practice to have them set:
It is highly recommend that you setup a username and password for
your BMC.
The ``ironic node-create`` command can be used to enroll a node with
an IPMItool-based driver. For example::
The ``openstack baremetal node create`` command can be used to enroll a node
with an IPMItool-based driver. For example::
ironic node-create -d ipmi -i ipmi_address=<address> \
-i ipmi_username=<username> -i ipmi_password=<password>
openstack baremetal node create --driver ipmi \
--driver-info ipmi_address=<address> \
--driver-info ipmi_username=<username> \
--driver-info ipmi_password=<password>
Advanced configuration
======================
@ -133,22 +135,27 @@ The parameter ``ipmi_bridging`` should specify the type of bridging
required: *single* or *dual* to access the bare metal node. If the
parameter is not specified, the default value will be set to *no*.
The ``ironic node-update`` command can be used to set the required
The ``openstack baremetal node set`` command can be used to set the required
bridging information to the Ironic node enrolled with the IPMItool
driver. For example:
* Single Bridging::
ironic node-update add <UUID or name> driver_info/ipmi_local_address=<address> \
driver_info/ipmi_bridging=single driver_info/ipmi_target_channel=<channel> \
driver_info/ipmi_target_address=<target address>
openstack baremetal node set <UUID or name> \
--driver-info ipmi_local_address=<address> \
--driver-info ipmi_bridging=single \
--driver-info ipmi_target_channel=<channel> \
--driver-info ipmi_target_address=<target address>
* Double Bridging::
ironic node-update add <UUID or name> driver_info/ipmi_local_address=<address> \
driver_info/ipmi_bridging=dual driver_info/ipmi_transit_channel=<transit channel> \
driver_info/ipmi_transit_address=<transit address> driver_info/ipmi_target_channel=<target channel> \
driver_info/ipmi_target_address=<target address>
openstack baremetal node set <UUID or name> \
--driver-info ipmi_local_address=<address> \
--driver-info ipmi_bridging=dual \
--driver-info ipmi_transit_channel=<transit channel> \
--driver-info ipmi_transit_address=<transit address> \
--driver-info ipmi_target_channel=<target channel> \
--driver-info ipmi_target_address=<target address>
Changing the version of the IPMI protocol
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
@ -162,10 +169,10 @@ the following option needs to be set to the node's ``driver_info`` field:
- ``ipmi_protocol_version``: The version of the IPMI protocol; default
is *2.0*. Supported values are *1.5* or *2.0*.
The ``ironic node-update`` command can be used to set the desired
The ``openstack baremetal node set`` command can be used to set the desired
protocol version::
ironic node-update add <UUID or name> driver_info/ipmi_protocol_version=<version>
openstack baremetal node set <UUID or name> --driver-info ipmi_protocol_version=<version>
.. warning::
Version *1.5* of the IPMI protocol does not support encryption.

View File

@ -239,18 +239,17 @@ etc. In this case, to be enrolled, the node must have the following parameters:
To enroll a node with any of the OneView drivers, do::
$ ironic node-create -d $DRIVER_NAME
$ openstack baremetal node create --driver $DRIVER_NAME
To update the ``driver_info`` field of a newly enrolled OneView node, do::
$ ironic node-update $NODE_UUID add \
driver_info/server_hardware_uri=$SH_URI
$ openstack baremetal node set $NODE_UUID --driver-info server_hardware_uri=$SH_URI
To update the ``properties/capabilities`` namespace of a newly enrolled
OneView node, do::
$ ironic node-update $NODE_UUID add \
properties/capabilities=server_hardware_type_uri:$SHT_URI,enclosure_group_uri:$EG_URI,server_profile_template_uri=$SPT_URI
$ openstack baremetal node set $NODE_UUID \
--property capabilities=server_hardware_type_uri:$SHT_URI,enclosure_group_uri:$EG_URI,server_profile_template_uri=$SPT_URI
In order to deploy, ironic will create and apply, at boot time, a ``Server
Profile`` based on the ``Server Profile Template`` specified on the node to the
@ -275,7 +274,7 @@ Interface** of the given ``Server Hardware``.
To tell ironic which NIC should be connected to the provisioning network, do::
$ ironic port-create -n $NODE_UUID -a $MAC_ADDRESS
$ openstack baremetal port create --node $NODE_UUID $MAC_ADDRESS
For more information on the enrollment process of an ironic node, see
:ref:`enrollment`.

View File

@ -73,15 +73,26 @@ Nodes configured for UCS driver should have the ``driver`` property set to
The following sequence of commands can be used to enroll a UCS node.
Create Node::
* Create Node::
ironic node-create -d <pxe_ucs/agent_ucs> -i ucs_address=<UCS Manager hostname/ip-address> -i ucs_username=<ucsm_username> -i ucs_password=<ucsm_password> -i ucs_service_profile=<service_profile_dn_being_enrolled> -i deploy_kernel=<glance_uuid_of_deploy_kernel> -i deploy_ramdisk=<glance_uuid_of_deploy_ramdisk> -p cpus=<number_of_cpus> -p memory_mb=<memory_size_in_MB> -p local_gb=<local_disk_size_in_GB> -p cpu_arch=<cpu_arch>
openstack baremetal node create --driver <pxe_ucs/agent_ucs> \
--driver-info ucs_address=<UCS Manager hostname/ip-address> \
--driver-info ucs_username=<ucsm_username> \
--driver-info ucs_password=<ucsm_password> \
--driver-info ucs_service_profile=<service_profile_dn_being_enrolled> \
--driver-info deploy_kernel=<glance_uuid_of_deploy_kernel> \
--driver-info deploy_ramdisk=<glance_uuid_of_deploy_ramdisk> \
--property cpus=<number_of_cpus> \
--property memory_mb=<memory_size_in_MB> \
--property local_gb=<local_disk_size_in_GB> \
--property cpu_arch=<cpu_arch>
The above command 'ironic node-create' will return UUID of the node, which is the value of $NODE in the following command.
The above command 'openstack baremetal node create' will return UUID of the
node, which is the value of $NODE in the following command.
Associate port with the node created::
* Associate port with the node created::
ironic port-create -n $NODE -a <MAC_address_of_Ucs_server's_NIC>
openstack baremetal port create --node $NODE <MAC_address_of_Ucs_server's_NIC>
References
==========

View File

@ -26,11 +26,11 @@ The node should be in MANAGEABLE state before inspection is initiated.
* Move node to manageable state::
ironic node-set-provision-state <node_UUID> manage
openstack baremetal node manage <node_UUID>
* Initiate inspection::
ironic node-set-provision-state <node_UUID> inspect
openstack baremetal node inspect <node_UUID>
.. note::
The above commands require the python-ironicclient_ to be version 0.5.0 or greater.

View File

@ -103,16 +103,9 @@ Configuring nodes
and is supported by python-ironicclient version 1.15.0 or higher.
The following examples assume you are using python-ironicclient version
1.15.0 or higher. They show the usage of both ``ironic`` and ``openstack
baremetal`` commands.
1.15.0 or higher.
If you're going to use ``ironic`` command, set the following variable in
your shell environment::
export IRONIC_API_VERSION=<API version>
If you're using ironic client plugin for openstack client via
``openstack baremetal`` commands, export the following variable::
Export the following variable::
export OS_BAREMETAL_API_VERSION=<API version>
@ -120,17 +113,9 @@ Configuring nodes
interface. Valid interfaces are listed in the
``[DEFAULT]/enabled_network_interfaces`` configuration option in the
ironic-conductor's configuration file. Set it to ``neutron`` to use the
Networking service's ML2 driver:
Networking service's ML2 driver::
- ``ironic`` command::
ironic node-create --network-interface neutron \
--driver agent-ipmitool
- ``openstack`` command::
openstack baremetal node create --network-interface neutron \
--driver agent-ipmitool
openstack baremetal node create --network-interface neutron --driver ipmi
.. note::
If the ``[DEFAULT]/default_network_interface`` configuration option is
@ -138,40 +123,21 @@ Configuring nodes
when creating the node.
#. To update an existing node's network interface to ``neutron``, use the
following commands:
- ``ironic`` command::
ironic node-update $NODE_UUID_OR_NAME add network_interface=neutron
- ``openstack`` command::
following commands::
openstack baremetal node set $NODE_UUID_OR_NAME \
--network-interface neutron
#. Create a port as follows:
- ``ironic`` command::
ironic port-create -a $HW_MAC_ADDRESS -n $NODE_UUID \
-l switch_id=$SWITCH_MAC_ADDRESS -l switch_info=$SWITCH_HOSTNAME \
-l port_id=$SWITCH_PORT --pxe-enabled true --physical-network physnet1
- ``openstack`` command::
#. Create a port as follows::
openstack baremetal port create $HW_MAC_ADDRESS --node $NODE_UUID \
--local-link-connection switch_id=$SWITCH_MAC_ADDRESS \
--local-link-connection switch_info=$SWITCH_HOSTNAME \
--local-link-connection port_id=$SWITCH_PORT --pxe-enabled true \
--local-link-connection port_id=$SWITCH_PORT \
--pxe-enabled true \
--physical-network physnet1
#. Check the port configuration:
- ``ironic`` command::
ironic port-show $PORT_UUID
- ``openstack`` command::
#. Check the port configuration::
openstack baremetal port show $PORT_UUID

View File

@ -20,8 +20,8 @@ out-of-band.
In-band RAID configuration is done using the Ironic Python Agent
ramdisk. For in-band RAID configuration using agent ramdisk, a hardware
manager which supports RAID should be bundled with the ramdisk.
The drivers supporting RAID configuration could be found using the ironic
CLI ``ironic node-validate <node-uuid>``.
The drivers supporting RAID configuration could be found using the CLI
command ``openstack baremetal node validate <node-uuid>``.
Build agent ramdisk which supports RAID configuration
=====================================================
@ -62,16 +62,16 @@ done on the node.
Each dictionary of logical disk contains the desired properties of logical
disk supported by the driver. These properties are discoverable by using
Ironic CLI or REST API::
OpenStackClient CLI or REST API::
Ironic CLI:
ironic --ironic-api-version 1.15 driver-raid-logical-disk-properties <driver name>
OpenStackClient CLI:
openstack baremetal --os-baremetal-api-version 1.15 driver raid property list <driver name>
Ironic REST API:
curl -X GET -H "Content-Type: application/json" -H "X-Auth-Token: $AUTH_TOKEN" -H "X-OpenStack-Ironic-API-Version: 1.15" http://<ironic-api-url>/v1/drivers/<driver name>/raid/logical_disk_properties
The RAID feature is available in ironic API version 1.15 and above.
If ``--ironic-api-version`` is not used in the CLI, it will error out with
following message::
If ``--os-baremetal-api-version`` is not used in the CLI, it will error out
with the following message::
No API version was specified and the requested operation was not
supported by the client's negotiated API version 1.9. Supported
@ -236,8 +236,8 @@ physical disk found on the bare metal node.
To get the current RAID configuration::
Ironic CLI:
ironic --ironic-api-version 1.15 node-show <node-uuid-or-name>
OpenStackClient CLI:
openstack baremetal --os-baremetal-api-version 1.15 node show <node-uuid-or-name>
REST API:
curl -X GET -H "Content-Type: application/json" -H "X-Auth-Token: $AUTH_TOKEN" -H "X-OpenStack-Ironic-API-Version: 1.15" http://<ironic-api-url>/v1/nodes/<node-uuid-or-name>/states
@ -256,13 +256,15 @@ Workflow
`Target RAID configuration`_. The target RAID configuration is set on
the Ironic node::
Ironic CLI:
ironic --ironic-api-version 1.15 node-set-target-raid-config <node-uuid-or-name> <JSON file containing target RAID configuration>
OpenStackClient CLI:
openstack baremetal --os-baremetal-api-version 1.15 node set <node-uuid-or-name> \
--target-raid-config <JSON file containing target RAID configuration>
REST API:
curl -X PUT -H "Content-Type: application/json" -H "X-Auth-Token: $AUTH_TOKEN" -H "X-OpenStack-Ironic-API-Version: 1.15" -d '<JSON data target RAID configuration>' http://<ironic-api-url>/v1/nodes/<node-uuid-or-name>/states/raid
The Ironic CLI can accept the input from standard input also:
ironic --ironic-api-version 1.15 node-set-target-raid-config <node-uuid-or-name> -
The CLI command can accept the input from standard input also:
openstack baremetal --os-baremetal-api-version 1.15 node set <node-uuid-or-name> \
--target-raid-config -
* Create a JSON file with the RAID clean steps for manual cleaning. Add other
clean steps as desired::
@ -286,16 +288,17 @@ Workflow
* Bring the node to ``manageable`` state and do a ``clean`` action to start
cleaning on the node::
Ironic CLI:
ironic --ironic-api-version 1.15 node-set-provision-state <node-uuid-or-name> clean --clean-steps <JSON file containing clean steps created above>
OpenStackClient CLI:
openstack baremetal --os-baremetal-api-version 1.15 node clean <node-uuid-or-name> \
--clean-steps <JSON file containing clean steps created above>
REST API:
curl -X PUT -H "Content-Type: application/json" -H "X-Auth-Token: $AUTH_TOKEN" -H "X-OpenStack-Ironic-API-Version: 1.15" -d '{'target': 'clean', 'clean_steps': <JSON description for clean steps as mentioned above>' http://<ironic-api-url>/v1/nodes/<node-uuid-or-name>/states/provision
* After manual cleaning is complete, the current RAID configuration can be
viewed using::
Ironic CLI:
ironic --ironic-api-version 1.15 node-show <node-uuid-or-name>
OpenStackClient CLI:
openstack baremetal --os-baremetal-api-version 1.15 node show <node-uuid-or-name>
REST API:
curl -X GET -H "Content-Type: application/json" -H "X-Auth-Token: $AUTH_TOKEN" -H "X-OpenStack-Ironic-API-Version: 1.15" http://<ironic-api-url>/v1/nodes/<node-uuid-or-name>/states

View File

@ -24,25 +24,25 @@ A few things should be checked in this case:
maintenance mode and not already used by an existing instance.
Check with the following command::
ironic node-list --provision-state available --maintenance false --associated false
openstack baremetal node list --provision-state available --no-maintenance --unassociated
If this command does not show enough nodes, use generic ``ironic
node-list`` to check other nodes. For example, nodes in ``manageable`` state
If this command does not show enough nodes, use generic ``openstack baremetal
node list`` to check other nodes. For example, nodes in ``manageable`` state
should be made available::
ironic node-set-provision-state <IRONIC NODE> provide
openstack baremetal node provide <IRONIC NODE>
The Bare metal service automatically puts a node in maintenance mode if
there are issues with accessing its management interface. Check the power
credentials (e.g. ``ipmi_address``, ``ipmi_username`` and ``ipmi_password``)
and then move the node out of maintenance mode::
ironic node-set-maintenance <IRONIC NODE> off
openstack baremetal node maintenance unset <IRONIC NODE>
The ``node-validate`` command can be used to verify that all required fields
The ``node validate`` command can be used to verify that all required fields
are present. The following command should not return anything::
ironic node-validate baremetal-0 | grep -E '(power|management)\W*False'
openstack baremetal node validate <IRONIC NODE> | grep -E '(power|management)\W*False'
Maintenance mode will be also set on a node if automated cleaning has
failed for it previously.
@ -53,7 +53,7 @@ A few things should be checked in this case:
values for the keys ``cpus``, ``cpu_arch``, ``memory_mb`` and ``local_gb``.
Example of valid properties::
$ ironic node-show <IRONIC NODE> --fields properties
$ openstack baremetal node show <IRONIC NODE> --fields properties
+------------+------------------------------------------------------------------------------------+
| Property | Value |
+------------+------------------------------------------------------------------------------------+
@ -86,7 +86,7 @@ A few things should be checked in this case:
But in Ironic node::
$ ironic node-show <IRONIC NODE> --fields properties
$ openstack baremetal node show <IRONIC NODE> --fields properties
+------------+-----------------------------------------+
| Property | Value |
+------------+-----------------------------------------+