7.2. 置备裸机 overcloud 节点


要配置 Red Hat OpenStack Platform (RHOSP)环境,您必须执行以下任务:

  1. 为 overcloud 注册裸机节点。
  2. 为 director 提供裸机节点硬件清单。

    注意

    由于网络引导装载程序的限制,RHOSP 不支持使用安全引导机制进行内省。如果 overcloud 节点部署了 overcloud,则可能会在部署 overcloud 后启用安全引导(如果 overcloud 节点为 overcloud-hardened-uefi-full.qcow2) 提供的 overcloud 镜像。

  3. 在节点定义文件中配置裸机节点的数量、属性和网络布局。
  4. 为每个裸机节点分配一个与节点匹配的资源类,并将其指定角色分配。

您还可以执行额外的可选任务,如匹配配置集来指定 overcloud 节点。

7.2.1. 为 overcloud 注册节点

director 需要节点定义模板来指定节点的硬件和电源管理详情。您可以使用 JSON 格式、nodes.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"
      }]
    }
    Copy to Clipboard Toggle word wrap

    示例 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"
    Copy to Clipboard Toggle word wrap

    此模板包含以下属性:

    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
    系统架构。 (可选)
    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
    Copy to Clipboard Toggle word wrap
  3. 将模板文件保存到 stack 用户的主目录(/home/stack/nodes.json)。
  4. 将模板导入到 director,将每个节点从模板注册到 director:

    (undercloud)$ openstack overcloud node import ~/nodes.json
    Copy to Clipboard Toggle word wrap
  5. 等待节点完成注册和配置。完成后,确认 director 已成功注册节点:

    (undercloud)$ openstack baremetal node list
    Copy to Clipboard Toggle word wrap

7.2.2. 创建裸机节点硬件的清单

director 需要 Red Hat OpenStack Platform (RHOSP)部署中节点的硬件清单,用于配置集标记、基准测试和手动根磁盘分配。

您可以使用以下方法之一向 director 提供硬件清单:

  • 自动 :您可以使用 director 的内省过程,从每个节点收集硬件信息。这个过程在每个节点上引导内省代理。内省代理从节点收集硬件数据并将数据送回 director。director 将硬件数据存储在 OpenStack 内部数据库中。
  • 手动:您可以为每个裸机手动配置基本硬件清单。此清单存储在裸机置备服务(ironic)中,用于管理和部署裸机。

    注意

    由于网络引导装载程序的限制,RHOSP 不支持使用安全引导机制进行内省。如果 overcloud 节点部署了 overcloud,则可能会在部署 overcloud 后启用安全引导(如果 overcloud 节点为 overcloud-hardened-uefi-full.qcow2) 提供的 overcloud 镜像。

与设置裸机置备服务端口的手动方法相比,director 自动内省过程具有以下优点:

  • 内省记录在硬件信息中的所有连接端口,包括用于在 nodes.yaml 中尚未配置用于 PXE 引导的端口。
  • 如果属性可以使用 LLDP 发现,则内省会为每个端口设置 local_link_connection 属性。使用手动方法时,您必须在注册节点时为每个端口配置 local_link_connection
  • 在部署 spine-and-leaf 或 DCN 架构时,内省为裸机置备服务端口设置 physical_network 属性。

在将物理机注册为裸机节点后,您可以使用 director 内省自动添加其硬件详情并为每个以太网 MAC 地址创建端口。

提示

作为自动内省的替代选择,您可以手动为 director 提供裸机节点的硬件信息。如需更多信息,请参阅 手动配置裸机节点硬件信息

注意

director 内省不支持安全引导。

先决条件

  • 您已为 overcloud 注册了裸机节点。

流程

  1. stack 用户身份登录 undercloud 主机。
  2. 查找 stackrc undercloud 凭证文件:

    $ source ~/stackrc
    Copy to Clipboard Toggle word wrap
  3. 运行 pre-introspection 验证组来检查内省要求:

    (undercloud)$ validation run --group pre-introspection \
     --inventory <inventory_file>
    Copy to Clipboard Toggle word wrap
    • <inventory_file > 替换为 Ansible 清单文件的名称和位置,如 ~/tripleo-deploy/undercloud/tripleo-ansible-inventory.yaml

      注意

      当您运行验证时,输出中的 Reasons 列仅限于 79 个字符。要查看验证结果已满,请查看验证日志文件。

  4. 查看验证报告的结果。
  5. 可选:查看特定验证的详细输出:

    (undercloud)$ validation history get --full <UUID>
    Copy to Clipboard Toggle word wrap
    • &lt;UUID> 替换为您要查看的报告中特定验证的 UUID。

      重要

      FAILED 验证不会阻止您部署或运行 Red Hat OpenStack Platform。但是,FAILED 验证可能会显示生产环境中潜在的问题。

  6. 检查每个节点的硬件属性。您可以检查所有节点或特定节点的硬件属性:

    • 检查所有节点的硬件属性:

      (undercloud)$ openstack overcloud node introspect --all-manageable --provide
      Copy to Clipboard Toggle word wrap
      • 使用 --all-manageable 选项仅内省处于受管理状态的节点。在此示例中,所有节点都处于受管理状态。
      • 使用 --provide 选项在内省后将所有节点重置为 available 状态。
    • 检查特定节点的硬件属性:

      (undercloud)$ openstack overcloud node introspect --provide <node1> [node2] [noden]
      Copy to Clipboard Toggle word wrap
      • 使用 --provide 选项,在内省后将所有指定的节点重置为 available 状态。
      • <node1>, [node2], 及所有节点(直到 [noden])替换为您要内省的每个节点的 UUID。
  7. 在一个单独的终端窗口中监控内省进度日志:

    (undercloud)$ sudo tail -f /var/log/containers/ironic-inspector/ironic-inspector.log
    Copy to Clipboard Toggle word wrap
    重要

    确保内省进程已运行完。内省通常需要 15 分钟用于裸机节点。但是,不正确的内省网络可能会导致其需要更长的时间,这可能会导致内省失败。

  8. 可选:如果您为通过 IPv6 的裸机置备配置了 undercloud,那么您还需要检查 LLDP 是否已为 Bare Metal Provisioning 服务(ironic)端口设置 local_link_connection

    $ openstack baremetal port list --long -c UUID -c "Node UUID" -c "Local Link Connection"
    Copy to Clipboard Toggle word wrap
    • 如果裸机节点上的端口的 Local Link Connection 字段为空,则必须使用虚拟数据手动填充 local_link_connection 值。以下示例将假的交换机 ID 设置为 52:54:00:00:00:00,并将虚拟端口 ID 设置为 p0

      $ openstack baremetal port set <port_uuid> \
      --local-link-connection switch_id=52:54:00:00:00:00 \
      --local-link-connection port_id=p0
      Copy to Clipboard Toggle word wrap
    • 验证 “Local Link Connection” 字段是否包含虚拟数据:

      $ openstack baremetal port list --long -c UUID -c "Node UUID" -c "Local Link Connection"
      Copy to Clipboard Toggle word wrap

