iLO driver

概述

iLO driver 能够利用 HPE ProLiant 服务器中 iLO 管理引擎的特性。 ilo 硬件类型面向具有 iLO 4 管理引擎 的 HPE ProLiant Gen8 和 Gen9 系统。 从 Pike 版本开始,ilo 硬件类型支持具有 iLO 5 管理引擎 的 ProLiant Gen10 系统。 iLO5 符合 Redfish API,因此硬件类型 redfish (参见 Redfish driver) 也是这种硬件的一种选择,但它缺乏 iLO 特定的功能。

有关更多详细信息以及最新信息(例如经过测试的平台、已知问题等),请查看 iLO driver wiki 页面

要启用 Gen10 系统并获取有关 Ironic 中 Gen10 功能支持的详细信息,请查看此 Gen10 wiki 部分

警告

从 Gen11 服务器及更高版本开始(iLO6 及更高版本),请使用 redfish (参见 Redfish driver) 硬件类型进行裸机配置和管理。 您可以使用 redfish 硬件类型用于 iLO5 硬件,但是,在 iLO6 主板管理控制器之前,Redfish 不支持 RAID 配置。

Ironic 社区预计不会向 iloilo5 硬件类型添加新功能,因为 redfish 正在取代大多数供应商特定的硬件类型。 预计这些驱动程序将只要 proliantutils 库得到维护,就会在 Ironic 中可用。

硬件类型

ProLiant 硬件主要由 ilo 硬件类型支持。 ilo5 硬件类型仅支持 ProLiant Gen10 及更高版本的系统。 两种硬件都可以与参考硬件类型 ipmi (参见 IPMI driver) 和 redfish (参见 Redfish driver) 一起使用。 有关如何启用 iloilo5 硬件类型的信息,请参见 启用硬件类型

警告

重要的是要注意,虽然 HPE Edgeline 系列服务器可能包含 iLO 适配器,但已知它们与 ilo 硬件类型不兼容。 应使用 redfish 硬件类型。

硬件类型 ilo 支持以下 HPE 服务器功能

除了上述功能外,硬件类型 ilo5 还支持以下功能

硬件接口

硬件类型 ilo 支持以下硬件接口

  • bios

    支持 ilono-bios。 默认值为 ilo。 它们可以通过使用 DEFAULT.enabled_bios_interfaces 选项在 ironic.conf 中启用,如下所示

    [DEFAULT]
    enabled_hardware_types = ilo
    enabled_bios_interfaces = ilo,no-bios
    
  • boot

    支持 ilo-virtual-mediailo-pxeilo-ipxe。 默认值为 ilo-virtual-mediailo-virtual-media 接口通过使用 iLO 虚拟媒体启动裸机节点,提供安全增强的无 PXE 部署。 ilo-pxeilo-ipxe 接口分别使用 PXE 和 iPXE 进行部署(就像 PXE 启动 一样)。 这些接口不需要 iLO 高级许可证。 它们可以通过使用 DEFAULT.enabled_boot_interfaces 选项在 ironic.conf 中启用,如下所示

    [DEFAULT]
    enabled_hardware_types = ilo
    enabled_boot_interfaces = ilo-virtual-media,ilo-pxe,ilo-ipxe
    
  • console

    支持 ilono-console。 默认值为 ilo。 它们可以通过使用 DEFAULT.enabled_console_interfaces 选项在 ironic.conf 中启用,如下所示

    [DEFAULT]
    enabled_hardware_types = ilo
    enabled_console_interfaces = ilo,no-console
    

    注意

    要使用 ilo 控制台接口,您需要在 iLO4iLO5 管理引擎上启用 iLO 功能“LAN 上的 IPMI/DCMI 访问”。

  • inspect

    支持 iloinspector。 默认值为 ilo。 它们可以通过使用 DEFAULT.enabled_inspect_interfaces 选项在 ironic.conf 中启用,如下所示

    [DEFAULT]
    enabled_hardware_types = ilo
    enabled_inspect_interfaces = ilo,inspector
    

    注意

    Ironic Inspector 需要配置为将 inspector 作为检查接口使用。

  • management

    仅支持 ilo。 它们可以通过使用 DEFAULT.enabled_management_interfaces 选项在 ironic.conf 中启用,如下所示

    [DEFAULT]
    enabled_hardware_types = ilo
    enabled_management_interfaces = ilo
    
  • power

    仅支持 ilo。 它们可以通过使用 DEFAULT.enabled_power_interfaces 选项在 ironic.conf 中启用,如下所示

    [DEFAULT]
    enabled_hardware_types = ilo
    enabled_power_interfaces = ilo
    
  • raid

    支持 agentno-raid。 默认值为 no-raid。 它们可以通过使用 DEFAULT.enabled_raid_interfaces 选项在 ironic.conf 中启用,如下所示

    [DEFAULT]
    enabled_hardware_types = ilo
    enabled_raid_interfaces = agent,no-raid
    
  • storage

    支持 cindernoop。 默认值为 noop。 它们可以通过使用 DEFAULT.enabled_storage_interfaces 选项在 ironic.conf 中启用,如下所示

    [DEFAULT]
    enabled_hardware_types = ilo
    enabled_storage_interfaces = cinder,noop
    

    注意

    存储接口 cinder 仅在基于 ilo 硬件类型的节点的相应启动接口为 ilo-pxeilo-ipxe 时才受支持。 请参阅 从卷启动 以配置 cinder 作为存储接口。

  • rescue

    支持 agentno-rescue。 默认值为 no-rescue。 它们可以通过使用 DEFAULT.enabled_rescue_interfaces 选项在 ironic.conf 中启用,如下所示

    [DEFAULT]
    enabled_hardware_types = ilo
    enabled_rescue_interfaces = agent,no-rescue
    
  • 供应商

    支持 iloilo-redfishno-vendor。 默认值为 ilo。 它们可以通过使用 DEFAULT.enabled_vendor_interfaces 选项在 ironic.conf 中启用,如下所示

    [DEFAULT]
    enabled_hardware_types = ilo
    enabled_vendor_interfaces = ilo,ilo-redfish,no-vendor
    

硬件类型 ilo5 支持上述所有 ilo 接口,但 bootraid 接口除外。 bootraid 接口的详细信息如下

  • raid

    支持 ilo5no-raid。 默认值为 ilo5。 它们可以通过使用 DEFAULT.enabled_raid_interfaces 选项在 ironic.conf 中启用,如下所示

    [DEFAULT]
    enabled_hardware_types = ilo5
    enabled_raid_interfaces = ilo5,no-raid
    
  • boot

    除了 ilo 硬件类型支持的其他启动接口外,还支持 ilo-uefi-https。 它们可以通过使用 DEFAULT.enabled_boot_interfaces 选项在 ironic.conf 中启用,如下所示

    [DEFAULT]
    enabled_hardware_types = ilo5
    enabled_boot_interfaces = ilo-uefi-https,ilo-virtual-media
    

硬件类型 iloilo5 支持所有标准的 deploynetwork 接口实现,请参见 启用硬件接口 以获取详细信息。

以下命令可用于注册具有 ilo 硬件类型的 ProLiant 节点

baremetal node create \
    --driver ilo \
    --deploy-interface direct \
    --raid-interface agent \
    --rescue-interface agent \
    --driver-info ilo_address=<ilo-ip-address> \
    --driver-info ilo_username=<ilo-username> \
    --driver-info ilo_password=<ilo-password> \
    --driver-info deploy_iso=<glance-uuid-of-deploy-iso> \
    --driver-info rescue_iso=<glance-uuid-of-rescue-iso>

注意

字段 deploy_isorescue_iso 之前在 Xena 版本发布前分别被称为 ilo_deploy_isoilo_rescue_iso

以下命令可用于注册具有 ilo5 硬件类型的 ProLiant 节点

baremetal node create \
    --driver ilo5 \
    --deploy-interface direct \
    --raid-interface ilo5 \
    --rescue-interface agent \
    --driver-info ilo_address=<ilo-ip-address> \
    --driver-info ilo_username=<ilo-username> \
    --driver-info ilo_password=<ilo-password> \
    --driver-info deploy_iso=<glance-uuid-of-deploy-iso> \
    --driver-info rescue_iso=<glance-uuid-of-rescue-iso>

有关硬件类型的详细说明,请参阅 启用驱动程序和硬件类型

