使用 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 配置