内省完成后,所有节点都会变为 available 状态。

7.2.2.2. 手动配置裸机节点硬件信息

将物理机注册为裸机节点后,您可以手动添加其硬件详情,并为每个以太网 MAC 地址创建裸机端口。在部署 overcloud 之前,您必须至少创建一个裸机端口。

提示

作为手动内省的替代方法,您可以使用自动 director 内省流程来收集裸机节点的硬件信息。如需更多信息,请参阅使用 director 内省来收集裸机节点硬件信息

先决条件

流程

  1. stack 用户身份登录 undercloud 主机。
  2. 查找 stackrc undercloud 凭证文件:

    $ source ~/stackrc
    Copy to Clipboard Toggle word wrap
  3. 指定部署内核并为节点驱动程序部署 ramdisk:

    (undercloud)$ openstack baremetal node set <node> \
      --driver-info deploy_kernel=<kernel_file> \
      --driver-info deploy_ramdisk=<initramfs_file>
    Copy to Clipboard Toggle word wrap
    • <node> 替换为裸机节点的 ID。
    • <kernel_file > 替换为 .kernel 镜像的路径,例如 file:///var/lib/ironic/httpboot/agent.kernel
    • <initramfs_file > 替换为 .initramfs 镜像的路径,例如 file:///var/lib/ironic/httpboot/agent.ramdisk
  4. 更新节点属性以匹配节点上的硬件规格:

    (undercloud)$ openstack baremetal node set <node> \
      --property cpus=<cpu> \
      --property memory_mb=<ram> \
      --property local_gb=<disk> \
      --property cpu_arch=<arch>
    Copy to Clipboard Toggle word wrap
    • <node> 替换为裸机节点的 ID。
    • <cpu > 替换为 CPU 数量。
    • 将 & lt;ram& gt; 替换为 RAM (以 MB 为单位)。
    • <disk> 替换为磁盘大小(以 GB 为单位)。
    • <arch > 替换为构架类型。
  5. 可选:为每个节点指定 IPMI 密码套件:

    (undercloud)$ openstack baremetal node set <node> \
     --driver-info ipmi_cipher_suite=<version>
    Copy to Clipboard Toggle word wrap
    • <node> 替换为裸机节点的 ID。
    • <version > 替换为节点上要使用的密码套件版本。设置为以下有效值之一:

      • 3 - 节点使用带有 SHA1 密码套件的 AES-128。
      • 17 - 节点使用带有 SHA256 密码套件的 AES-128。
  6. 可选:如果您有多个磁盘,请设置 root 设备提示,以通知部署 ramdisk 用于部署的磁盘:

    (undercloud)$ openstack baremetal node set <node> \
      --property root_device='{"<property>": "<value>"}'
    Copy to Clipboard Toggle word wrap
    • <node> 替换为裸机节点的 ID。
    • <property > 和 <value > 替换为您要用于部署的磁盘的详情,如 root_device='{"size": "128"}'

      RHOSP 支持以下属性:

      • model(字符串):设备识别码。
      • vendor(字符串):设备厂商。
      • serial(字符串):磁盘序列号。
      • hctl(字符串):SCSI 的 Host:Channel:Target:Lun。
      • size(整数):设备的大小(以 GB 为单位)。
      • wwn(字符串):唯一的存储 ID。
      • wwn_with_extension(字符串):唯一存储 ID 附加厂商扩展名。
      • wwn_vendor_extension(字符串):唯一厂商存储标识符。
      • rotational(布尔值):旋转磁盘设备为 true (HDD),否则为 false (SSD)。
      • name (字符串):设备名称,例如: /dev/sdb1 仅对具有持久名称的设备使用此属性。

        注意

        如果您指定多个属性,该设备必须与所有这些属性匹配。

  7. 通过在 provisioning 网络中创建带有 NIC 的 MAC 地址的端口来告知节点网卡的裸机置备服务:

    (undercloud)$ openstack baremetal port create --node <node_uuid> <mac_address>
    Copy to Clipboard Toggle word wrap
    • <node_uuid> 替换为裸机节点的唯一 ID。
    • <mac_address > 替换为用于 PXE 引导的 NIC 的 MAC 地址。
  8. 验证节点的配置:

    (undercloud)$ openstack baremetal node validate <node>
    -----------------------------------------------------------------
    | Interface  | Result | Reason                                    |
    -----------------------------------------------------------------
    | bios       | True   |                                           |
    | boot       | True   |                                           |
    | console    | True   |                                           |
    | deploy     | False  | Node 229f0c3d-354a-4dab-9a88-ebd318249ad6 |
    |            |        | failed to validate deploy image info.     |
    |            |        | Some parameters were missing. Missing are:|
    |            |        | [instance_info.image_source]              |
    | inspect    | True   |                                           |
    | management | True   |                                           |
    | network    | True   |                                           |
    | power      | True   |                                           |
    | raid       | True   |                                           |
    | rescue     | True   |                                           |
    | storage    | True   |                                           |
    -----------------------------------------------------------------
    Copy to Clipboard Toggle word wrap

    验证输出结果 Result 表示以下内容:

    • false :接口验证失败。如果提供的原因缺少 instance_info.image_source 参数,这可能是因为在置备过程中填充,因此此时还没有设置它。如果您使用整个磁盘镜像,则可能需要设置 image_source 来传递验证。
    • true :接口已通过验证。
    • None: 接口不支持您的驱动。

7.2.3. 为 overcloud 置备裸机节点

要置备裸机节点,您可以定义您要以 YAML 格式的节点定义文件部署的裸机节点的数量和属性,并为这些节点分配 overcloud 角色。您还定义节点的网络布局。