节点配置

  • 每个节点都通过在 driver_info 中设置以下 ironic 节点对象的属性来配置为 iloilo5 硬件类型

    • ilo_address:iLO 的 IP 地址或主机名。

    • ilo_username:具有管理员权限的 iLO 用户名。

    • ilo_password:上述 iLO 用户的密码。

    • client_port:(可选)如果 iLO 使用自定义端口,则用于 iLO 操作的端口。默认使用的端口是 443。

    • client_timeout:(可选)iLO 操作的超时时间。默认超时时间为 60 秒。

    • ca_file:(可选)用于验证 iLO 的 CA 证书文件。

    • console_port:(可选)节点用于控制台访问的 UDP 端口。可以使用 ironic conductor 节点上的任何未使用的端口。仅在使用 ilo-console 接口时才需要此端口。

  • 如果使用 ilo-virtual-media 启动接口,则节点对象的 driver_info 中还需要以下属性

    • deploy_iso:部署 ramdisk ISO 镜像的 glance UUID。

    • instance info/boot_iso 属性应为 boot iso Glance UUID 或 HTTP(S) URL。此属性是可选属性,与 启动 Ramdisk 或 ISO 一起使用。

      注意

      在 Xena 版本发布前,boot_iso 属性被称为 ilo_boot_iso

    • rescue_iso:救援 ISO 镜像的 glance UUID。此属性是可选属性,当 rescue 接口设置为 agent 时使用。

  • 如果使用 ilo-pxeilo-ipxe 启动接口,则节点对象的 driver_info 中还需要以下属性

    • deploy_kernel:部署内核的 glance UUID 或 HTTP(S) URL。

    • deploy_ramdisk:部署 ramdisk 的 glance UUID 或 HTTP(S) URL。

    • rescue_kernel:救援内核的 glance UUID 或 HTTP(S) URL。此属性是可选属性,当 rescue 接口设置为 agent 时使用。

    • rescue_ramdisk:救援 ramdisk 的 glance UUID 或 HTTP(S) URL。此属性是可选属性,当 rescue 接口设置为 agent 时使用。

  • 如果使用 ilo-uefi-https 启动接口用于 ilo5 硬件类型,则节点对象的 driver_info 中还需要以下属性

    • deploy_kernel:部署内核的 glance UUID 或 HTTPS URL。

    • deploy_ramdisk:部署 ramdisk 的 glance UUID 或 HTTPS URL。

    • bootloader:启动加载程序的 glance UUID 或 HTTPS URL。

    • rescue_kernel:救援内核的 glance UUID 或 HTTPS URL。此属性是可选属性,当 rescue 接口设置为 agent 时使用。

    • rescue_ramdisk:救援 ramdisk 的 glance UUID 或 HTTP(S) URL。此属性是可选属性,当 rescue 接口设置为 agent 时使用。

    注意

    ilo-uefi-https 启动接口仅受 ilo5 硬件类型支持。如果镜像未托管在 glance 中,则引用必须是托管在安全 Web 服务器上的 HTTPS URL。只有当前启动模式为 UEFI 时才能使用此启动接口。

    注意

    在 Xena 版本发布前,字段 deploy_kerneldeploy_ramdiskrescue_kernel rescue_ramdiskbootloader 具有 ilo_ 前缀。

  • 如果使用 ilo-inspect 检查接口,并且需要 SNMPv3 检查(HPE iLO4 用户指南 中的 SNMPv3 Authentication),则 driver_info 中需要以下参数

    • snmp_auth_user:SNMPv3 用户。

    • snmp_auth_prot_password:身份验证协议密码。

    • snmp_auth_priv_password:隐私协议密码。

    以下参数是 SNMPv3 检查的可选参数

    • snmp_auth_protocol:身份验证协议。有效值为“MD5”和“SHA”。iLO 默认值为“MD5”。

    • snmp_auth_priv_protocol:隐私协议。有效值为“AES”和“DES”。iLO 默认值为“DES”。

注意

如果未在节点的 driver_info 中提供 ca_fileclient_portclient_timeout 的配置值,则将在 ironic.conf 的 [ilo] 部分中定义的相应配置变量将被使用。

先决条件

  • proliantutils 是一个 Python 包,其中包含用于管理 HPE ProLiant 硬件的一组模块。

    在 ironic conductor 节点上安装 proliantutils 模块。所需的最低版本是 2.8.0

    $ pip install "proliantutils>=2.8.0"
    
  • ipmitool 命令必须存在于运行 ironic-conductor 的服务节点上。在大多数发行版中,这作为 ipmitool 包的一部分提供。有关推荐版本的更多信息,请参阅 硬件检查支持

ilo 硬件类型的不同配置

Glance 配置

  1. 使用 Swift 作为其存储后端配置 Glance 镜像服务.

  2. 为 Swift 中的 Glance 用户设置临时 URL 密钥。例如,如果您已将 Glance 配置为用户 glance-swift 和租户为 service,则运行以下命令

    swift --os-username=service:glance-swift post -m temp-url-key:mysecretkeyforglance
    
  3. /etc/ironic/ironic.conf[glance] 部分中填写所需的参数。通常,您需要填写以下详细信息

    [glance]
    swift_temp_url_key=mysecretkeyforglance
    swift_endpoint_url=https://10.10.1.10:8080
    swift_api_version=v1
    swift_account=AUTH_51ea2fb400c34c9eb005ca945c0dc9e1
    swift_container=glance
    

    可以通过运行以下命令检索这些详细信息

    $ swift --os-username=service:glance-swift stat -v | grep -i url
    
    StorageURL:     http://10.10.1.10:8080/v1/AUTH_51ea2fb400c34c9eb005ca945c0dc9e1
    Meta Temp-Url-Key: mysecretkeyforglance
    
  4. Swift 必须使用在 Ironic 中配置的相同管理员凭据进行访问。例如,如果 Ironic 在 /etc/ironic/ironic.conf 中配置了以下凭据

    [keystone_authtoken]
    admin_password = password
    admin_user = ironic
    admin_tenant_name = service
    

    确保 keystone_authtoken 中的 auth_version 为 2。

    然后,以下命令应该可以工作。

    $ swift --os-username ironic --os-password password --os-tenant-name service --auth-version 2 stat
    
                         Account: AUTH_22af34365a104e4689c46400297f00cb
                      Containers: 2
                         Objects: 18
                           Bytes: 1728346241
    Objects in policy "policy-0": 18
      Bytes in policy "policy-0": 1728346241
               Meta Temp-Url-Key: mysecretkeyforglance
                     X-Timestamp: 1409763763.84427
                      X-Trans-Id: tx51de96a28f27401eb2833-005433924b
                    Content-Type: text/plain; charset=utf-8
                   Accept-Ranges: bytes
    
  5. 重新启动 Ironic conductor 服务

    $ service ironic-conductor restart
    

conductor 上的 Web 服务器配置

  • HTTP(S) Web 服务器可以通过多种方式配置。对于 Ubuntu 上的 apache Web 服务器,请参阅 此处

  • 需要在 /etc/ironic/ironic.conf 中设置以下配置变量

    • use_web_server_for_images[ilo] 部分

      [ilo]
      use_web_server_for_images = True
      
    • http_urlhttp_root[deploy] 部分

      [deploy]
      # Ironic compute node's http root path. (string value)
      http_root=/httpboot
      
      # Ironic compute node's HTTP server URL. Example:
      # http://192.1.2.3:8080 (string value)
      http_url=http://192.168.0.2:8080
      

use_web_server_for_images:如果变量设置为 false,则 ilo-virtual-media 启动接口使用 swift 容器来托管中间软盘镜像和 boot ISO。如果变量设置为 true,则它使用本地 Web 服务器来托管中间文件。 use_web_server_for_images 的默认值为 False。

http_url:此变量的值将作为前缀添加到生成的中间文件中,以生成附加到虚拟媒体的 URL。

http_root:这是 ironic conductor 复制中间软盘镜像和 boot ISO 的目录位置。

注意

为了增强安全性,强烈建议使用 HTTPS 而不是 HTTP Web 服务器配置。如果 Web 服务器启用 HTTPS,则 ilo-virtual-media 启动接口将通过加密通道发送实例的 configdrive。但是,对于 ilo-uefi-https 启动接口,HTTPS Web 服务器是强制性的,因为此接口仅支持 HTTPS URL。

启用驱动程序

  1. 构建部署 ISO(以及内核和 ramdisk)镜像,请参阅 构建或下载部署 ramdisk 镜像

  2. 有关使用 Swift 作为其存储后端的 Glance 镜像服务的配置,请参阅 Glance 配置

  3. 将此镜像上传到 Glance

    glance image-create --name deploy-ramdisk.iso --disk-format iso --container-format bare < deploy-ramdisk.iso
    
  4. /etc/ironic/ironic.conf 中启用硬件类型和硬件接口

    [DEFAULT]
    enabled_hardware_types = ilo
    enabled_bios_interfaces = ilo
    enabled_boot_interfaces = ilo-virtual-media,ilo-pxe,ilo-ipxe
    enabled_power_interfaces = ilo
    enabled_console_interfaces = ilo
    enabled_raid_interfaces = agent
    enabled_management_interfaces = ilo
    enabled_inspect_interfaces = ilo
    enabled_rescue_interfaces = agent
    
  5. 重新启动 ironic conductor 服务

    $ service ironic-conductor restart
    

ilo 硬件类型的可选功能

启动模式支持

