Home > Communication Service Provider Solutions > Telecom Multicloud Foundation > Ironic > Guides > Technical Guide—Managing Dell EMC Hardware with the OpenStack Ironic (Ussuri) iDRAC Driver > Enroll nodes
After the initial configuration of Ironic has been completed, nodes can be enrolled into Ironic.
When creating a node in Ironic, you must specify the driver that Ironic should use to manage the node.
Ironic defines a set of interfaces that every hardware type can implement. Some of these interfaces are required, while others are optional. The iDRAC driver supports the following interfaces:
Table 6 describes for each interface:
Interface | WS-Man | Redfish | Protocol independent |
Inspect | X | X | X |
Management | X | X |
|
Power | X | X |
|
RAID | X |
|
|
Vendor | X |
|
|
Boot |
| X | X |
Deploy |
|
| X |
Network |
|
| X |
Rescue |
|
| X |
Storage |
|
| X |
Some interfaces support multiple protocol-independent choices. For the protocol-independent choices that are available for each interface, see the OpenStack Ironic iDRAC driver documentation.
By default, the iDRAC hardware type uses the WS-Man version of these interfaces to manage nodes when it is supported. The Boot interface defaults to iPXE, which is protocol-independent, but virtual media boot using Redfish can be used as well.
Virtual media boot works by:
The transfer of the image uses HTTPS, which avoids using the potentially unreliable TFTP protocol.
Note: The WS-Man management and power interfaces must be used as a pair. If you use WS-Man for one of these interfaces, then you must use WS-Man for the other.
Alternatively, Redfish can be used for the interfaces that are indicated above. To use Redfish for an interface:
openstack baremetal node list
+--------------------------------------+------+---------------+-------------+--------------------+-------------+
| UUID | Name | Instance UUID | Power State | Provisioning State | Maintenance |
+--------------------------------------+------+---------------+-------------+--------------------+-------------+
| ad5bca80-2633-41e0-8ac5-b96f4f343f34 | None | None | None | enroll | False |
+--------------------------------------+------+---------------+-------------+--------------------+-------------+
openstack baremetal node set <uuid> --inspect-interface \
idrac-redfish
openstack baremetal node set <uuid> \
--power-interface idrac-redfish \
--management-interface idrac-redfish
Note: The WS-Man interface name can be explicitly specified as idrac-wsman.
For Ironic to be able to access the iDRAC, you must set the credentials for the iDRAC on the node in Ironic:
The following parameters are used to specify the WS-Man credentials on the node in Ironic:
The following parameters are used to specify the Redfish credentials on the node in Ironic:
Note: For other Redfish protocol parameters, see https://docs.openstack.org/ironic/ussuri/admin/drivers/redfish.html.
Credentials can be associated with the node in Ironic either when creating the node or by modifying the node after it has been created:
--driver-info drac_username=<username> \
--driver-info drac_password=<password> \
--driver-info drac_address=<ip>
--driver-info redfish_username=<username> \
--driver-info redfish_password=<password> \
--driver-info redfish_address=https://<ip> \
--driver-info \ redfish_system_id=/redfish/v1/Systems/System.Embedded.1
Alternatively, the credentials for Ironic to use can be set or modified after the node has been created.
openstack baremetal node set <uuid> \
--driver-info <parameter_name>=<parameter_value>
Note: You can set multiple parameters at once by specifying --driver-info, and a parameter name and value, multiple times.
To put it all together, create a node in Ironic as per the following examples:
The following example creates a node in Ironic that is managed by the iDRAC hardware type and uses WS-Man for all interfaces:
openstack baremetal node create \
--driver idrac \
--driver-info drac_username=root \
--driver-info drac_password=1234 \
--driver-info drac_address=192.168.110.100
The following example creates a node in Ironic that is managed by the iDRAC hardware type and uses Redfish for all interfaces:
openstack baremetal node create \
--driver idrac \
--driver-info redfish_username=root \
--driver-info redfish_password=1234 \
--driver-info redfish_address=https://192.168.110.100 \
--driver-info \ redfish_system_id=/redfish/v1/Systems/System.Embedded.1 \
--inspect-interface idrac-redfish \
--management-interface idrac-redfish \
--power-interface idrac-redfish \
--vendor-interface no-vendor \
--raid-interface no-raid
Note: Redfish support in the iDRAC driver does not currently include BIOS or RAID management.
The following example creates a node in Ironic that is managed by the iDRAC hardware type. It uses Redfish for the power, management, and inspect interfaces, and WS-Man for the remaining interfaces:
openstack baremetal node create \
--driver idrac \
--driver-info redfish_username=root \
--driver-info redfish_password=1234 \
--driver-info redfish_address=https://192.168.110.100 \
--driver-info \ redfish_system_id=/redfish/v1/Systems/System.Embedded.1
--driver-info drac_username=root \
--driver-info drac_password=1234 \
--driver-info drac_address=192.168.110.100 \
--inspect-interface idrac-redfish \
--management-interface idrac-redfish \
--power-interface idrac-redfish
Once the node has been set up in Ironic, interactions between Ironic and the node can be seen by searching in /var/log/ironic/ironic-conductor.log for either:
To prepare the nodes for deployment you must perform the following procedures:
Before deploying the nodes using Ironic, it is recommended that you put the iDRACs into a known good state. You do this task by running the manual known_good_state cleaning step against the node. This cleaning step currently resets the iDRAC and clears the Lifecycle Controller job queue on the targeted node. It may be extended in the future to perform other best practice operations to put the server into the best possible known good state.
Note: These cleaning steps are only available on nodes whose management interface is set to idrac-wsman. Support for these cleaning steps in the idrac-redfish management interface will be added in a future release.
You can use this procedure to return a node to an initial clean state when returning a node to the unallocated bare metal pool.
To run the known_good_state cleaning step:
openstack baremetal node clean --clean-steps ‘[{“interface”: \ “management”, \ “step”: “known_good_state”}]’ <uuid>
openstack baremetal node list
Note: The cleaning step may take a few minutes to complete.
If you do not want to reset the iDRAC and clear the job queue in the same operation, you can run them separately.
To reset the iDRAC:
To clear the Lifecycle Controller job queue:
You can inspect nodes using either:
To inspect a node using in-band inspection:
openstack baremetal node set <uuid> --inspect-interface inspector
openstack baremetal node inspect <uuid>
Because out-of-band inspection in Ironic does not require a server reboot, it runs quicker than in-band introspection.
openstack baremetal node set <uuid> --inspect-interface \
idrac-wsman
openstack baremetal node inspect <uuid>
openstack baremetal node set <uuid> --inspect-interface \
idrac-redfish
openstack baremetal node inspect <uuid>
Each interface can PXE-enable the node’s port in Ironic:
The idrac-wsman inspect interface automatically PXE enables the correct port.
If the idrac-redfish inspect interface is used, then you must PXE-enable the node port in Ironic prior to deployment. The MAC address of the port must be set to PXE boot on the server.
First, determine the MAC address of the port on the server that is configured to PXE boot:
Note: The CurrentMACAddress field displays the MAC address of the PXE port.
openstack baremetal port list --node <node_uuid> | grep -i \ <MAC_address_found_above>
openstack baremetal port set --pxe-enabled <port_uuid>
Note: Automatically enabling PXE booting on the port in the idrac-redfish inspect interface will be added in a future release.