置备过程会从节点定义文件创建一个 heat 环境文件。此 heat 环境文件包含您在节点定义文件中配置的节点规格,包括节点数、预测节点放置、自定义镜像和自定义 NIC。当您部署 overcloud 时,请将此文件包括在部署命令中。置备过程还会为每个节点定义的所有网络置备端口资源,或者在节点定义文件中角色。

先决条件

流程

  1. 查找 stackrc undercloud 凭据文件:

    $ source ~/stackrc
    Copy to Clipboard Toggle word wrap
  2. 创建 overcloud-baremetal-deploy.yaml 节点定义文件,并为您要置备的每个角色定义节点数。例如,要置备三个 Controller 节点和三个 Compute 节点,请在 overcloud-baremetal-deploy.yaml 文件中添加以下配置:

    - name: Controller
      count: 3
    - name: Compute
      count: 3
    Copy to Clipboard Toggle word wrap
  3. 可选:配置预测节点放置。例如,使用以下配置在节点 node00node01node02 上置备三个 Controller 节点,以及 node04node05node06 上的三个 Compute 节点:

    - name: Controller
      count: 3
      instances:
      - hostname: overcloud-controller-0
        name: node00
      - hostname: overcloud-controller-1
        name: node01
      - hostname: overcloud-controller-2
        name: node02
    - name: Compute
      count: 3
      instances:
      - hostname: overcloud-novacompute-0
        name: node04
      - hostname: overcloud-novacompute-1
        name: node05
      - hostname: overcloud-novacompute-2
        name: node06
    Copy to Clipboard Toggle word wrap
  4. 可选: 默认情况下,置备过程使用 overcloud-hardened-uefi-full.qcow2 镜像。您可以通过指定镜像的本地或远程 URL 来更改特定节点上使用的镜像,或用于角色的所有节点的镜像。以下示例将镜像改为本地 QCOW2 镜像:

    特定节点

    - name: Controller
      count: 3
      instances:
      - hostname: overcloud-controller-0
        name: node00
        image:
          href: file:///var/lib/ironic/images/overcloud-custom.qcow2
      - hostname: overcloud-controller-1
        name: node01
        image:
          href: file:///var/lib/ironic/images/overcloud-full-custom.qcow2
      - hostname: overcloud-controller-2
        name: node02
        image:
          href: file:///var/lib/ironic/images/overcloud-full-custom.qcow2
    Copy to Clipboard Toggle word wrap

    角色的所有节点

    - name: Controller
      count: 3
      defaults:
        image:
          href: file:///var/lib/ironic/images/overcloud-custom.qcow2
      instances:
      - hostname: overcloud-controller-0
        name: node00
      - hostname: overcloud-controller-1
        name: node01
      - hostname: overcloud-controller-2
        name: node02
    Copy to Clipboard Toggle word wrap

  5. 为角色的所有节点定义网络布局,或为特定节点定义网络布局:

    特定节点

    以下示例为特定 Controller 节点置备网络,并为内部 API 网络的节点分配可预测的 IP:

    - name: Controller
      count: 3
      defaults:
        network_config:
          template: /home/stack/templates/nic-config/myController.j2
          default_route_network:
          - external
      instances:
      - hostname: overcloud-controller-0
        name: node00
        networks:
        - network: ctlplane
          vif: true
        - network: external
          subnet: external_subnet
        - network: internal_api
          subnet: internal_api_subnet01
          fixed_ip: 172.21.11.100
        - network: storage
          subnet: storage_subnet01
        - network: storage_mgmt
          subnet: storage_mgmt_subnet01
        - network: tenant
          subnet: tenant_subnet01
    Copy to Clipboard Toggle word wrap
    重要

    从 Red Hat OpenStack Platform 17.1 开始,不再使用 ips-from-pool.yaml 文件为节点分配可预测的 IP。您必须使用裸机定义文件中的 fixed_ip 属性来指定网络的 IP 地址。如需更多信息,请参阅 裸机节点置备属性

角色的所有节点

以下示例为 Controller 和 Compute 角色置备网络:

+

- name: Controller
  count: 3
  defaults:
    networks:
    - network: ctlplane
      vif: true
    - network: external
      subnet: external_subnet
    - network: internal_api
      subnet: internal_api_subnet01
    - network: storage
      subnet: storage_subnet01
    - network: storage_mgmt
      subnet: storage_mgmt_subnet01
    - network: tenant
      subnet: tenant_subnet01
    network_config:
      template: /home/stack/templates/nic-config/myController.j2 
1

      default_route_network:
      - external
- name: Compute
  count: 3
  defaults:
    networks:
    - network: ctlplane
      vif: true
    - network: internal_api
      subnet: internal_api_subnet02
    - network: tenant
      subnet: tenant_subnet02
    - network: storage
      subnet: storage_subnet02
    network_config:
      template: /home/stack/templates/nic-config/myCompute.j2
Copy to Clipboard Toggle word wrap