硬件类型 ilo 支持自动检测和设置启动模式(传统 BIOS 或 UEFI)。

  • 当未配置启动模式功能时

    • 如果 ironic 配置文件 [ilo] 部分中的 default_boot_mode 变量设置为“bios”或“uefi”,则 iLO 驱动程序将使用该启动模式来配置裸机 ProLiant 服务器。

    • 如果节点上设置了待定启动模式,则 iLO 驱动程序将使用该启动模式来配置裸机 ProLiant 服务器。

    • 如果节点的待定启动模式未设置,则 iLO 驱动程序对支持 UEFI 的服务器使用“uefi”启动模式,如果不支持 UEFI,则使用“bios”。

  • 当配置了启动模式功能时,驱动程序会将待定启动模式设置为配置的值。

  • 节点只能配置一种启动模式(uefibios)。

  • 如果操作员希望节点始终以 uefi 模式或 bios 模式启动,则他们可以使用 ironic 节点 properties 字段中的 capabilities 参数。

    要以 uefi 模式配置节点,请将 capabilities 设置如下

    baremetal node set <node> --property capabilities='boot_mode:uefi'
    

    具有将 boot_mode 设置为 uefi 的节点可以通过在 nova flavor 中添加 extra_spec 来请求。

    openstack flavor set ironic-test-3 --property capabilities:boot_mode="uefi"
    openstack server create --flavor ironic-test-3 --image test-image instance-1
    

    如果 capabilities 在上述 extra_spec 中使用,nova 调度器 (ComputeCapabilitiesFilter) 将仅匹配在 properties/capabilities 中以适当方式设置了 boot_mode 的 ironic 节点。它将过滤掉其余节点。

    在 nova 中进行上述匹配的功能可用于异构环境,其中存在 uefibios 机器的混合,并且操作员希望为用户提供有关启动模式的选择。如果 flavor 不包含 boot_mode,则 nova 调度器将不会将启动模式视为放置标准,因此用户可能会获得与用户指定 flavor 匹配的 BIOS 或 UEFI 机器。

UEFI 启动模式的自动启动 ISO 创建已在 Kilo 中启用。也支持 UEFI 启动模式的手动创建启动 ISO。对于后者,需要单独构建部署镜像的启动 ISO,并且 glance 中的部署镜像的 boot_iso 属性应包含启动 ISO 的 glance UUID。要构建启动 ISO,请将 iso 元素添加到 diskimage-builder 命令以构建镜像。例如

disk-image-create ubuntu baremetal iso

UEFI 安全启动支持

硬件类型 ilo 支持安全启动部署,请参阅 UEFI 安全启动模式 以获取详细信息。

iLO 特定说明

在 UEFI 安全启动中,数字签名的引导加载程序应能够验证启动过程中的内核数字签名。这要求引导加载程序包含内核的数字签名。对于 ilo-virtual-media 启动接口,建议用户镜像的 boot_iso 属性包含启动 ISO 的 glance UUID。如果 glance 中未更新用户镜像的 boot_iso 属性,它将使用部署 ISO 中的引导加载程序创建 boot_iso。只有当引导加载程序已签名并且可以验证用户镜像内核的数字签名时,此 boot_iso 才能在 UEFI 安全启动环境中启动用户镜像。

对于 HPE ProLiant Gen9 服务器,可以使用 iLO 系统实用程序 UI 注册公钥。请参阅 HP UEFI 系统实用程序用户指南 中的 访问 安全 启动 选项 部分。您还可以参考白皮书 HP ProLiant 服务器上的 Linux 安全启动 以获取更多详细信息。

有关最新信息,请参阅 iLO 驱动程序 wiki 页面

节点清理支持

硬件类型 iloilo5 支持节点清理。

有关节点清理的更多信息,请参阅 节点清理

支持的自动化清理操作

  • 支持的自动化清理操作是

    • reset_bios_to_default:将系统 ROM 设置重置为默认值。默认情况下,优先级为 10。此清理步骤仅支持 Gen9 及以上服务器。

    • reset_secure_boot_keys_to_default:将安全启动密钥重置为制造商的默认值。此步骤仅支持 Gen9 及以上服务器。默认情况下,优先级为 20。

    • reset_ilo_credential:重置 iLO 密码,如果 ilo_change_password 作为节点驱动程序信息的一部分指定。默认情况下,优先级为 30。

    • clear_secure_boot_keys:清除所有安全启动密钥。此步骤仅支持 Gen9 及以上服务器。默认情况下,此步骤已禁用。

    • reset_ilo:重置 iLO。默认情况下,此步骤已禁用。

    • erase_devices:一个机内清理步骤,对所有磁盘执行磁盘擦除,包括操作系统可见的磁盘以及 Smart Storage Administrator (SSA) 可见的原始磁盘。此步骤仅支持使用从 Ocata 版本开始的 diskimage-builder 创建的 ramdisk 的 Proliant 服务器上的 SSA 可见的原始磁盘擦除。默认情况下,此步骤已禁用。有关详细信息,请参阅 磁盘擦除支持

  • 有关支持的机内清理操作,请参阅 机内与机外

  • 所有自动化清理步骤都具有用于优先级的显式配置选项。为了禁用或更改自动化清理步骤的优先级,应在 ironic.conf 中更新相应配置选项的优先级。

  • 将清理步骤优先级更新为 0,将禁用该特定清理步骤,并且在自动化清理期间不会运行。

  • 自动化清理步骤的配置选项列在 ironic.conf 中的 [ilo][deploy] 部分下

    [ilo]
    clean_priority_reset_ilo=0
    clean_priority_reset_bios_to_default=10
    clean_priority_reset_secure_boot_keys_to_default=20
    clean_priority_clear_secure_boot_keys=0
    clean_priority_reset_ilo_credential=30
    
    [deploy]
    erase_devices_priority=0
    

有关节点自动化清理的更多信息,请参阅 自动化清理

支持的手动清理操作

  • 支持的手动清理操作是

    activate_license:

    激活 iLO 高级许可证。这是一个与 management 接口关联的机外手动清理步骤。有关用法,请参阅 将 iLO 高级许可证作为手动清理步骤激活。请注意,由于需要此类型的先进许可证才能使用虚拟媒体启动以开始清理操作,因此无法使用 ilo-virtual-media 启动接口执行此操作。虚拟媒体是一项高级功能。如果已经激活了高级许可证,并且用户想要覆盖当前的许可证密钥,例如在交付具有灵活数量套件的多服务器激活密钥或完成激活密钥协议 (AKA) 的情况下,则仍然可以使用驱动程序执行此清理步骤。

    clear_ca_certificates:

    删除 iLO 中的 CA 证书。有关用法,请参阅 删除 iLO 中的 CA 证书

    apply_configuration:

    将给定的 BIOS 设置应用于节点。请参阅 BIOS 配置支持。此步骤是 bios 接口的一部分。

    factory_reset:

    将节点 BIOS 设置重置为出厂默认值。请参阅 BIOS 配置支持。此步骤是 bios 接口的一部分。

    create_configuration:

    将 RAID 配置应用于节点。有关详细信息,请参阅 RAID 配置。此步骤是 raid 接口的一部分。

    delete_configuration:

    删除节点上的 RAID 配置。有关详细信息,请参阅 RAID 配置。此步骤是 raid 接口的一部分。

    update_firmware:

    更新设备的固件。也是与 management 接口关联的机外步骤。有关用法,请参阅 将固件更新作为手动清理步骤启动。支持固件更新的设备是:ilocpldpower_picbioschassis。请参阅下表了解其常用说明。

    设备

    描述

    ilo

    HPE ProLiant 服务器的 BMC

    cpld

    系统可编程逻辑设备

    power_pic

    电源管理控制器

    bios

    HPE ProLiant 系统 ROM

    chassis

    系统底板设备

    某些设备的固件无法通过此方法更新,例如:存储控制器、主机总线适配器、磁盘驱动器固件、网络接口和 Onboard Administrator (OA)。

    update_firmware_sum:

    使用 Smart Update Manager (SUM) 更新所有或用户指定的固件组件。这是一个与 management 接口关联的机内步骤。有关用法,请参阅 基于 Smart Update Manager (SUM) 的固件更新

    security_parameters_update:

    更新安全参数。有关用法,请参阅 更新安全参数。此清理步骤支持的安全参数是:Password_ComplexityRequiredLoginForiLORBSUIPMI/DCMI_Over_LANRequireHostAuthenticationSecure_Boot

    update_minimum_password_length:

    更新最小密码长度安全参数。有关用法,请参阅 更新最小密码长度安全参数

    update_auth_failure_logging_threshold:

    更新身份验证失败日志安全参数。有关用法,请参阅 更新身份验证失败日志安全参数

    create_csr:

    创建证书签名请求。有关用法,请参阅 创建证书签名请求 (CSR) 作为手动清理步骤

    add_https_certificate:

    将签名的 HTTPS 证书添加到 iLO。有关用法,请参阅 添加 HTTPS 证书作为手动清理步骤

  • iLO 固件版本 1.5 是支持所有操作的最低要求。

