第 8 章 部署 overcloud 前置备裸机节点

重要

该功能在此发行版本中作为技术预览提供,因此不享有红帽的全面支持。它只应用于测试,不应部署在生产环境中。有关技术预览功能的更多信息,请参阅覆盖范围详细信息

overcloud 部署过程包含两个主要操作:

  • 置备节点
  • 部署 overcloud

如果您将这些操作划分为不同的过程,您可以降低这个过程带来的风险,并更有效地识别故障点:

  1. 置备裸机节点。

    1. 以 yaml 格式创建节点定义文件。
    2. 运行 provisioning 命令,包括节点定义文件。
  2. 部署 overcloud。

    1. 运行部署命令,包括置备命令生成的 heat 环境文件。

置备过程会置备节点并生成包含各种节点规格的 heat 环境文件,包括节点数、预先节点放置、自定义镜像和自定义 NIC。当您部署 overcloud 时,请将此文件包括在部署命令中。

重要

您无法将预置备节点与 director 置备的节点合并。

8.1. 为 overcloud 注册节点

director 需要一个节点定义模板,用于指定节点的硬件和电源管理详情。您可以使用 JSON 格式、node .json 或 YAML 格式创建此模板 nodes.yaml

流程

  1. 创建名为 nodes.jsonnodes.yaml 的模板,它将列出您的节点。使用以下 JSON 和 YAML 模板示例了解如何创建节点定义模板的结构:

    示例 JSON 模板

    {
      "nodes": [{
        "name": "node01",
        "ports": [{
          "address": "aa:aa:aa:aa:aa:aa",
          "physical_network": "ctlplane",
          "local_link_connection": {
            "switch_id": "52:54:00:00:00:00",
            "port_id": "p0"
          }
        }],
        "cpu": "4",
        "memory": "6144",
        "disk": "40",
        "arch": "x86_64",
        "pm_type": "ipmi",
        "pm_user": "admin",
        "pm_password": "p@55w0rd!",
        "pm_addr": "192.168.24.205"
      },
      {
        "name": "node02",
        "ports": [{
          "address": "bb:bb:bb:bb:bb:bb",
          "physical_network": "ctlplane",
          "local_link_connection": {
            "switch_id": "52:54:00:00:00:00",
            "port_id": "p0"
          }
        }],
        "cpu": "4",
        "memory": "6144",
        "disk": "40",
        "arch": "x86_64",
        "pm_type": "ipmi",
        "pm_user": "admin",
        "pm_password": "p@55w0rd!",
        "pm_addr": "192.168.24.206"
      }]
    }

    示例 YAML 模板

    nodes:
      - name: "node01"
        ports:
          - address: "aa:aa:aa:aa:aa:aa"
            physical_network: ctlplane
            local_link_connection:
              switch_id: 52:54:00:00:00:00
              port_id: p0
        cpu: 4
        memory: 6144
        disk: 40
        arch: "x86_64"
        pm_type: "ipmi"
        pm_user: "admin"
        pm_password: "p@55w0rd!"
        pm_addr: "192.168.24.205"
      - name: "node02"
        ports:
          - address: "bb:bb:bb:bb:bb:bb"
            physical_network: ctlplane
            local_link_connection:
              switch_id: 52:54:00:00:00:00
              port_id: p0
        cpu: 4
        memory: 6144
        disk: 40
        arch: "x86_64"
        pm_type: "ipmi"
        pm_user: "admin"
        pm_password: "p@55w0rd!"
        pm_addr: "192.168.24.206"

    此模板包含以下属性:

    name
    节点的逻辑名称。
    ports

    访问特定 IPMI 设备的端口。您可以定义以下可选端口属性:

    • 地址 :节点上网络接口的 MAC 地址。对于每个系统的 Provisioning NIC,只使用 MAC 地址。
    • physical_network :连接到 Provisioning NIC 的物理网络。
    • local_link_connection :如果您使用 IPv6 置备,且 LLDP 在内省过程中没有正确填充本地链路连接,您必须在 local_link_connection 参数中包含带有 switch_idport_id 字段的虚拟数据。有关如何包含虚拟数据的更多信息,请参阅使用 director 内省来收集裸机节点硬件信息
    cpu
    节点上的 CPU 数量。(可选)
    memory
    以 MB 为单位的内存大小。(可选)
    disk
    以 GB 为单位的硬盘的大小。(可选)
    arch

    系统架构。 (可选)

    重要

    在构建多架构云时,arch 键是必需的,用于区分使用 x86_64ppc64le 架构的节点。

    pm_type

    要使用的电源管理驱动程序。此示例使用 IPMI 驱动程序 (ipmi)。

    注意

    IPMI 是首选的受支持电源管理驱动程序。有关支持的电源管理类型及其选项的更多信息,请参阅 电源管理驱动程序。如果这些电源管理驱动程序不能正常工作,请将 IPMI 用于电源管理。

    pm_user; pm_password
    IPMI 的用户名和密码。
    pm_addr
    IPMI 设备的 IP 地址。
  2. 创建模板后,运行以下命令验证格式和语法:

    $ source ~/stackrc
    (undercloud)$ openstack overcloud node import --validate-only ~/nodes.json
    重要

    您还必须为多架构节点包含 --http-boot /var/lib/ironic/tftpboot/ 选项。

  3. 将文件保存到 stack 用户的主目录(/home/stack/nodes.json)。
  4. 将模板导入到 director,将每个节点从模板注册到 director:

    (undercloud)$ openstack overcloud node import ~/nodes.json
    注意

    如果使用 UEFI 引导模式,还必须在每个节点上设置引导模式。如果您在不设置 UEFI 引导模式的情况下内省节点,节点以旧模式引导。如需更多信息,请参阅将引导模式设置为 UEFI 引导模式

  5. 等待节点完成注册和配置。完成后,确认 director 已成功注册节点:

    (undercloud)$ openstack baremetal node list