+ <1> 您可以使用位于 /usr/share/ansible/roles/tripleo_network_config/templates 中的示例 NIC 模板在本地环境文件目录中创建自己的 NIC 模板。

  1. 可选:如果默认磁盘分区的大小不满足您的要求,请配置磁盘分区大小。例如: /var/log 分区的默认分区大小为 10 GB。考虑您的日志存储和保留要求,以确定 10 GB 是否满足您的要求。如果您需要为日志存储增加分配的磁盘大小,请在节点定义文件中添加以下配置来覆盖默认值:

    - name: Compute
      count: 3
      defaults:
        ...
      ansible_playbooks:
        - playbook: /usr/share/ansible/tripleo-playbooks/cli-overcloud-node-growvols.yaml
          extra_vars:
            role_growvols_args:
              default:
                /=8GB
                /tmp=1GB
                /var/log=<log_size>GB
                /var/log/audit=2GB
                /home=1GB
                /var=100%
    Copy to Clipboard Toggle word wrap
    • <log_size > 替换为要分配给日志文件的磁盘大小。
  2. 如果您使用 Object Storage 服务(swift)和整个磁盘 overcloud 镜像,overcloud-hardened-uefi-full,您需要根据磁盘大小以及 /var/srv 的存储要求来配置 /srv 分区的大小。如需更多信息,请参阅为对象存储服务配置整个磁盘分区
  3. 可选:使用自定义资源类或配置集功能为特定的角色指定 overcloud 节点。如需更多信息,请参阅通过匹配资源类并为角色指定 overcloud 节点通过匹配配置集为角色设计 overcloud 节点
  4. 定义您要分配给节点的任何其他属性。有关您可以在节点定义文件中配置节点属性的属性的更多信息,请参阅 裸机节点置备属性。有关节点定义文件的示例,请参阅 节点定义文件 示例
  5. 置备 overcloud 节点:

    (undercloud)$ openstack overcloud node provision \
     [--templates <templates_directory> \]
     --stack <stack> \
     --network-config \
     --output <deployment_file> \
     /home/stack/templates/<node_definition_file>
    Copy to Clipboard Toggle word wrap
    • 可选:包含 --templates 选项以使用您自己的模板,而不是位于 /usr/share/openstack-tripleo-heat-templates 中的默认模板。将 <templates_directory> 替换为包含模板的目录的路径。
    • & lt;stack> 替换为置备裸机节点的堆栈名称。如果未指定,则默认为 overcloud
    • 包含 --network-config 可选参数,为 cli-overcloud-node-network-config.yaml Ansible playbook 提供网络定义。cli-overcloud-node-network-config.yaml playbook 使用 os-net-config 工具在部署的节点上应用网络配置。如果不使用 --network-config 来提供网络定义,则必须在 network-environment.yaml 文件中配置 {{role.name}}NetworkConfigTemplate 参数,否则会使用默认网络定义。
    • <deployment_file> 替换为用于部署命令生成的 heat 环境文件的名称,如 /home/stack/templates/overcloud-baremetal-deployed.yaml
    • <node_definition_file > 替换为节点定义文件的名称,如 overcloud-baremetal-deploy.yaml
  6. 在一个单独的终端中监控置备进度:

    (undercloud)$ watch openstack baremetal node list
    Copy to Clipboard Toggle word wrap
  7. 使用 metalsmith 工具获取节点的统一视图,包括分配和端口:

    (undercloud)$ metalsmith list
    Copy to Clipboard Toggle word wrap
  8. 验证节点与主机名的关联:

    (undercloud)$ openstack baremetal allocation list
    Copy to Clipboard Toggle word wrap

7.2.4. 裸机节点置备属性

使用下表了解配置节点属性的可用属性,以及使用 openstack baremetal node provision 命令置备裸机节点时要使用的值。

  • 角色属性:使用角色属性来定义各个角色。
  • 每个角色的默认和实例属性: 使用 default 或 instance 属性指定从可用节点池中分配节点的选择条件,并在裸机节点上设置属性和网络配置属性。

有关创建 裸机定义文件的详情,请参考为 overcloud 置备裸机节点

Expand
表 7.1. 角色属性
属性

name

(必需)角色名称。

数�

要为这个角色置备的节点数量。默认值为 1

默认值

instances条目属性的默认值字典。instances条目属性覆盖您在 defaults 参数中指定的任何默认值。

实例

用于为特定节点指定属性的值的字典。有关 instances 参数中支持的属性的更多信息,请参阅 默认值 和实例属性。定义的节点数量不能大于 count 参数的值。

hostname_format

覆盖这个角色的默认主机名格式。默认生成的主机名来自 overcloud 堆栈名称、角色和递增索引,都小写。例如,Controller 角色的默认格式为 %stackname%-controller-%index%。只有 Compute 角色不会遵循角色名称规则。Compute 默认格式为 %stackname%-novacompute-%index%

ansible_playbooks

Ansible playbook 和 Ansible 变量的值字典。在节点网络配置之前,playbook 会根据节点调配后针对角色实例运行。有关指定 Ansible playbook 的更多信息,请参阅 ansible_playbooks 属性

Expand
表 7.2. defaults 和 instances 属性
属性

hostname

实例 仅指定 实例 属性应用到的节点的主机名。主机名派生自 hostname_format 属性。您可以使用自定义主机名。

name

(实例 仅)您要置备的节点的名称。

image

要在节点上置备的镜像的详情。有关支持的 镜像 属性的详情,请参考 镜像 属性

功能

选择与节点功能匹配的条件。

config_drive

将 data 和 first-boot 命令添加到传递给节点的 config-drive 中。如需更多信息,请参阅 config_drive 属性

注意

仅将 config_drive 用于必须在第一次引导时执行的配置。对于所有其他自定义配置,创建一个 Ansible playbook,并使用 ansible_playbooks 属性在节点置备后对角色实例执行 playbook。

受管

设置为 true (默认)以使用 metalsmith 置备实例。设置为 false 以处理实例预置备。

网络

代表实例网络的字典列表。有关配置网络属性的更多信息,请参阅 网络属性

network_config

链接到角色或实例的网络配置文件。有关配置到网络配置文件的链接的更多信息,请参阅 network_config 属性

配置集

针对配置文件匹配的选择条件。如需更多信息,请参阅 根据匹配的配置集为角色指定 overcloud 节点

已置备

设置为 true (默认)以置备节点。设置为 false 以取消置备节点。如需更多信息,请参阅 缩减裸机节点

resource_class

与节点的资源类匹配的选择条件。默认值为 baremetal。如需更多信息,请参阅 根据匹配的资源类 为角色指定 overcloud 节点

root_size_gb

GiB 中根分区的大小。默认值为 49

swap_size_mb

MiB 中 swap 分区的大小。

遍历

作为与节点遍历匹配的选择条件的遍历列表。

Expand
表 7.3. 镜像 属性
属性

href

指定您要在节点上置备的根分区或整个磁盘镜像的 URL。支持的 URL 方案: file://http://https://

注意

如果您使用 file:// URL 方案为镜像指定本地 URL,则镜像路径必须指向 /var/lib/ironic/images/ 目录,因为 /var/lib/ironic/images 从 undercloud 明确挂载到 ironic-conductor 容器中,以便服务镜像。

checksum

指定根分区或完整磁盘镜像的 MD5 校验和。当 href 是 URL 时是必需的。

kernel

指定内核镜像的镜像引用或 URL。仅在分区镜像中使用此属性。

ramdisk

指定 ramdisk 镜像的镜像引用或 URL。仅在分区镜像中使用此属性。

Expand
表 7.4. 网络 属性
属性

fixed_ip

要用于此网络的特定 IP 地址。

network

要创建网络端口的网络。

子网

要创建网络端口的子网。

端口

使用现有端口而不是创建新端口。

vif