有关节点手动清理的更多信息,请参阅 手动清理

节点部署自定义

硬件类型 iloilo5 支持通过部署模板自定义节点部署,请参阅 使用部署步骤和模板

支持的部署步骤是

  • apply_configuration:

    将给定的 BIOS 设置应用于节点。请参阅 BIOS 配置支持。此步骤是 bios 接口的一部分。

  • factory_reset:

    将节点 BIOS 设置重置为出厂默认值。请参阅 BIOS 配置支持。此步骤是 bios 接口的一部分。

  • reset_bios_to_default:

    将系统 ROM 设置重置为默认值。此步骤仅支持 Gen9 及以上服务器。此步骤是 management 接口的一部分。

  • reset_secure_boot_keys_to_default:

    将安全启动密钥重置为制造商的默认值。此步骤仅支持 Gen9 及以上服务器。此步骤是 management 接口的一部分。

  • reset_ilo_credential:

    重置 iLO 密码。需要在步骤的 ilo_password 参数中指定密码。此步骤是 management 接口的一部分。

  • clear_secure_boot_keys:

    清除所有安全启动密钥。此步骤仅支持 Gen9 及以上服务器。此步骤是 management 接口的一部分。

  • reset_ilo:

    重置 iLO。此步骤是 management 接口的一部分。

  • update_firmware:

    更新设备的固件。此步骤是 management 接口的一部分。请参阅 将固件更新作为手动清理步骤启动,获取有关用法的用户指南。支持固件更新的设备包括:ilocpldpower_picbioschassis。此步骤是 management 接口的一部分。请参阅下表获取其常用描述。

    设备

    描述

    ilo

    HPE ProLiant 服务器的 BMC

    cpld

    系统可编程逻辑设备

    power_pic

    电源管理控制器

    bios

    HPE ProLiant 系统 ROM

    chassis

    系统底板设备

    某些设备的固件无法通过此方法更新,例如:存储控制器、主机总线适配器、磁盘驱动器固件、网络接口和 Onboard Administrator (OA)。

  • flash_firmware_sum:

    使用 Smart Update Manager (SUM) 更新所有或用户指定的固件组件。这是一个与 management 接口关联的机内步骤。有关用法,请参阅 基于 Smart Update Manager (SUM) 的固件更新

  • apply_configuration:

    将 RAID 配置应用于节点。有关详细信息,请参阅 RAID 配置。此步骤是 raid 接口的一部分。

使用 Compute 服务中的部署模板示例

创建一个包含单个步骤的部署模板

baremetal deploy template create \
    CUSTOM_HYPERTHREADING_ON \
    --steps '[{"interface": "bios", "step": "apply_configuration", "args": {"settings": [{"name": "ProcHyperthreading", "value": "Enabled"}]}, "priority": 150}]'

将 trait CUSTOM_HYPERTHREADING_ON 添加到由 $node_ident 表示的节点

baremetal node add trait $node_ident CUSTOM_HYPERTHREADING_ON

使用以下属性更新 Compute 服务中的 flavor bm-hyperthreading-on

openstack flavor set --property trait:CUSTOM_HYPERTHREADING_ON=required bm-hyperthreading-on

使用此 flavor 创建 Compute 实例将确保该实例仅调度到具有 CUSTOM_HYPERTHREADING_ON trait 的 Bare Metal 节点。当使用 bm-hyperthreading-on flavor 创建实例时,部署模板 CUSTOM_HYPERTHREADING_ON 的部署步骤将在调度节点的部署期间执行,从而在节点的 BIOS 配置中启用超线程。

硬件检查支持

硬件类型 ilo 支持硬件检查。

注意

  • 如果存储是直连存储,则 RIBCL/RIS 仅在 RAID 预配置到存储时才返回磁盘大小。如果存储是直连存储,则 RIBCL/RIS 无法获取磁盘大小。

  • SNMPv3 检查获取所有类型存储的磁盘大小。如果 RIBCL/RIS 无法获取磁盘大小并且请求了 SNMPv3 检查,则 proliantutils 会执行 SNMPv3 检查以获取磁盘大小。如果 proliantutils 无法获取磁盘大小,则会引发错误。此功能在 proliantutils 发布版本 >= 2.2.0 中可用。

  • iLO 必须使用 SNMPv3 身份验证详细信息进行更新。请参阅 HPE iLO4 用户指南 中的 SNMPv3 Authentication 部分,了解有关在 iLO 上设置身份验证详细信息的信息。SNMPv3 检查的 driver_info 中必须提供以下参数

    • snmp_auth_user:SNMPv3 用户。

    • snmp_auth_prot_password:身份验证协议密码。

    • snmp_auth_priv_password:隐私协议密码。

    以下参数是 SNMPv3 检查的可选参数

    • snmp_auth_protocol:身份验证协议。有效值为“MD5”和“SHA”。iLO 默认值为“MD5”。

    • snmp_auth_priv_protocol:隐私协议。有效值为“AES”和“DES”。iLO 默认值为“DES”。

检查过程将发现以下属性

  • memory_mb:内存大小

  • cpu_arch:cpu 架构

  • local_gb:磁盘大小

检查还可以发现 iLO 驱动程序的以下额外功能

  • ilo_firmware_version:iLO 固件版本

  • rom_firmware_version:ROM 固件版本

  • secure_boot:是否支持安全启动。可能的值为“true”或“false”。如果服务器支持安全启动,则返回的值为“true”。

  • server_model:服务器型号

  • pci_gpu_devices:连接到裸机 GPU 设备的数量。

  • nic_capacity:嵌入式 NIC 适配器的最大速度。

  • sriov_enabled:如果服务器具有支持 SRIOV 的 NIC,则为 true。

  • has_rotational:如果服务器具有 HDD 磁盘,则为 true。

  • has_ssd:如果服务器具有 SSD 磁盘,则为 true。

  • has_nvme_ssd:如果服务器具有 NVME SSD 磁盘,则为 true。

  • cpu_vt:如果服务器支持 cpu 虚拟化,则为 true。

  • hardware_supports_raid:如果可以使用 RAID 控制器在服务器上配置 RAID,则为 true。

  • nvdimm_n:如果服务器具有 NVDIMM_N 类型的持久内存,则为 true。

  • persistent_memory:如果服务器具有持久内存,则为 true。

  • logical_nvdimm_n:如果服务器配置了逻辑 NVDIMM_N,则为 true。

  • rotational_drive_<speed>_rpm:功能 rotational_drive_4800_rpmrotational_drive_5400_rpmrotational_drive_7200_rpmrotational_drive_10000_rpmrotational_drive_15000_rpm 如果服务器具有 4800、5400、7200、10000 和 15000 rpm 速度的 HDD 驱动器,则设置为 true。

  • logical_raid_level_<raid_level>:功能 logical_raid_level_0logical_raid_level_1logical_raid_level_2logical_raid_level_5logical_raid_level_6logical_raid_level_10logical_raid_level_50logical_raid_level_60 如果系统中配置了 0、1、2、5、6、10、50 和 60 任何一种 RAID 级别,则设置为 true。

  • overall_security_statusOkRiskIgnored,由 iLO 安全仪表板返回。iLO 通过评估每个安全参数的安全状态来计算整体安全状态。管理员需要修复实际参数,然后重新检查,以便 iLO 可以重新计算整体安全状态。如果所有 security_statusRisk 的安全参数都将 Ignore 字段设置为 True,则 iLO 将整体安全状态值设置为 Ignored。所有安全参数必须将 security_status 设置为 Ok,才能使 overall_security_status 的值为 Ok

  • last_firmware_scan_statusOkRisk,由 iLO 安全仪表板返回。这表示系统上完成的最后一次固件扫描的安全状态。如果为 Risk,建议运行清理步骤 update_firmware_sum,而无需指定任何固件组件,以便使用最新的 SPP(服务提供商包)ISO 更新所有组件的固件,然后重新检查以获取安全状态。

  • security_override_switchOkRisk,由 iLO 安全仪表板返回。这使用凭据禁用/启用登录到 iLO。只能通过物理访问裸机来切换此设置。

  • gpu_<vendor>_count:整数值。功能名称动态形成,即 gpu_<vendor>_count。供应商名称在“<vendor>”中被替换。如果硬件未返回供应商名称,则十六进制形式的供应商 ID 将被替换到功能名称中。示例:{‘gpu_Nvidia_count’: 1}、{‘gpu_0x102b_count’: 1}。

  • gpu_<vendor_device_name>_count:整数值。功能名称通过替换 iLO 返回的 gpu 设备名称为“<vendor_device_name>”动态形成。示例:{‘gpu_Nvidia_Tesla_M10_count’: 1}、{‘gpu_Embedded_Video_Controller_count’: 1}

  • gpu_<vendor_device_name>:布尔值。功能名称通过替换 iLO 返回的 gpu 设备名称为“<vendor_device_name>”动态形成。示例:{‘gpu_Nvidia_Tesla_M10’: True}、{‘gpu_Embedded_Video_Controller’: True}

    注意

    • 仅当 conductor 上的 ipmitool 版本 >= 1.8.15 时,才能发现功能 nic_capacity。可以从 此处 下载最新版本。

    • iLO 固件版本需要为 2.10 或更高版本才能发现 nic_capacity。

    • 要发现基于 IPMI 的属性,需要在 iLO4iLO5 管理引擎上启用 iLO 功能“LAN 上的 IPMI/DCMI 访问”。

    • proliantutils 仅返回 Gen10 ProLiant HPE 服务器的活动 NIC。对于 Gen8 和 Gen9 服务器,用户需要删除与不活动 NIC 对应的 ironic 端口,因为 proliantutils 返回所有发现的 NIC(活动和非活动),并且为所有 NIC 创建 ironic 端口。检查日志记录警告,如果正在检查的节点是 Gen8 或 Gen9。

    • 安全仪表板功能仅适用于 Gen10 ProLiant HPE 服务器及更高版本。要修复安全仪表板参数的值从 RiskOk,用户需要单独修复参数并重新检查,以查看参数的安全状态。

