使用 OpenStack Baremetal¶
在使用 Bare Metal 服务之前,您需要通过遵循 连接 用户指南来创建与您的 OpenStack 云的连接。这将为您提供在以下示例中使用的 conn 变量。
Bare Metal 服务的主要资源是 节点。
以下是一些使用示例。有关所有可用方法的参考,请参阅 Baremetal API。
CRUD 操作¶
列出节点¶
节点 是一台裸机。
def list_nodes(conn):
print("List Nodes:")
for node in conn.baremetal.nodes():
print(node)
完整示例:baremetal 资源列表
配置操作¶
配置操作是操作节点的主要方式。有关详细信息,请参阅 Bare Metal 服务状态文档。
管理和检查节点¶
管理 处于 enroll 配置状态的节点会验证管理(IPMI、Redfish 等)凭据并将节点移动到 manageable 状态。管理 处于 available 状态的节点会将其移动到 manageable 状态。在此状态下,可以执行其他操作,例如配置 RAID 或检查。
检查 节点通过与 BMC 通信或启动特殊的 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)
完整示例:baremetal 配置
提供节点¶
提供 处于 manageable 配置状态的节点使其可用于部署。
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)
完整示例:baremetal 配置