在 provisioning 网络(ctlplane)上设为 true,以将网络作为虚拟接口(VIF)连接。设置为 false,以在没有 VIF 附加的情况下创建网络服务 API 资源。

Expand
表 7.5. network_config 属性
属性

模板

指定应用节点网络配置时要使用的 Ansible J2 NIC 配置模板。有关配置 NIC 模板的详情,请参考配置 overcloud 网络

physical_bridge_name

用于访问外部网络的 OVS 网桥的名称。默认网桥名称为 br-ex

public_interface_name

指定要添加到公共网桥的接口的名称。默认接口为 nic1

network_config_update

设置为 true,以在更新时应用网络配置更改。默认禁用此选项。

net_config_data_lookup

为每个节点或节点组指定 NIC 映射配置 os-net-config

default_route_network

用于默认路由的网络。默认路由网络是 ctlplane

networks_skip_config

配置节点网络时要跳过的网络列表。

dns_search_domains

要添加到 resolv.conf 中的 DNS 搜索域列表,按优先级顺序排列。

bond_interface_ovs_options

用于绑定接口的 OVS 选项或绑定选项,如 lacp=activebond_mode=balance-slb 用于 OVS 绑定,以及 Linux 绑定的 mode=4

num_dpdk_interface_rx_queues

指定 DPDK 绑定或 DPDK 端口所需的 RX 队列数量。

Expand
表 7.6. config_drive 属性
属性

cloud_config

cloud-init 云配置数据的字典,用于在节点引导时运行任务。例如,要在第一次引导时将自定义名称服务器写入 resolve.conf 文件,请将以下 cloud_config 添加到 config_drive 属性中:

config_drive:
  cloud_config:
    manage_resolv_conf: true
    resolv_conf:
      nameservers:
        - 8.8.8.8
        - 8.8.4.4
      searchdomains:
        - abc.example.com
        - xyz.example.com
      domain: example.com
      sortlist:
        - 10.0.0.1/255
        - 10.0.0.2
      options:
        rotate: true
        timeout: 1
Copy to Clipboard Toggle word wrap

meta_data

要使用 config-drive cloud-init 元数据包含的额外元数据。元数据添加到角色名称上生成的元数据集中: public_keysuuidnamehostnameinstance-typecloud-init 使此元数据作为实例数据可用。

Expand
表 7.7. ansible_playbooks 属性
属性

playbook

相对于角色定义 YAML 文件的 Ansible playbook 路径。

extra_vars

在运行 playbook 时设置的额外 Ansible 变量。使用以下语法指定额外变量:

ansible_playbooks:
  - playbook: a_playbook.yaml
    extra_vars:
      param1: value1
      param2: value2
Copy to Clipboard Toggle word wrap

例如,要增大使用整个磁盘 overcloud 镜像 overcloud-hardened-uefi-full.qcow2 部署的节点的 LVM 卷,请将以下额外变量添加到您的 playbook 属性中:

ansible_playbooks:
  - playbook: /usr/share/ansible/tripleo-playbooks/cli-overcloud-node-growvols.yaml
    extra_vars:
      role_growvols_args:
        default:
          /=8GB
          /tmp=1GB
          /var/log=10GB
          /var/log/audit=2GB
          /home=1GB
          /var=100%
        Controller:
          /=8GB
          /tmp=1GB
          /var/log=10GB
          /var/log/audit=2GB
          /home=1GB
          /srv=50GB
          /var=100%
Copy to Clipboard Toggle word wrap

7.2.5. 从节点定义文件中删除失败的裸机节点

如果因为节点硬件或网络配置失败,节点置备失败,您可以在再次运行置备步骤前删除失败的节点。要删除在置备过程中失败的裸机节点,请在节点定义文件中标记您要从堆栈中删除的节点,并在置备正常工作的裸机节点前取消置备节点。

先决条件

  • 已安装 undercloud。如需更多信息,请参阅安装 director
  • 由于节点硬件故障,裸机节点置备会失败。

流程

  1. 查找 stackrc undercloud 凭据文件:

    $ source ~/stackrc
    Copy to Clipboard Toggle word wrap
  2. 打开 overcloud-baremetal-deploy.yaml 节点定义文件。
  3. 缩减节点分配给的角色的 count 参数。例如,以下配置更新 ObjectStorage 角色的 count 参数,以反映专用于 ObjectStorage 的节点数量被减少为 3:

    - name: ObjectStorage
      count: 3
    Copy to Clipboard Toggle word wrap
  4. 定义您要从堆栈中删除的节点的主机名名称(如果尚未在角色的 instances 属性中定义)。
  5. 将 attribute provisioned: false 添加到您要删除的节点。例如,要从堆栈中删除节点 overcloud-objectstorage-1,请在 overcloud-baremetal-deploy.yaml 文件中包含以下代码片段:

    - name: ObjectStorage
      count: 3
      instances:
      - hostname: overcloud-objectstorage-0
        name: node00
      - hostname: overcloud-objectstorage-1
        name: node01
        # Removed from cluster due to disk failure
        provisioned: false
      - hostname: overcloud-objectstorage-2
        name: node02
      - hostname: overcloud-objectstorage-3
        name: node03
    Copy to Clipboard Toggle word wrap
  6. 取消置备裸机节点:

    (undercloud)$ openstack overcloud node unprovision \
     --stack <stack> \
     --network-ports \
     /home/stack/templates/overcloud-baremetal-deploy.yaml
    Copy to Clipboard Toggle word wrap
    • & lt;stack> 替换为置备裸机节点的堆栈名称。如果未指定,则默认为 overcloud
  7. 置备 overcloud 节点以生成更新的 heat 环境文件,以包括在部署命令中:

    (undercloud)$ openstack overcloud node provision \
    --stack <stack> \
    --output <deployment_file> \
    /home/stack/templates/overcloud-baremetal-deploy.yaml
    Copy to Clipboard Toggle word wrap
    • <deployment_file> 替换为用于部署命令生成的 heat 环境文件的名称,如 /home/stack/templates/overcloud-baremetal-deployed.yaml

您可以使用自定义资源类为特定角色指定 overcloud 节点。资源类与节点匹配以部署角色。默认情况下,所有节点都被分配 baremetal 的资源类。

注意

要在置备节点后更改分配给节点的资源类,您必须使用缩减流程取消置备节点,然后使用扩展步骤使用新资源类分配重新置备节点。有关更多信息,请参阅 扩展 overcloud 节点