操作员可以在 nova flavor 中指定这些功能,以选择用于调度的节点

openstack flavor set my-baremetal-flavor --property capabilities:server_model="<in> Gen8"

openstack flavor set my-baremetal-flavor --property capabilities:nic_capacity="10Gb"

openstack flavor set my-baremetal-flavor --property capabilities:ilo_firmware_version="<in> 2.10"

openstack flavor set my-baremetal-flavor --property capabilities:has_ssd="true"

请参阅 功能发现,了解更多详细信息和示例。

中间镜像的 Swiftless 部署

具有 ilo-virtual-media 作为启动接口的硬件类型 ilo 可以在使用或不使用 swift 来托管中间临时软盘镜像(包含部署内核和 ramdisk 的元数据)和启动 ISO 的情况下部署和启动服务器。需要在每个 conductor 节点上配置本地 HTTP(S) Web 服务器。请参阅 Conductor 上的 Web 服务器配置,了解更多信息。为了通过 HTTPS 以加密通道发送管理信息和镜像,需要启用 HTTPS Web 服务器(而不是 HTTP Web 服务器)。

注意

此功能假定用户输入位于使用 swift 作为后端的 Glance 中。如果需要消除 swift 依赖项,请参阅 基于 HTTP(S) 的部署支持

部署过程

请参阅 中间镜像的 Swiftless 部署

基于 HTTP(S) 的部署支持

driver_info 中给出的镜像用户输入,如 deploy_isodeploy_kerneldeploy_ramdisk,以及在 instance_info 中给出的镜像用户输入,如 image_sourcekernelramdiskboot_iso,也可以作为 HTTP(S) URL 提供。

HTTP(S) Web 服务器可以以多种方式配置。对于 Ubuntu 上的 Apache Web 服务器,请参阅 此处。Web 服务器可以位于与 conductor 节点不同的系统上,但其 URL 必须可被 conductor 和裸机节点访问。

部署过程

请参阅 基于 HTTP(S) 的部署

支持使用独立 Ironic 的 iLO 驱动程序

可以将 ironic 作为独立服务使用,而无需其他 OpenStack 服务。ilo 硬件类型可以用于独立 ironic。本文档将此功能称为 iLO driver with standalone ironic

配置

需要按照 基于 HTTP(S) 的部署支持Conductor 上的 Web 服务器配置 中所述配置 HTTP(S) Web 服务器,并按照 中间镜像的 Swiftless 部署 中所述配置用于托管 Conductor 上的中间镜像。

部署过程

用于分区镜像的 Glance 和 Swift

../../_images/glance-and-swift-for-partition-images.svg

使用整个磁盘镜像的 Glance 和 Swift

../../_images/glance-and-swift-whole-disk-images.svg

Swiftless 部署

../../_images/swiftless-deploy.svg

基于 HTTP(S) 的部署

../../_images/https-based-deploy.svg

独立 ironic

../../_images/standalone-ironic.svg

将 iLO 高级许可证作为手动清理步骤激活

iLO 驱动程序可以将 iLO 高级许可证密钥作为手动清理步骤激活。只有当节点处于 manageable 状态时,才能启动任何手动清理步骤。完成手动清理后,节点将再次置于 manageable 状态。用户可以按照 手动清理 中的步骤,在节点上启动手动清理操作。

一个只有 activate_license 作为唯一清理步骤的手动清理步骤示例可能是

"clean_steps": [{
    "interface": "management",
    "step": "activate_license",
    "args": {
        "ilo_license_key": "ABC12-XXXXX-XXXXX-XXXXX-YZ345"
    }
}]

不同属性的 activate_license 清理步骤如下

属性

描述

接口

清理步骤的接口,这里是 management

步骤

清理步骤的名称,这里是 activate_license

参数

传递给清理步骤的关键字参数条目(<name>:<value>)

args.ilo_license_key

用于激活企业功能的 iLO 高级许可证密钥。这是必需的。

将 CA 证书从 iLO 中删除作为手动清理步骤

iLO 驱动程序可以将无效的 CA 证书作为手动步骤删除。任何手动清理步骤都只能在节点处于 manageable 状态时启动。手动清理完成后,节点将再次置于 manageable 状态。用户可以按照 手动清理 中的步骤启动节点上的手动清理操作。

一个只包含 clear_ca_certificates 作为唯一清理步骤的手动清理步骤示例是

"clean_steps": [{
    "interface": "management",
    "step": "clear_ca_certificates",
    "args": {
        "certificate_files" : ["/path/to/certsA", "/path/to/certsB"]
    }
}]

不同属性的 clear_ca_certificates 清理步骤如下

属性

描述

接口

清理步骤的接口,这里是 management

步骤

清理步骤的名称,这里是 clear_ca_certificates

参数

传递给清理步骤的关键字参数条目(<name>:<value>)

args.certificate_files

要删除的 CA 证书列表。

这是必需的。

启动固件更新作为手动清理步骤

iLO 驱动程序可以将安全固件更新作为手动清理步骤调用。任何手动清理步骤都只能在节点处于 manageable 状态时启动。手动清理完成后,节点将再次置于 manageable 状态。用户可以按照 手动清理 中的步骤启动节点上的手动清理操作。

一个只包含 update_firmware 作为唯一清理步骤的手动清理步骤示例是

"clean_steps": [{
    "interface": "management",
    "step": "update_firmware",
    "args": {
        "firmware_update_mode": "ilo",
        "firmware_images":[
            {
                "url": "file:///firmware_images/ilo/1.5/CP024444.scexe",
                "checksum": "a94e683ea16d9ae44768f0a65942234d",
                "component": "ilo"
            },
            {
                "url": "swift://firmware_container/cpld2.3.rpm",
                "checksum": "<md5-checksum-of-this-file>",
                "component": "cpld"
            },
            {
                "url": "http://my_address:port/firmwares/bios_vLatest.scexe",
                "checksum": "<sha256-checksum-of-this-file>",
                "component": "bios"
            },
            {
                "url": "https://my_secure_address_url/firmwares/chassis_vLatest.scexe",
                "checksum": "<sha512-checksum-of-this-file>",
                "component": "chassis"
            },
            {
                "url": "file:///home/ubuntu/firmware_images/power_pic/pmc_v3.0.bin",
                "checksum": "<sha256-checksum-of-this-file>",
                "component": "power_pic"
            }
        ]
    }
}]

不同属性的 update_firmware 清理步骤如下

属性

描述

接口

清理步骤的接口,这里是 management

步骤

清理步骤的名称,这里是 update_firmware

参数

传递给清理步骤的关键字参数条目(<name>:<value>)

args.firmware_update_mode

带外固件更新的模式(或机制)。支持的值是 ilo。这是必需的。

args.firmware_images

要刷写的镜像的有序字典列表。这是必需的。

每个固件镜像块都由一个字典(JSON)表示,形式如下

{
  "url": "<url of firmware image file>",
  "checksum": "<SHA256, SHA512, or MD5 checksum of firmware image file to verify the image>",
  "component": "<device on which firmware image will be flashed>"
}

