Before working with the Bare Metal service, you’ll need to create a
connection to your OpenStack cloud by following the Connect user
guide. This will provide you with the conn
variable used in the examples
below.
Table of Contents
The primary resource of the Bare Metal service is the node.
A node is a bare metal machine.
def list_nodes(conn):
print("List Nodes:")
for node in conn.baremetal.nodes():
print(node)
Full example: baremetal resource list
Provisioning actions are the main way to manipulate the nodes. See Bare Metal service states documentation for details.
Managing a node in the enroll
provision state validates the management
(IPMI, Redfish, etc) credentials and moves the node to the manageable
state. Managing a node in the available
state moves it to the
manageable
state. In this state additional actions, such as configuring
RAID or inspecting, are available.
Inspecting a node detects its properties by either talking to its BMC or by booting a special ramdisk.
def manage_and_inspect_node(conn, uuid):
node = conn.baremetal.find_node(uuid)
print('Before:', node.provision_state)
conn.baremetal.set_node_provision_state(node, 'manage')
conn.baremetal.wait_for_nodes_provision_state([node], 'manageable')
conn.baremetal.set_node_provision_state(node, 'inspect')
res = conn.baremetal.wait_for_nodes_provision_state([node], 'manageable')
print('After:', res[0].provision_state)
Full example: baremetal provisioning
Providing a node in the manageable
provision state makes it available
for deployment.
def provide_node(conn, uuid):
node = conn.baremetal.find_node(uuid)
print('Before:', node.provision_state)
conn.baremetal.set_node_provision_state(node, 'provide')
res = conn.baremetal.wait_for_nodes_provision_state([node], 'available')
print('After:', res[0].provision_state)
Full example: baremetal provisioning
Except where otherwise noted, this document is licensed under Creative Commons Attribution 3.0 License. See all OpenStack Legal Documents.