先决条件

  • 为 overcloud 执行裸机节点的初始置备。

流程

  1. 使用自定义资源类分配您要为角色指定的每个裸机节点:

    (undercloud)$ openstack baremetal node set \
     --resource-class <resource_class> <node>
    Copy to Clipboard Toggle word wrap
    • <resource_class > 替换为资源类的名称,例如 baremetal.CPU-PINNING
    • <node> 替换为裸机节点的 ID。
  2. 将角色添加到 overcloud-baremetal-deploy.yaml 文件中(如果尚未定义)。
  3. 指定您要分配给角色节点的资源类:

    - name: <role>
      count: 1
      defaults:
        resource_class: <resource_class>
    Copy to Clipboard Toggle word wrap
    • <role > 替换为角色的名称。
    • <resource_class > 替换为在第 1 步中为资源类指定的名称。
  4. 返回到 为 overcloud 置备裸机节点 以完成置备过程。

您可以使用配置集功能为特定角色指定 overcloud 节点。配置集与节点功能与部署角色匹配。

提示

您还可以使用内省规则执行自动配置集分配。如需更多信息,请参阅配置自动配置集标记

注意

要在置备节点后更改分配给节点的配置集,您必须使用缩减流程取消置备节点,然后使用扩展步骤使用新配置集分配重新置备节点。有关更多信息,请参阅 扩展 overcloud 节点

先决条件

  • 为 overcloud 执行裸机节点的初始置备。

流程

  1. 每次添加新节点功能时,现有节点功能都会覆盖。因此,您必须检索每个注册节点的现有功能,以便再次设置它们:

    $ openstack baremetal node show <node> \
     -f json -c properties | jq -r .properties.capabilities
    Copy to Clipboard Toggle word wrap
  2. 通过将 profile:<profile> 添加到节点的现有功能,给您要与角色 配置集匹配 的每个裸机节点分配配置集功能:

    (undercloud)$ openstack baremetal node set  <node> \
     --property capabilities="profile:<profile>,<capability_1>,...,<capability_n>"
    Copy to Clipboard Toggle word wrap
    • <node > 替换为裸机节点的名称或 ID。
    • <profile > 替换为与角色配置集匹配的配置集名称。
    • <capability_1& gt; 以及所有功能(直到 <capability_n >)替换为在第 1 步中获得的每个功能。
  3. 将角色添加到 overcloud-baremetal-deploy.yaml 文件中(如果尚未定义)。
  4. 定义您要分配给角色节点的配置集:

    - name: <role>
      count: 1
      defaults:
        profile: <profile>
    Copy to Clipboard Toggle word wrap
    • <role > 替换为角色的名称。
    • <profile > 替换为与节点功能匹配的配置集名称。
  5. 返回到 为 overcloud 置备裸机节点 以完成置备过程。

7.2.8. 为对象存储服务配置完整磁盘分区

整个磁盘镜像 overcloud-hardened-uefi-full 会被分区到单独的卷中。默认情况下,使用整个磁盘 overcloud 镜像部署的节点的 /var 分区会自动增加,直到磁盘被完全分配为止。如果您使用 Object Storage 服务(swift),请根据您的磁盘大小以及 /var/srv 的存储要求来配置 /srv 分区的大小。

先决条件

  • 为 overcloud 执行裸机节点的初始置备。

流程

  1. 使用 role_growvols_args 作为 overcloud-baremetal-deploy.yaml 节点定义文件中的 Ansible playbook 定义中的额外 Ansible 变量配置 /srv/var 分区。将 /srv/var 设置为一个绝对大小(以 GB 为单位),并将其他大小设置为 100% 以使用剩余的磁盘空间。

    • 以下示例配置将 /srv 设置为在 Controller 节点上部署的对象存储服务的绝对路径,将 /var 设置为 100% 以使用剩余的磁盘空间:

      ansible_playbooks:
        - playbook: /usr/share/ansible/tripleo-playbooks/cli-overcloud-node-growvols.yaml
          extra_vars:
            role_growvols_args:
              default:
                /=8GB
                /tmp=1GB
                /var/log=10GB
                /var/log/audit=2GB
                /home=1GB
                /var=100%
              Controller:
                /=8GB
                /tmp=1GB
                /var/log=10GB
                /var/log/audit=2GB
                /home=1GB
                /srv=50GB
                /var=100%
      Copy to Clipboard Toggle word wrap
    • 以下示例配置将 /var 设置为绝对大小,将 /srv 设置为 100%,以使用 Object Storage 服务的 Object Storage 节点的剩余磁盘空间:

      ansible_playbooks:
        - playbook: /usr/share/ansible/tripleo-playbooks/cli-overcloud-node-growvols.yaml
          extra_vars:
            role_growvols_args:
              default:
                /=8GB
                /tmp=1GB
                /var/log=10GB
                /var/log/audit=2GB
                /home=1GB
                /var=100%
             ObjectStorage:
                /=8GB
                /tmp=1GB
                /var/log=10GB
                /var/log/audit=2GB
                /home=1GB
                /var=10GB
                /srv=100%
      Copy to Clipboard Toggle word wrap
  2. 返回到 为 overcloud 置备裸机节点 以完成置备过程。

7.2.9. 节点定义文件示例

以下示例节点定义文件定义了三个 Controller 节点和三个 Compute 节点及其使用的默认网络的预测节点放置。这个示例还演示了如何定义具有根据资源类或节点功能配置集指定节点的自定义角色。

- name: Controller
  count: 3
  defaults:
    image:
      href: file:///var/lib/ironic/images/overcloud-custom.qcow2
    networks:
    - network: ctlplane
      vif: true
    - network: external
      subnet: external_subnet
    - network: internal_api
      subnet: internal_api_subnet01
    - network: storage
      subnet: storage_subnet01
    - network: storagemgmt
      subnet: storage_mgmt_subnet01
    - network: tenant
      subnet: tenant_subnet01
    network_config:
        template: /home/stack/templates/nic-config/myController.j2
        default_route_network:
        - external
    profile: nodeCapability
  instances:
  - hostname: overcloud-controller-0
    name: node00
  - hostname: overcloud-controller-1
    name: node01
  - hostname: overcloud-controller-2
    name: node02