固件镜像块中的所有字段都是必需的。

  • 支持的不同类型的固件 URL 方案是:filehttphttpsswift

    注意

    此功能假定在使用 file URL 方案时,文件路径位于控制节点的 conductor 上。

    注意

    swift URL 方案假定 service 项目的 swift 帐户。service 项目(租户)是在 Keystone 系统中创建的特殊项目,专供核心 OpenStack 服务使用。当 Ironic 使用 Swift 进行存储时,帐户通常是 service,容器通常是 ironic,而 ilo 驱动程序使用名为 ironic_ilo_container 的容器用于自己的目的。

    注意

    在使用带有 .rpm 扩展名的固件文件时,请确保 conductor 上存在 rpm2cpiocpio 命令,因为它们用于从软件包中提取固件镜像。

  • 可以更新的固件组件是:ilocpldpower_picbioschassis

  • 固件镜像将按照操作员给定的顺序更新。如果在处理提供的固件镜像列表中的任何固件镜像时发生任何错误,则不会发生任何固件更新。处理错误可能发生在镜像下载、镜像校验和验证或镜像提取期间。逻辑是处理每个固件文件并仅在所有文件都成功处理后才在设备上更新它们。如果在更新(上传和刷写)过程中更新失败,则列表中的剩余更新(如果有)将被中止。但是,建议对失败进行分类和修复,然后重新尝试手动清理步骤 update_firmware 以进行中止的 firmware_images

    固件已成功更新的设备将开始使用其新更新的固件运行。

  • 作为整个过程的故障排除指南,请仔细检查 Ironic conductor 日志,查看是否有任何固件处理或更新相关的错误,这些错误可能有助于根本原因分析或了解事情停留在哪里或失败的原因。然后您可以修复或解决问题并再次尝试。更新失败的常见原因是固件镜像文件的 HPE 安全数字签名检查失败。

  • 要计算图像文件的 sha256 校验和,可以使用以下命令

    $ sha256sum image.rpm
    24f6abba6fb6921b05afdb4f9a671aed72af3add90c912b5e3989f51f1b359e5  image.rpm
    

基于 Smart Update Manager (SUM) 的固件更新

基于 SUM 的固件更新是 iLO 驱动程序支持的带内清理/部署步骤。固件更新在节点上的所有或用户指定的固件组件上执行。请参阅 SUM 用户指南 以获取有关基于 SUM 的固件更新的更多信息。

注意

update_firmware_sum 清理步骤需要带有 Proliant Hardware Manager 的 agent ramdisk,来自 proliantutils 2.5.0 或更高版本。请参阅 DIB 对 Proliant Hardware Manager 的支持 以创建带有 Proliant Hardware Manager 的 agent ramdisk。

注意

flash_firmware_sum 部署步骤需要带有 Proliant Hardware Manager 的 agent ramdisk,来自 proliantutils 2.9.5 或更高版本。请参阅 DIB 对 Proliant Hardware Manager 的支持 以创建带有 Proliant Hardware Manager 的 agent ramdisk。

update_firmware_sum/flash_firmware_sum 步骤的属性如下

属性

描述

接口

清理步骤的接口,这里是 management

步骤

清理步骤的名称,这里是 update_firmware_sum

参数

传递给清理步骤的关键字参数条目

用于该步骤的关键字参数如下

  • url:SPP(适用于 Proliant 的服务包)ISO 的 URL。这是必需的。支持的 URL 方案是 httphttpsswift

  • checksum:用于验证镜像的 SPP ISO 的 MD5 校验和。这是必需的。

  • components:要刷写的固件组件的文件名列表。这是可选的。如果未提供,则固件更新将在所有固件组件上执行。

该步骤对所有或列表中的固件组件执行更新,并返回 SUM 日志文件。日志文件包括 hpsum_log.txthpsum_detail_log.txt,其中包含有关固件组件、每个组件的固件版本及其更新状态的信息。日志对象将按照以下模式命名

<node>[_<instance-uuid>]_update_firmware_sum_<timestamp yyyy-mm-dd-hh-mm-ss>.tar.gz
or
<node>[_<instance-uuid>]_flash_firmware_sum_<timestamp yyyy-mm-dd-hh-mm-ss>.tar.gz

有关更多信息,请参阅 检索部署 ramdisk 日志,了解有关启用和查看从 ramdisk 返回的日志的信息。

update_firmware_sum 清理步骤的示例

{
    "interface": "management",
    "step": "update_firmware_sum",
    "args":
        {
            "url": "http://my_address:port/SPP.iso",
            "checksum": "abcdefxyz",
            "components": ["CP024356.scexe", "CP008097.exe"]
        }
}

如果步骤参数处理中出现任何错误,该步骤将失败。处理错误可能发生在组件文件扩展名验证、镜像下载、镜像校验和验证或镜像提取期间。如果发生故障,请仔细检查 Ironic conductor 日志,查看是否有任何验证或固件处理相关的错误,这些错误可能有助于根本原因分析或了解事情停留在哪里或失败的原因。然后您可以修复或解决问题并再次尝试。

警告

此功能仅正式支持 RHEL 和 SUSE 基于 IPA ramdisk。有关特定 SUM 版本支持的操作系统版本,请参阅 SUM

注意

有关获取 SPP(适用于 ProLiant 的服务包)ISO 的步骤,请参阅 SPP ISO 指南

将安全参数更新为手动清理步骤

iLO 驱动程序可以将安全参数更新作为手动清理步骤调用。任何手动清理步骤都只能在节点处于 manageable 状态时启动。手动清理完成后,节点将再次置于 manageable 状态。用户可以按照 手动清理 中的步骤启动节点上的手动清理操作。此功能仅支持基于 iLO5 的硬件。

一个只包含 security_parameters_update 作为唯一清理步骤的手动清理步骤示例是

"clean_steps": [{
    "interface": "management",
    "step": "security_parameters_update",
    "args": {
        "security_parameters":[
            {
                "param": "password_complexity",
                "enable": "True",
                "ignore": "False"
            },
            {
                "param": "require_login_for_ilo_rbsu",
                "enable": "True",
                "ignore": "False"
            },
            {
                "param": "ipmi_over_lan",
                "enable": "True",
                "ignore": "False"
            },
            {
                "param": "secure_boot",
                "enable": "True",
                "ignore": "False"
            },
            {
                "param": "require_host_authentication",
                "enable": "True",
                "ignore": "False"
            }
        ]
    }
}]

security_parameters_update 清理步骤的不同属性如下

属性

描述

接口

清理步骤的接口,这里是 management

步骤

清理步骤的名称,这里是 security_parameters_update

参数

传递给清理步骤的关键字参数条目(<name>:<value>)

args.security_parameters

要更新的安全参数的有序字典列表。这是必需的。

每个安全参数块都由一个字典(JSON)表示,形式如下

{
  "param": "<security parameter name>",
  "enable": "security parameter to be enabled/disabled",
  "ignore": "security parameter status to be ignored or not"
}

在所有这些字段中,param 字段是必需的。其余字段是布尔值,是可选的。如果用户未传递任何值,则对于 enable 字段,默认值为 True,对于 ignore 字段,默认值为 False。

  • 此清理步骤支持的安全参数是:Password_ComplexityRequiredLoginForiLORBSURequireHostAuthenticationIPMI/DCMI_Over_LANSecure_Boot

将更新最小密码长度安全参数作为手动清理步骤

iLO 驱动程序可以将 Minimum Password Length 安全参数更新作为手动清理步骤调用。此功能仅支持基于 iLO5 的硬件。

一个只包含 update_minimum_password_length 作为唯一清理步骤的手动清理步骤示例是

"clean_steps": [{
    "interface": "management",
    "step": "update_minimum_password_length",
    "args": {
        "password_length": "8",
        "ignore": "False"
    }
}]

这两个参数 password_lengthignore 都是可选的。password_length 的接受值是 0 到 39。如果用户未传递任何值,则 password_length 的默认值将为 8,ignore 的默认值为 False。

将更新身份验证失败日志安全参数作为手动清理步骤

iLO 驱动程序可以将 Authentication Failure Logging 安全参数更新作为手动清理步骤调用。此功能仅支持基于 iLO5 的硬件。

一个只包含 Authentication Failure Logging 作为唯一清理步骤的手动清理步骤示例是

"clean_steps": [{
    "interface": "management",
    "step": "update_auth_failure_logging_threshold",
    "args": {
        "logging_threshold": "1",
        "ignore": "False"
    }
}]

logging_threshold 和 ignore 参数都是可选的。logging_threshold 的有效值为 0 到 5。如果用户未传递任何值,logging_threshold 的默认值为 1,ignore 的默认值为 False。如果用户将 logging_threshold 的值设置为 0,则将禁用身份验证失败日志记录安全参数。

创建证书签名请求 (CSR) 作为手动清理步骤

iLO 驱动程序可以将 create_csr 请求作为手动清理步骤调用。此步骤仅支持基于 iLO5 的硬件。

一个包含 create_csr 作为唯一清理步骤的手动清理步骤示例可能是

"clean_steps": [{
    "interface": "management",
    "step": "create_csr",
    "args": {
        "csr_params": {
            "City": "Bengaluru",
            "CommonName": "1.1.1.1",
            "Country": "India",
            "OrgName": "HPE",
            "State": "Karnataka"
        }
    }
}]

ironic.conf 中,ilo.cert_path 选项用作创建 CSR 的目录路径,默认值为 /var/lib/ironic/ilo。CSR 在 ilo.cert_path 中指定的目录位置的 node_uuid 目录中创建为 <node_uuid>.csr。

添加 HTTPS 证书作为手动清理步骤

iLO 驱动程序可以将 add_https_certificate 请求作为手动清理步骤调用。此步骤仅支持基于 iLO5 的硬件。

