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 # Explicitly set the client API version environment variable to
# 1.17, which introduces the adoption capability. # 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 \ openstack baremetal node create --name testnode \
-d agent_ipmitool \ --driver agent_ipmitool \
-i ipmi_address=<ip_address> \ --driver-info ipmi_address=<ip_address> \
-i ipmi_username=<username> \ --driver-info ipmi_username=<username> \
-i ipmi_password=<password> \ --driver-info ipmi_password=<password> \
-i deploy_kernel=<deploy_kernel_id_or_url> \ --driver-info deploy_kernel=<deploy_kernel_id_or_url> \
-i deploy_ramdisk=<deploy_ramdisk_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 \ openstack baremetal node set testnode \
instance_info/image_source="http://localhost:8080/blankimage" \ --instance-info image_source="http://localhost:8080/blankimage" \
instance_info/capabilities="{\"boot_option\": \"local\"}" --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:: .. NOTE::
In the above example, the image_source setting must reference a valid 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 used to match an instance in the Compute service. Doing so is not
required for the proper operation of the Bare Metal service. 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:: .. NOTE::
In Newton, coupled with API version 1.20, the concept of a 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 Any node that is in the ``adopt failed`` state can have the ``adopt`` verb
re-attempted. Example:: 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 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 the node back to ``manageable`` from ``adopt failed`` state by issuing the
``manage`` verb. Example:: ``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 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 the provision state to ``deleted``, can be used while the node is in
``adopt failed`` state. This will delete the node without cleaning ``adopt failed`` state. This will delete the node without cleaning
occurring to preserve the node's current state. Example:: 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 RAID without non-root volumes, and then all devices would be erased
(in that order). (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`` Manual cleaning is available via the ``openstack baremetal node clean``
command, starting with python-ironicclient 1.2. command, starting with Bare Metal API version 1.15.
The target/verb is 'clean' and the argument 'clean-steps' must be specified. The argument ``--clean-steps`` must be specified. Its value is one of:
Its value is one of:
- a JSON string - a JSON string
- path to a JSON file whose contents are passed to the API - path to a JSON file whose contents are passed to the API
- '-', to read from stdin. This allows piping in the clean steps. - '-', to read from stdin. This allows piping in the clean steps.
Using '-' to signify stdin is common in Unix utilities. Using '-' to signify stdin is common in Unix utilities.
Keep in mind that manual cleaning is only supported in API version 1.15 and The following examples assume that the Bare Metal API version was set via
higher. 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:: Examples of doing this with a JSON string::
ironic --ironic-api-version 1.15 node-set-provision-state <node> \ openstack baremetal node clean <node> \
clean --clean-steps '[{"interface": "deploy", "step": "erase_devices_metadata"}]' --clean-steps '[{"interface": "deploy", "step": "erase_devices_metadata"}]'
ironic --ironic-api-version 1.15 node-set-provision-state <node> \ openstack baremetal node clean <node> \
clean --clean-steps '[{"interface": "deploy", "step": "erase_devices"}]' --clean-steps '[{"interface": "deploy", "step": "erase_devices"}]'
Or with a file:: Or with a file::
ironic --ironic-api-version 1.15 node-set-provision-state <node> \ openstack baremetal node clean <node> \
clean --clean-steps my-clean-steps.txt --clean-steps my-clean-steps.txt
Or with stdin:: Or with stdin::
cat my-clean-steps.txt | ironic --ironic-api-version 1.15 <node> \ cat my-clean-steps.txt | openstack baremetal node clean <node> \
node-set-provision-state clean --clean-steps - --clean-steps -
Cleaning Network Cleaning Network
================ ================
@ -274,11 +276,14 @@ the number of iterations, use the following configuration option::
What cleaning step is running? What cleaning step is running?
------------------------------ ------------------------------
To check what cleaning step the node is performing or attempted to perform and 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 failed, run the following command; it will return the value in the node's
$node_ident`` and look in the `driver_internal_info` field. The `clean_steps` ``driver_internal_info`` field::
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 openstack baremetal node show $node_ident -f value -c driver_internal_info
before going into ``clean failed`` state.
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? 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 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 be scheduled by nova and you can safely attempt to fix the node. To move a node
from ``clean failed`` to ``manageable``: from ``clean failed`` to ``manageable``::
``ironic node-set-provision-state manage``.
openstack baremetal node manage $node_ident
You can now take actions on the node, such as replacing a bad disk drive. 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 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 # 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 # 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 The node will begin automated cleaning from the start, and move to
``available`` state when complete. ``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:: Enable the web console, for example::
ironic node-update <node-uuid> add driver_info/<terminal_port>=<customized_port> openstack baremetal node set <node-uuid> \
ironic node-set-console-mode <node-uuid> true --driver-info <terminal_port>=<customized_port>
openstack baremetal node console enable <node-uuid>
Check whether the console is enabled, for example:: 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:: Disable the web console, for example::
ironic node-set-console-mode <node-uuid> false openstack baremetal node console disable <node-uuid>
ironic node-update <node-uuid> remove driver_info/<terminal_port> openstack baremetal node unset <node-uuid> --driver-info <terminal_port>
The ``<terminal_port>`` is driver dependent. The actual name of this field can be The ``<terminal_port>`` is driver dependent. The actual name of this field can be
checked in driver properties, for example:: 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``. For ``*_ipmitool`` and ``*_ipminative`` drivers, this option is ``ipmi_terminal_port``.
Give a customized port number to ``<customized_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:: Get web console information for a node as follows::
ironic node-get-console <node-uuid> openstack baremetal node console show <node-uuid>
+-----------------+----------------------------------------------------------------------+ +-----------------+----------------------------------------------------------------------+
| Property | Value | | Property | Value |
+-----------------+----------------------------------------------------------------------+ +-----------------+----------------------------------------------------------------------+
@ -171,22 +172,22 @@ Serial consoles can be configured in the Bare Metal service as follows:
Enable the serial console, for example:: Enable the serial console, for example::
ironic node-update <node-uuid> add driver_info/ipmi_terminal_port=<port> openstack baremetal node set <node-uuid> --driver-info ipmi_terminal_port=<port>
ironic node-set-console-mode <node-uuid> true openstack baremetal node console enable <node-uuid>
Check whether the serial console is enabled, for example:: 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:: Disable the serial console, for example::
ironic node-set-console-mode <node-uuid> false openstack baremetal node console disable <node-uuid>
ironic node-update <node-uuid> remove driver_info/ipmi_terminal_port 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 is available from the Bare Metal service. Get
serial console information for a node from the Bare Metal service as follows:: 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 | | 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. 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. 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 For example, you could run a similar command like below to enroll the ProLiant
node:: 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 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 For example, you could run a similar command like below to enroll the ProLiant
node:: 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 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 For example, you could run a similar command like below to enroll the ProLiant
node:: 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 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:: 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 Nodes having ``boot_mode`` set to ``uefi`` may be requested by adding an
``extra_spec`` to the nova flavor:: ``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:: 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 Alternatively see `Hardware Inspection Support`_ to know how to
automatically populate the secure boot capability. 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``, #. 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 ``ironic driver-properties`` output of the proxy. Please refer to the ``openstack baremetal driver property list``
``agent_*`` driver you're using for descriptions of these properties. output of the ``agent_*`` driver you're using for descriptions of these
properties.
Advanced configuration 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 ``deploy_forces_oob_reboot`` parameter with the value of **True**. For
example, the below command sets this configuration in a specific node:: 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 It is highly recommend that you setup a username and password for
your BMC. your BMC.
The ``ironic node-create`` command can be used to enroll a node with The ``openstack baremetal node create`` command can be used to enroll a node
an IPMItool-based driver. For example:: with an IPMItool-based driver. For example::
ironic node-create -d ipmi -i ipmi_address=<address> \ openstack baremetal node create --driver ipmi \
-i ipmi_username=<username> -i ipmi_password=<password> --driver-info ipmi_address=<address> \
--driver-info ipmi_username=<username> \
--driver-info ipmi_password=<password>
Advanced configuration 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 required: *single* or *dual* to access the bare metal node. If the
parameter is not specified, the default value will be set to *no*. 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 bridging information to the Ironic node enrolled with the IPMItool
driver. For example: driver. For example:
* Single Bridging:: * Single Bridging::
ironic node-update add <UUID or name> driver_info/ipmi_local_address=<address> \ openstack baremetal node set <UUID or name> \
driver_info/ipmi_bridging=single driver_info/ipmi_target_channel=<channel> \ --driver-info ipmi_local_address=<address> \
driver_info/ipmi_target_address=<target address> --driver-info ipmi_bridging=single \
--driver-info ipmi_target_channel=<channel> \
--driver-info ipmi_target_address=<target address>
* Double Bridging:: * Double Bridging::
ironic node-update add <UUID or name> driver_info/ipmi_local_address=<address> \ openstack baremetal node set <UUID or name> \
driver_info/ipmi_bridging=dual driver_info/ipmi_transit_channel=<transit channel> \ --driver-info ipmi_local_address=<address> \
driver_info/ipmi_transit_address=<transit address> driver_info/ipmi_target_channel=<target channel> \ --driver-info ipmi_bridging=dual \
driver_info/ipmi_target_address=<target address> --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 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 - ``ipmi_protocol_version``: The version of the IPMI protocol; default
is *2.0*. Supported values are *1.5* or *2.0*. 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:: 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:: .. warning::
Version *1.5* of the IPMI protocol does not support encryption. 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:: 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:: To update the ``driver_info`` field of a newly enrolled OneView node, do::
$ ironic node-update $NODE_UUID add \ $ openstack baremetal node set $NODE_UUID --driver-info server_hardware_uri=$SH_URI
driver_info/server_hardware_uri=$SH_URI
To update the ``properties/capabilities`` namespace of a newly enrolled To update the ``properties/capabilities`` namespace of a newly enrolled
OneView node, do:: OneView node, do::
$ ironic node-update $NODE_UUID add \ $ openstack baremetal node set $NODE_UUID \
properties/capabilities=server_hardware_type_uri:$SHT_URI,enclosure_group_uri:$EG_URI,server_profile_template_uri=$SPT_URI --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 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 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:: 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 For more information on the enrollment process of an ironic node, see
:ref:`enrollment`. :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. 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 References
========== ==========

View File

@ -26,11 +26,11 @@ The node should be in MANAGEABLE state before inspection is initiated.
* Move node to manageable state:: * Move node to manageable state::
ironic node-set-provision-state <node_UUID> manage openstack baremetal node manage <node_UUID>
* Initiate inspection:: * Initiate inspection::
ironic node-set-provision-state <node_UUID> inspect openstack baremetal node inspect <node_UUID>
.. note:: .. note::
The above commands require the python-ironicclient_ to be version 0.5.0 or greater. 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. and is supported by python-ironicclient version 1.15.0 or higher.
The following examples assume you are using python-ironicclient version The following examples assume you are using python-ironicclient version
1.15.0 or higher. They show the usage of both ``ironic`` and ``openstack 1.15.0 or higher.
baremetal`` commands.
If you're going to use ``ironic`` command, set the following variable in Export the following variable::
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 OS_BAREMETAL_API_VERSION=<API version> export OS_BAREMETAL_API_VERSION=<API version>
@ -120,17 +113,9 @@ Configuring nodes
interface. Valid interfaces are listed in the interface. Valid interfaces are listed in the
``[DEFAULT]/enabled_network_interfaces`` configuration option in the ``[DEFAULT]/enabled_network_interfaces`` configuration option in the
ironic-conductor's configuration file. Set it to ``neutron`` to use 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:: openstack baremetal node create --network-interface neutron --driver ipmi
ironic node-create --network-interface neutron \
--driver agent-ipmitool
- ``openstack`` command::
openstack baremetal node create --network-interface neutron \
--driver agent-ipmitool
.. note:: .. note::
If the ``[DEFAULT]/default_network_interface`` configuration option is If the ``[DEFAULT]/default_network_interface`` configuration option is
@ -138,40 +123,21 @@ Configuring nodes
when creating the node. when creating the node.
#. To update an existing node's network interface to ``neutron``, use the #. To update an existing node's network interface to ``neutron``, use the
following commands: following commands::
- ``ironic`` command::
ironic node-update $NODE_UUID_OR_NAME add network_interface=neutron
- ``openstack`` command::
openstack baremetal node set $NODE_UUID_OR_NAME \ openstack baremetal node set $NODE_UUID_OR_NAME \
--network-interface neutron --network-interface neutron
#. Create a port as follows: #. 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::
openstack baremetal port create $HW_MAC_ADDRESS --node $NODE_UUID \ openstack baremetal port create $HW_MAC_ADDRESS --node $NODE_UUID \
--local-link-connection switch_id=$SWITCH_MAC_ADDRESS \ --local-link-connection switch_id=$SWITCH_MAC_ADDRESS \
--local-link-connection switch_info=$SWITCH_HOSTNAME \ --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 --physical-network physnet1
#. Check the port configuration: #. Check the port configuration::
- ``ironic`` command::
ironic port-show $PORT_UUID
- ``openstack`` command::
openstack baremetal port show $PORT_UUID 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 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 ironic The drivers supporting RAID configuration could be found using the CLI
CLI ``ironic 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
===================================================== =====================================================
@ -62,16 +62,16 @@ 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 using disk supported by the driver. These properties are discoverable by using
Ironic CLI or REST API:: OpenStackClient CLI or REST API::
Ironic CLI: OpenStackClient CLI:
ironic --ironic-api-version 1.15 driver-raid-logical-disk-properties <driver name> openstack baremetal --os-baremetal-api-version 1.15 driver raid property list <driver name>
Ironic REST API: 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 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. 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 If ``--os-baremetal-api-version`` is not used in the CLI, it will error out
following message:: with the following message::
No API version was specified and the requested operation was not No API version was specified and the requested operation was not
supported by the client's negotiated API version 1.9. Supported 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:: To get the current RAID configuration::
Ironic CLI: OpenStackClient CLI:
ironic --ironic-api-version 1.15 node-show <node-uuid-or-name> openstack baremetal --os-baremetal-api-version 1.15 node show <node-uuid-or-name>
REST API: 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 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 `Target RAID configuration`_. The target RAID configuration is set on
the Ironic node:: the Ironic node::
Ironic CLI: OpenStackClient CLI:
ironic --ironic-api-version 1.15 node-set-target-raid-config <node-uuid-or-name> <JSON file containing target RAID configuration> 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: 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 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: The CLI command can accept the input from standard input also:
ironic --ironic-api-version 1.15 node-set-target-raid-config <node-uuid-or-name> - 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 * Create a JSON file with the RAID clean steps for manual cleaning. Add other
clean steps as desired:: clean steps as desired::
@ -286,16 +288,17 @@ Workflow
* Bring the node to ``manageable`` state and do a ``clean`` action to start * Bring the node to ``manageable`` state and do a ``clean`` action to start
cleaning on the node:: cleaning on the node::
Ironic CLI: OpenStackClient 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> 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: 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 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 * After manual cleaning is complete, the current RAID configuration can be
viewed using:: viewed using::
Ironic CLI: OpenStackClient CLI:
ironic --ironic-api-version 1.15 node-show <node-uuid-or-name> openstack baremetal --os-baremetal-api-version 1.15 node show <node-uuid-or-name>
REST API: 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 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. maintenance mode and not already used by an existing instance.
Check with the following command:: 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 If this command does not show enough nodes, use generic ``openstack baremetal
node-list`` to check other nodes. For example, nodes in ``manageable`` state node list`` to check other nodes. For example, nodes in ``manageable`` state
should be made available:: 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 The Bare metal service automatically puts a node in maintenance mode if
there are issues with accessing its management interface. Check the power there are issues with accessing its management interface. Check the power
credentials (e.g. ``ipmi_address``, ``ipmi_username`` and ``ipmi_password``) credentials (e.g. ``ipmi_address``, ``ipmi_username`` and ``ipmi_password``)
and then move the node out of maintenance mode:: 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:: 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 Maintenance mode will be also set on a node if automated cleaning has
failed for it previously. 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``. values for the keys ``cpus``, ``cpu_arch``, ``memory_mb`` and ``local_gb``.
Example of valid properties:: Example of valid properties::
$ ironic node-show <IRONIC NODE> --fields properties $ openstack baremetal node show <IRONIC NODE> --fields properties
+------------+------------------------------------------------------------------------------------+ +------------+------------------------------------------------------------------------------------+
| Property | Value | | Property | Value |
+------------+------------------------------------------------------------------------------------+ +------------+------------------------------------------------------------------------------------+
@ -86,7 +86,7 @@ A few things should be checked in this case:
But in Ironic node:: But in Ironic node::
$ ironic node-show <IRONIC NODE> --fields properties $ openstack baremetal node show <IRONIC NODE> --fields properties
+------------+-----------------------------------------+ +------------+-----------------------------------------+
| Property | Value | | Property | Value |
+------------+-----------------------------------------+ +------------+-----------------------------------------+