- name: Compute
  count: 3
  defaults:
    networks:
    - network: ctlplane
      vif: true
    - network: internal_api
      subnet: internal_api_subnet02
    - network: tenant
      subnet: tenant_subnet02
    - network: storage
      subnet: storage_subnet02
    network_config:
      template: /home/stack/templates/nic-config/myCompute.j2
    resource_class: baremetal.COMPUTE
  instances:
  - hostname: overcloud-novacompute-0
    name: node04
  - hostname: overcloud-novacompute-1
    name: node05
  - hostname: overcloud-novacompute-2
    name: node06
Copy to Clipboard Toggle word wrap

7.2.10. 启用虚拟介质引导

重要

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

您可以使用 Redfish 虚拟介质引导,向节点的 Baseboard Management Controller (BMC) 提供引导镜像,以便 BMC 可将镜像插入到其中一个虚拟驱动器中。然后,节点可以从虚拟驱动器引导到镜像中存在的操作系统。

Redfish 硬件类型支持通过虚拟介质引导部署、救援和用户镜像。裸机置备服务(ironic)使用与节点关联的内核和 ramdisk 镜像,在节点部署时为 UEFI 或 BIOS 引导模式构建可引导的 ISO 镜像。虚拟介质引导的主要优点是可以消除 PXE 的 TFTP 镜像传输阶段,并使用 HTTP GET 或其他方法。

要通过虚拟介质使用 redfish 硬件类型引导节点,请将引导接口设置为 redfish-virtual-media,并定义 EFI 系统分区(ESP)镜像。然后将注册节点配置为使用 Redfish 虚拟介质引导。

前提条件

  • undercloud.conf 文件的 enabled_hardware_types 参数中启用 redfish 驱动程序。
  • 注册并注册的裸机节点。
  • Image Service (glance) 中的 IPA 和实例镜像。
  • 对于 UEFI 节点,还必须在 Image Service (glance) 中有一个 EFI 系统分区镜像 (ESP)。
  • 用于清理和置备的网络。

流程

  1. stack 用户身份登录 undercloud 主机。
  2. 查找 stackrc undercloud 凭证文件:

    $ source ~/stackrc
    Copy to Clipboard Toggle word wrap
  3. 将 Bare Metal Provisioning 服务引导接口设置为 redfish-virtual-media

    (undercloud)$ openstack baremetal node set --boot-interface redfish-virtual-media <node>
    Copy to Clipboard Toggle word wrap
    • <node > 替换为节点的名称。
  4. 定义 ESP 镜像:

    (undercloud)$ openstack baremetal node set --driver-info bootloader=<esp> <node>
    Copy to Clipboard Toggle word wrap
    • <esp > 替换为镜像服务(glance)镜像 UUID 或 ESP 镜像的 URL。
    • <node > 替换为节点的名称。
  5. 在裸机节点上创建一个端口,并将端口与裸机节点上 NIC 的 MAC 地址关联:

    (undercloud)$ openstack baremetal port create --pxe-enabled True \
     --node <node_uuid> <mac_address>
    Copy to Clipboard Toggle word wrap
    • <node_uuid > 替换为裸机节点的 UUID。
    • <mac_address > 替换为裸机节点中 NIC 的 MAC 地址。

7.2.11. 为多磁盘 Ceph 集群定义根磁盘

Ceph Storage 节点通常使用多个磁盘。director 必须在多个磁盘配置中识别根磁盘。在置备过程中,overcloud 镜像被写入根磁盘。

硬件属性用于识别根磁盘。有关可以用来识别根磁盘的属性的更多信息,请参阅 标识根磁盘的属性

流程

  1. 从每个节点的硬件内省验证磁盘信息:

    (undercloud)$ openstack baremetal introspection data save <node_uuid> --file <output_file_name>
    Copy to Clipboard Toggle word wrap
    • <node_uuid > 替换为节点的 UUID。
    • 将 < output_file_name > 替换为包含节点内省输出的文件的名称。

      例如,一个节点的数据可能会显示 3 个磁盘:

      [
        {
          "size": 299439751168,
          "rotational": true,
          "vendor": "DELL",
          "name": "/dev/sda",
          "wwn_vendor_extension": "0x1ea4dcc412a9632b",
          "wwn_with_extension": "0x61866da04f3807001ea4dcc412a9632b",
          "model": "PERC H330 Mini",
          "wwn": "0x61866da04f380700",
          "serial": "61866da04f3807001ea4dcc412a9632b"
        }
        {
          "size": 299439751168,
          "rotational": true,
          "vendor": "DELL",
          "name": "/dev/sdb",
          "wwn_vendor_extension": "0x1ea4e13c12e36ad6",
          "wwn_with_extension": "0x61866da04f380d001ea4e13c12e36ad6",
          "model": "PERC H330 Mini",
          "wwn": "0x61866da04f380d00",
          "serial": "61866da04f380d001ea4e13c12e36ad6"
        }
        {
          "size": 299439751168,
          "rotational": true,
          "vendor": "DELL",
          "name": "/dev/sdc",
          "wwn_vendor_extension": "0x1ea4e31e121cfb45",
          "wwn_with_extension": "0x61866da04f37fc001ea4e31e121cfb45",
          "model": "PERC H330 Mini",
          "wwn": "0x61866da04f37fc00",
          "serial": "61866da04f37fc001ea4e31e121cfb45"
        }
      ]
      Copy to Clipboard Toggle word wrap
  2. 使用唯一硬件属性为节点设置根磁盘:

    (undercloud)$ openstack baremetal node set --property root_device='{<property_value>}' <node-uuid>

    • 将 < property_value > 替换为来自内省数据的唯一硬件属性值,以设置根磁盘。
    • <node_uuid > 替换为节点的 UUID。

      注意

      唯一的硬件属性是硬件内省步骤中唯一标识磁盘的任何属性。例如,以下命令使用磁盘序列号来设置根磁盘:

      (undercloud)$ openstack baremetal node set --property root_device='{"serial": "61866da04f380d001ea4e13c12e36ad6"}' 1a4e30da-b6dc-499d-ba87-0bd8a3819bc0

  3. 将每个节点的 BIOS 配置为从网络首次引导,然后是根磁盘。

director 识别特定磁盘以用作根磁盘。运行 openstack overcloud node provision 命令时,director 置备 overcloud 镜像并将其写入根磁盘。

7.2.12. 标识根磁盘的属性