一个包含 add_https_certificate 作为唯一清理步骤的手动清理步骤示例可能是

"clean_steps": [{
    "interface": "management",
    "step": "add_https_certificate",
    "args": {
        "cert_file": "/test1/iLO.crt"
    }
}]

参数 cert_file 是必需的。 cert_file 接受证书文件的路径或 URL。支持的 URL 方案包括:filehttphttps。在步骤 create_csr 中生成的 CSR 需要由有效的 CA 签名,并将生成的 HTTPS 证书提供在 cert_file 中。它将 cert_file 复制到 ilo.cert_path 下的 node.uuid 作为 <node_uuid>.crt,然后将其添加到 iLO。

RAID 支持

iLO 驱动程序支持机内 RAID 功能。有关更多信息,请参阅 RAID 配置。在成功配置 RAID 后,Bare Metal 服务使用以下信息更新节点:

  • 节点 properties/local_gb 设置为根卷的大小。

  • 节点 properties/root_device 填充有根卷的 wwn 详细信息。它由 iLO 驱动程序在配置期间用作根设备提示。

  • 根卷的 RAID 等级值作为 raid_level 功能添加到节点 properties 字段中的 capabilities 参数中。操作员可以在 nova flavor 中指定 raid_level 功能,以选择用于调度的节点

    openstack flavor set ironic-test --property capabilities:raid_level="1+0"
    openstack server create --flavor ironic-test --image test-image instance-1
    

Proliant 硬件管理器 (DIB) 支持

安装 ironic-python-agent-builder

要使用 Proliant Hardware Manager 创建代理 ramdisk,请在 DIB 中使用 proliant-tools 元素

ironic-python-agent-builder -o proliant-agent-ramdisk -e proliant-tools fedora

磁盘擦除支持

erase_devices 是 iLO 驱动程序支持的机内清理步骤。它擦除所有磁盘,包括操作系统可见的磁盘以及对 Smart Storage Administrator (SSA) 可见的原始磁盘。

此机内清理步骤需要从版本 2.60-19.0 开始的 ssacli 工具,才能对物理磁盘执行擦除。有关 ssacli 工具和 SSA 支持的不同擦除方法的更多信息,请参阅 ssacli 文档

通过 shred 进行的磁盘擦除用于擦除操作系统可见的磁盘,其实现位于 Ironic Python Agent 中。连接到 Smart Storage Controller 的原始磁盘使用 Sanitize 擦除进行擦除,Sanitize 擦除是 ssacli 支持的擦除方法。如果 Smart Storage Controller 不支持 Sanitize 擦除,则使用一次性擦除(用零覆盖)擦除磁盘。

当代理 ramdisk 包含来自 proliantutils 版本 2.3.0 或更高版本的 Proliant Hardware Manager 时,支持此清理步骤。此清理步骤是自动化清理的一部分,默认情况下已禁用。有关启用/禁用清理步骤的更多信息,请参阅 机内与机外

安装 ironic-python-agent-builder

要使用 Proliant Hardware Manager 创建代理 ramdisk,请在 DIB 中使用 proliant-tools 元素

ironic-python-agent-builder -o proliant-agent-ramdisk -e proliant-tools fedora

有关使用 proliant-tools 元素在 DIB 中创建代理 ramdisk 的更多信息,请参阅 proliant-tools

基于固件的 UEFI iSCSI 从卷启动支持

使用 Gen9(UEFI 固件版本 1.40 或更高版本)和 Gen10 HPE Proliant 服务器,驱动程序支持基于固件的 UEFI 启动 iSCSI cinder 卷。

此功能要求将节点配置为以 UEFI 启动模式启动,并且用户镜像应该是 UEFI 可启动镜像,并且交换机配置中需要启用 PortFast 以实现立即生成树转发状态,从而不会花费太多时间将 iSCSI 目标设置为持久设备。

当处于 bios 启动模式时,驱动程序不支持此功能。如果节点配置为使用 ilo-pxeilo-ipxe 作为启动接口,并且裸机配置的启动模式为 bios,则使用 iPXE 执行从卷的 iscsi 启动。有关更多详细信息,请参阅 从卷启动

要使用此功能,请将裸机的启动模式配置为 uefi,并使用 从卷启动 中给出的步骤配置相应的 ironic 节点。在配置为以 biosuefi 启动模式配置的云环境中,虚拟介质驱动程序仅支持 uefi 启动模式,并且同时使用 iscsi 启动和 bios 卷会导致错误。

BIOS 配置支持

iloilo5 硬件类型支持 ilo BIOS 接口。该支持包括提供手动清理步骤 *apply_configuration* 和 *factory_reset* 以管理节点上支持的 BIOS 设置。有关更多详细信息和示例,请参阅 BIOS 配置

注意

在 Stein 版本发布之前,用户需要手动重新启动节点才能使设置生效。从 Stein 版本开始,iLO 驱动程序在运行与 BIOS 配置相关的清理步骤后会重新启动节点。BIOS 设置被缓存,只有在所有请求的设置均未出现故障的情况下,清理步骤才会被标记为成功。如果任何设置的应用失败,则清理步骤将被标记为失败,并且设置不会被缓存。

配置

以下是受支持的 BIOS 设置及其对每个设置的简要说明。有关详细说明,请参阅 HPE Integrated Lights-Out REST API 文档

  • AdvancedMemProtection:配置具有 ECC(纠错码)的附加内存保护。允许的值为 AdvancedEccOnlineSpareAdvancedEccMirroredAdvancedEcc

  • AutoPowerOn:配置服务器在将交流电源施加到系统时自动上电。允许的值为 AlwaysPowerOnAlwaysPowerOffRestoreLastState

  • BootMode:选择系统的启动模式。允许的值为 UefiLegacyBios

  • BootOrderPolicy:配置系统在未找到可启动设备时尝试启动设备的策略。允许的值为 RetryIndefinitelyAttemptOnceResetAfterFailed

  • CollabPowerControl:启用操作系统请求处理器频率更改,即使服务器上配置为动态节能模式的电源调节器选项也是如此。允许的值为 EnabledDisabled

  • DynamicPowerCapping:配置系统 ROM 在启动过程中执行电源校准的时间。允许的值为 EnabledDisabledAuto

  • DynamicPowerResponse:启用系统 BIOS 以根据处理器工作负载控制处理器性能和电源状态。允许的值为 FastSlow

  • IntelligentProvisioning:启用或禁用智能配置功能。允许的值为 EnabledDisabled

  • IntelPerfMonitoring:公开可与 Intel 性能监视工具包一起使用的某些芯片组设备。允许的值为 EnabledDisabled

  • IntelProcVtd:支持此选项的虚拟机监控程序或操作系统可以使用 Intel 虚拟化技术提供的硬件功能,用于直接 I/O。允许的值为 EnabledDisabled

  • IntelQpiFreq:将 QPI 链路频率设置为较低的速度。允许的值为 AutoMinQpiSpeed

  • IntelTxt:修改 Intel TXT 支持的选项。允许的值为 EnabledDisabled

  • PowerProfile:设置要使用的电源配置文件。允许的值为 BalancedPowerPerfMinPowerMaxPerfCustom

  • PowerRegulator:确定如何调节功耗。允许的值为 DynamicPowerSavingsStaticLowPowerStaticHighPerfOsControl

  • ProcAes:启用或禁用处理器中的高级加密标准指令集 (AES-NI)。允许的值为 启用禁用

  • ProcCoreDisable:使用 Intel 的 Core 多处理 (CMP) 技术禁用处理器核心。允许的值为范围在 024 的整数。

  • ProcHyperthreading:启用或禁用 Intel 超线程技术。允许的值为 启用禁用

  • ProcNoExecute:保护您的系统免受恶意代码和病毒的侵害。允许的值为 启用禁用

  • ProcTurbo:如果处理器有可用功率并且在温度规格范围内,则启用处理器以使用 Turbo Boost 技术过渡到高于处理器额定速度的频率。允许的值为 启用禁用

  • ProcVirtualization:启用或禁用支持此选项的超visor 或操作系统以使用 Intel 虚拟化技术提供的硬件功能。允许的值为 启用禁用

  • SecureBootStatus:安全启动配置的当前状态。允许的值为 启用禁用

    注意

    此设置是只读的,不能使用 apply_configuration 清理步骤进行修改。

  • Sriov:如果启用,SR-IOV 支持使 hypervisor 能够创建 PCI-express 设备的虚拟实例,从而可能提高性能。如果启用,BIOS 会为 PCI-express 设备分配额外的资源。允许的值为 启用禁用

  • ThermalConfig:选择系统的风扇冷却解决方案。允许的值为 OptimalCoolingIncreasedCoolingMaxCooling

  • ThermalShutdown:控制系统对警告级别热事件的反应。允许的值为 启用禁用

  • TpmState:当前 TPM 设备的狀態。允许的值为 NotPresentPresentDisabledPresentEnabled

    注意

    此设置是只读的,不能使用 apply_configuration 清理步骤进行修改。

  • TpmType:当前 TPM 设备的类型。允许的值为 NoTpmTpm12Tpm20Tm10

    注意

    此设置是只读的,不能使用 apply_configuration 清理步骤进行修改。

  • UefiOptimizedBoot:启用或禁用系统 BIOS 使用本机 UEFI 图形驱动程序进行启动。允许的值为 启用禁用

  • WorkloadProfile:更改工作负载配置文件以适应您所需的工作负载。允许的值为 GeneralPowerEfficientComputeGeneralPeakFrequencyComputeGeneralThroughputComputeVirtualization-PowerEfficientVirtualization-MaxPerformanceLowLatencyMissionCriticalTransactionalApplicationProcessingHighPerformanceComputeDecisionSupportGraphicProcessingI/OThroughputCustom

    注意

    此设置仅适用于配备 iLO 5 管理系统的 ProLiant Gen10 服务器。