您可以定义多个属性以帮助 director 识别根磁盘:

  • model(字符串):设备识别码。
  • vendor(字符串):设备厂商。
  • serial(字符串):磁盘序列号。
  • hctl(字符串):SCSI 的 Host:Channel:Target:Lun。
  • size(整数):设备的大小(以 GB 为单位)。
  • wwn(字符串):唯一的存储 ID。
  • wwn_with_extension(字符串):唯一存储 ID 附加厂商扩展名。
  • wwn_vendor_extension(字符串):唯一厂商存储标识符。
  • rotational(布尔值):旋转磁盘设备为 true (HDD),否则为 false (SSD)。
  • name(字符串):设备名称,例如:/dev/sdb1。
重要

name 属性用于具有持久名称的设备。不要使用 name 属性为没有持久名称的设备设置根磁盘,因为该值可在节点引导时更改。

Red Hat OpenStack Platform (RHOSP)部署的默认镜像是 overcloud-hardened-uefi-full.qcow2overcloud-hardened-uefi-full.qcow2 镜像使用有效的 Red Hat OpenStack Platform (RHOSP)订阅。当您不希望使用您的订阅权利时,您可以使用 overcloud-minimal 镜像,以避免达到您付费红帽订阅的限制。例如,当您要只置备带有 Ceph 守护进程的节点,或者想要调配您不想运行任何其他 OpenStack 服务的裸机操作系统(OS)时,这非常有用。有关如何获取 overcloud-minimal 镜像的详情,请参考 获取 overcloud 节点的镜像

注意

overcloud-minimal 镜像仅支持标准 Linux 网桥。overcloud-minimal 镜像不支持 Open vSwitch (OVS),因为 OVS 是一个需要 Red Hat OpenStack Platform 订阅权利的 OpenStack 服务。部署 Ceph Storage 节点不需要 OVS。使用 linux_bond 定义绑定,而不使用 ovs_bond。有关 linux_bond 的更多信息,请参阅创建 Linux 绑定

流程

  1. overcloud-minimal 镜像和相关内核和 ramdisk 上传到 undercloud 上的 /var/lib/ironic/images/ 中。

    以下是上传文件的示例:

    (undercloud) [stack@undercloud ~]$ openstack overcloud image upload --image-path ./images/ --os-image-name overcloud-minimal.qcow2 --update-existing --image-type os
    Image "file:///var/lib/ironic/images/overcloud-minimal.vmlinuz" was copied.
    +---------------------------------------------------------+-------------------+----------+
    |                           Path                          |        Name       |   Size   |
    +---------------------------------------------------------+-------------------+----------+
    | file:///var/lib/ironic/images/overcloud-minimal.vmlinuz | overcloud-minimal | 12190232 |
    +---------------------------------------------------------+-------------------+----------+
    Image "file:///var/lib/ironic/images/overcloud-minimal.initrd" was copied.
    +--------------------------------------------------------+-------------------+----------+
    |                          Path                          |        Name       |   Size   |
    +--------------------------------------------------------+-------------------+----------+
    | file:///var/lib/ironic/images/overcloud-minimal.initrd | overcloud-minimal | 82284184 |
    +--------------------------------------------------------+-------------------+----------+
    Image "file:///var/lib/ironic/images/overcloud-minimal.raw" was copied.
    +-----------------------------------------------------+-------------------+------------+
    |                         Path                        |        Name       |    Size    |
    +-----------------------------------------------------+-------------------+------------+
    | file:///var/lib/ironic/images/overcloud-minimal.raw | overcloud-minimal | 3242131456 |
    +-----------------------------------------------------+-------------------+------------+
    Copy to Clipboard Toggle word wrap
  2. 打开 overcloud-baremetal-deploy.yaml 文件。
  3. 为您要使用 overcloud-minimal 镜像的节点添加或更新 image 属性。您可以将特定节点上的镜像设置为 overcloud-minimal,或将角色的所有节点设置为 overcloud-minimal:

    特定节点

    - name: CephStorage
      count: 3
      instances:
      - hostname: overcloud-ceph-0
        name: node00
        image:
          href: 'file:///var/lib/ironic/images/overcloud-minimal.raw'
          kernel: 'file:///var/lib/ironic/images/overcloud-minimal.vmlinuz'
          ramdisk: 'file:///var/lib/ironic/images/overcloud-minimal.initrd'
      - hostname: overcloud-ceph-1
        name: node01
        image:
          href: file:///var/lib/ironic/images/overcloud-full-custom.qcow2
      - hostname: overcloud-ceph-2
        name: node02
        image:
          href: file:///var/lib/ironic/images/overcloud-full-custom.qcow2
    Copy to Clipboard Toggle word wrap

    角色的所有节点

    - name: CephStorage
      count: 3
      defaults:
        image:
          href: 'file:///var/lib/ironic/images/overcloud-minimal.raw'
          kernel: 'file:///var/lib/ironic/images/overcloud-minimal.vmlinuz'
          ramdisk: 'file:///var/lib/ironic/images/overcloud-minimal.initrd'
      instances:
      - hostname: overcloud-ceph-0
        name: node00
      - hostname: overcloud-ceph-1
        name: node01
      - hostname: overcloud-ceph-2
        name: node02
    Copy to Clipboard Toggle word wrap

  4. roles_data.yaml 角色定义文件中,将 rhsm_enforce 参数设置为 False

    rhsm_enforce: False
    Copy to Clipboard Toggle word wrap
  5. 运行 provisioning 命令:

    (undercloud)$ openstack overcloud node provision \
    --stack stack \
    --output /home/stack/templates/overcloud-baremetal-deployed.yaml \
    /home/stack/templates/overcloud-baremetal-deploy.yaml
    Copy to Clipboard Toggle word wrap
  6. overcloud-baremetal-deployed.yaml 环境文件传递给 openstack overcloud deploy 命令。
Red Hat logoGithubredditYoutubeTwitter

学习

尝试、购买和销售

社区

关于红帽文档

通过我们的产品和服务,以及可以信赖的内容,帮助红帽用户创新并实现他们的目标。 了解我们当前的更新.

让开源更具包容性

红帽致力于替换我们的代码、文档和 Web 属性中存在问题的语言。欲了解更多详情,请参阅红帽博客.

關於紅帽

我们提供强化的解决方案,使企业能够更轻松地跨平台和环境(从核心数据中心到网络边缘)工作。

Theme

© 2026 Red Hat
返回顶部