基于证书的 iLO 验证

驱动程序支持验证 HPE Proliant 服务器上的证书。需要在节点 driver_info 中的 ca_file 中适当地设置证书文件的路径。要将 SSL 证书更新到 iLO,请参阅 HPE Integrated Lights-Out Security Technology Brief。在生成证书签名请求 (CSR) 时,使用 iLO 主机名或 IP 地址作为“通用名称 (CN)”。在将节点注册到 Bare Metal 服务时,使用与 ilo_address 相同的值,以避免与主机名不匹配相关的 SSL 证书验证错误。

救援模式支持

硬件类型 ilo 支持救援功能。救援操作可用于将节点启动到救援 ramdisk,以便 rescue 用户可以访问该节点。

有关救援功能的详细说明,请参阅 Rescue Mode

注入 NMI 支持

管理界面 ilo 支持向裸机注入不可屏蔽中断 (NMI)。可以使用以下命令在服务器上注入 NMI

baremetal node inject nmi <node>

可以使用以下命令通过 Compute 服务注入 NMI

openstack server dump create <server>

注意

此功能受 HPE ProLiant Gen9 服务器及更高版本的支持。

软电源操作支持

电源接口 ilo 支持在裸机上执行软关机和软重启操作。可以使用以下命令在服务器上执行软电源操作

baremetal node reboot --soft \
    [--power-timeout <power-timeout>] <node>

baremetal node power off --soft \
    [--power-timeout <power-timeout>] <node>

注意

配置 conductor.soft_power_off_timeout 用作在调用硬电源或软电源操作时未提供超时值时的默认超时值。

注意

服务器 POST 状态用于跟踪 HPE ProLiant Gen9 服务器及更高版本的电源状态。

带外 RAID 支持

使用 Gen10 HPE Proliant 服务器及更高版本,ilo5 硬件类型支持基于固件的 RAID 配置作为清理步骤。此功能要求将节点配置为 ilo5 硬件类型,并且其 raid 接口为 ilo5。有关更多信息,请参阅 RAID Configuration

成功配置 RAID 后,Bare Metal 服务将使用以下信息更新节点

  • 节点 properties/local_gb 设置为根卷的大小。

  • 节点 properties/root_device 填充有根卷的 wwn 详细信息。它由 iLO 驱动程序在配置期间用作根设备提示。

稍后,根卷的 raid 级别值可以添加到 baremetal-with-RAID10(raid 级别 10 的 RAID10)资源类中。然后,需要更新 flavor 以请求资源类来使用所选节点创建服务器

baremetal node set test_node --resource-class \
baremetal-with-RAID10

openstack flavor set --property \
resources:CUSTOM_BAREMETAL_WITH_RAID10=1 test-flavor

openstack server create --flavor test-flavor --image test-image instance-1

注意

ilo5 硬件类型支持的 raid 级别为:0、1、5、6、10、50、60

IPv6 支持

proliantutils>=2.8.0 中,支持 IPv6,可以使用 iLO IPv6 地址将节点注册到 baremetal 服务。

baremetal node create --driver ilo  --deploy-interface direct \
    --driver-info ilo_address=2001:0db8:85a3:0000:0000:8a2e:0370:7334 \
    --driver-info ilo_username=test-user \
    --driver-info ilo_password=test-password \
    --driver-info deploy_iso=test-iso \
    --driver-info rescue_iso=test-iso

注意

不需要对 ironic.conf 等进行任何配置更改即可支持 IPv6。

带外擦除磁盘支持

使用 Gen10 HPE Proliant 服务器及更高版本,ilo5 硬件类型支持基于固件的擦除磁盘作为清理步骤。此功能要求将节点配置为 ilo5 硬件类型,并且其管理接口为 ilo5

它支持的擦除模式如下

  • 对于 HDD - ‘overwrite’、‘zero’、‘crypto’

  • 对于 SSD - ‘block’、‘zero’、‘crypto’

默认擦除模式为,对于 HDD,‘overwrite’;对于 SSD,‘block’。

注意

平均而言,300GB HDD 使用默认模式“overwrite”大约需要 9 小时,而 300GB SSD 使用默认模式“block”大约需要 30 秒才能完成擦除。

带外一键安全擦除支持

使用已更新为 SPP 版本 2019.03.0 或更高版本的 Gen10 HPE Proliant 服务器,ilo5 硬件类型支持基于固件的一键安全擦除作为清理步骤。

一键安全擦除会重置 iLO 并删除所有存储在那里的许可证,重置 BIOS 设置,并删除存储在系统上的所有 Active Health System (AHS) 和保修数据。它还会擦除支持的非易失性存储数据并删除任何部署设置配置文件。有关更多信息,请参阅 HPE Gen10 Security Reference Guide

以下步骤可用于执行此清理步骤

  • 使用“one_button_secure_erase”清理步骤执行清理

baremetal node clean $node_ident --clean-steps\
    '[{"interface": "management", "step": "one_button_secure_erase"}]'
  • 一旦触发清理步骤并且节点进入“clean wait”状态并且节点上的“maintenance”标志设置为“True”,则删除该节点

baremetal node delete $node_ident

注意

  • 即使在删除节点之后,一键安全擦除操作也会在节点上继续进行。

  • 如果需要执行多个清理步骤,则应将此清理步骤放在最后。在此步骤之后将不会执行任何清理步骤。

  • 应谨慎使用一键安全擦除,仅在要退役系统时使用。在擦除期间,iLO 网络会不断断开连接,并且在擦除后用户将完全失去 iLO 访问权限以及服务器的凭据,管理员需要重新获得这些凭据。该过程可能需要一两天才能完全擦除并重置所有用户数据。

  • 激活一键安全擦除后,iLO 5 不允许固件更新或重置操作。

注意

在完成此过程之前,请勿对 iLO 5 进行任何配置更改。

UEFI-HTTPS 启动支持

Gen10 HPE Proliant 服务器上的 UEFI 固件支持从安全的 URL 启动。利用此功能,配备 ilo-uefi-https 启动接口的 ilo5 硬件支持在更安全的環境中进行部署/救援功能。

如果 swift 用作 glance 后端,并且 ironic 配置为使用 swift 存储临时镜像,则要求 swift 配置为 HTTPS,以便生成的 tempurl 是 HTTPS URL。

如果 webserver 用于托管临时镜像,则 webserver 需要以 HTTPS 方式提供请求。

如果镜像托管在 HTTPS webserver 上或配置了 HTTPS 的 swift,则用户需要将 SSL 证书导出到 iLO。有关更多信息,请参阅 HPE Integrated Lights-Out Security Technology Brief

可以使用以下命令注册配备 ilo5 硬件类型和 ilo-uefi-https 启动接口的 ProLiant 节点

baremetal node create \
    --driver ilo5 \
    --boot-interface ilo-uefi-https \
    --deploy-interface direct \
    --raid-interface ilo5 \
    --rescue-interface agent \
    --driver-info ilo_address=<ilo-ip-address> \
    --driver-info ilo_username=<ilo-username> \
    --driver-info ilo_password=<ilo-password> \
    --driver-info deploy_kernel=<glance-uuid-of-deploy-kernel> \
    --driver-info deploy_ramdisk=<glance-uuid-of-rescue-ramdisk> \
    --driver-info bootloader=<glance-uuid-of-bootloader>

第 3 层或无 DHCP ramdisk 启动

iloilo5 硬件类型支持无 DHCP 部署。但是,它仅适用于 ilo-virtual-media 启动接口。有关更多信息,请参阅 Layer 3 or DHCP-less ramdisk booting

事件订阅

事件订阅受 iloilo5 硬件类型支持,Gen10 和 Gen10 Plus 服务器的 ilo 供应商接口支持。有关更多信息,请参阅 Node Vendor Passthru Methods

基于 Anaconda 的部署

使用 anaconda 部署接口的部署受 iloilo5 硬件类型支持,并适用于 ilo-pxeilo-ipxe 启动接口。有关更多信息,请参阅 使用 anaconda 部署接口进行部署