Victoria 系列 (15.1.0 - 16.0.x) 发行说明

16.0.5-20

升级说明

  • 升级 Ironic 以解决 qemu-img 镜像转换安全问题时,还需要升级 ironic-python-agent ramdisk。

  • 作为对 qemu-img 镜像转换安全问题进行修复的结果,Ironic 添加了一个新的配置参数 [conductor]permitted_image_formats,默认值为“raw,qcow2,iso”。 Raw 和 qcow2 格式的磁盘镜像是在 Ironic 社区始终声明允许并期望与 Ironic 一起使用的镜像格式。 这些格式也与社区测试的格式相匹配。 如果利用其他磁盘镜像格式的操作员,可能需要进一步修改此设置。

  • 在 Victoria 版本中,要使用 HTTPS 连接上的证书文件,iRMC 驱动程序需要 python-scciclient 版本为 >=0.8.2,<0.9.0 或 >=0.9.5,<0.10.0,并且 packaging >=16.5

安全问题

  • Ironic 现在检查提供的镜像格式值与镜像文件的检测格式是否匹配,如果值不匹配,将阻止部署。 如果与 Glance 一起使用并且检测到元数据不匹配,则需要重新上传镜像,以表示更正后的元数据。 这是由跟踪的 CVE-2024-44082 引起的 bug 2071740

  • Ironic 始终 检查通过 conductor 传递的提供的用户镜像内容是否安全,然后再部署节点,即使镜像以 raw 格式提供。 这用于识别镜像的格式和镜像的整体安全性,以便明确拒绝具有未知或不安全功能使用的源镜像。 可以通过将 [conductor]disable_deep_image_inspection 设置为 True 来禁用此功能。 这是由跟踪的 CVE-2024-44082 引起的 bug 2071740

  • Ironic 还会检查通常作为直接下载 URL 提供的镜像,由 ironic-python-agent ramdisk 提供。默认情况下启用此功能,会增加导管的网络流量和磁盘空间利用率。可以通过将 [conductor]conductor_always_validates_images 设置为 False 来禁用此级别的检查。不建议这样做,因为 Zed 版本及更早版本的 ironic-python-agent ramdisk 将无法使用,原因是存在回退回归风险。这是由 CVE-2024-44082 跟踪的 bug 2071740 导致的。

  • Ironic 现在显式执行 [conductor]permitted_image_formats 设置中允许的镜像类型列表,默认值为“raw”、“qcow2”和“iso”。 虽然该项目历来一直声明允许的镜像为“qcow2”和“raw”,但之前可以提供其他 qemu-img 已知的镜像格式,并且该实用程序会尝试转换镜像。 需要“iso”支持才能支持“从 ISO 启动”ramdisk。

  • Ironic 现在显式将源输入格式传递给 qemu-img 的执行,以限制可能评估镜像的允许 qemu 磁盘镜像驱动程序,以防止针对 qemu-img 的不匹配格式攻击。

  • ansible 部署接口示例 playbook 现在为 qemu-img 的执行提供输入格式。 如果您正在使用自定义 playbook,请将“-f {{ ironic.image.disk_format }}”添加到对 qemu-img 的调用中。 如果您没有这样做,qemu-img 将自动尝试猜测,这可能导致已知的不安全问题,因为源格式驱动程序不正确。

  • 已经实施任何自定义部署驱动程序或附加功能的运营商应审查他们的下游代码,以确保他们正确调用 qemu-img。 如果有任何问题或疑虑,请联系 Ironic 项目开发人员。

  • 提醒操作员,他们应在其环境中利用清理。 禁用任何安全功能,例如清理或镜像检查,是自己承担风险。 如果您在使用安全相关功能时遇到任何问题,请不要犹豫,向项目提交错误报告。

  • [conductor]disable_deep_image_inspection 设置会自动传递给 ironic-python-agent ramdisk,并将阻止这些运行 ramdisk 在写入镜像之前执行深度检查。

  • [conductor]permitted_image_formats 设置会自动传递给 ironic-python-agent ramdisk。 如果需要显式允许其他格式,则应在 Ironic 服务配置中进行设置。

  • Ironic 中的一个问题已得到解决,即在将镜像转换为 raw 格式镜像之前,不会检查提供的镜像校验和。

    在默认设置下,这通常不会发生,但是 image_download_source 选项,该选项可设置为节点级别进行单个部署,默认情况下,对于该裸机节点在所有情况下,或者通过 [agent]image_download_source 配置选项设置为 local。 默认设置是 http

    这与 [DEFAULT]force_raw_images 设置为 True 结合使用,导致 Ironic 下载并转换文件。

    在 Ironic 在更大的 OpenStack 部署中使用时,镜像来自 Glance 镜像服务,之前的模式没有问题。 该问题是由于能够提供、缓存和转换由经过身份验证的用户提供的 URL 提供的磁盘镜像而引入的。

    Ironic 现在将在镜像转换之前验证 conductor 提供的用户提供的校验和。 可以通过设置 [conductor]disable_file_checksum 配置选项来禁用此功能。

  • 修改了 irmc 硬件类型,以包含控制 HTTPS 证书验证强制执行的能力。默认情况下,这是强制执行的。python-scciclient 版本必须是 >=0.8.2,<0.9.0 或 >=0.9.5,<0.10.0,否则将不会进行证书验证。

错误修复

  • 修复了与 qemu-img 工具的执行相关的图像处理中的多个问题,该工具用于图像格式转换,恶意用户可以制作磁盘镜像以潜在地从 ironic-conductor 进程的操作系统环境中提取信息。

    Ironic 现在明确地强制执行批准的图像格式列表,作为 [conductor]permitted_image_formats 列表,该列表反映了 Ironic 项目历史上测试过的图像格式,并被认为是可用的。测试不基于文件扩展名,而是基于对磁盘镜像文件的内容指纹识别。这被跟踪为 CVE-2024-44082,通过 bug 2071740

  • 修复了一个安全问题,即 Ironic 在下载磁盘镜像文件时不会对其进行校验和检查,而 Ironic 被要求下载并将镜像转换为原始镜像格式。 这需要将 image_download_source 显式设置为 local,这不是默认设置。

    可以通过将 [conductor]disable_file_checksum 设置为 True 来禁用此修复,但是此选项将在新的 Ironic 主要版本中删除。

    因此,已经引入了与 Ironic-Python-Agent 对 standalone Ironic 用户使用的校验和的支持相一致。 这包括支持通过 URL 提供远程校验和文件,以防止破坏可能无意中利用先前代码路径的现有用户。 可以通过将 [conductor]disable_support_for_checksum_files 设置为 True 来禁用此支持。

  • 修复了 Ironic 与 Cinder 的集成问题,这是由于最近与安全相关的修复导致的,详情请参见 bug 2004555。Ironic 中跟踪此修复的工作已记录在 bug 2019892 中。Ironic 现在向 Cinder 发送服务令牌,这允许绕过作为原始 CVE-2023-2088 修复的一部分添加的访问限制。Ironic 本身不受影响,但由此添加的限制确实影响了 Ironic 的使用。这是因为 Ironic 卷附件不在共享“计算节点”上,而是映射到物理机器,并且 Ironic 在初始附件之后处理附件生命周期。

  • 修复了在快速跟踪模式下使用 redfish-virtual-media 启动接口更改 BIOS 设置后重启到代理的问题。以前,未配置 ISO。

  • 添加了 driver_info/irmc_verify_ca 选项以指定证书文件。driver_info/irmc_verify_ca 的默认值为 True。

16.0.5

错误修复

  • 修复了 Redfish BMC 的连接缓存问题,以前的 AccessErrors 并未使缓存的连接从被重新使用中排除。Ironic 现在将显式打开一个新连接,而不是使用缓存中的先前连接。在正常情况下,sushy redfish 库会检测并刷新会话,但是存在一种情况,它可能无法检测到故障并包含缓存的会话凭据数据,最终阻止通过 Redfish 访问 BMC,直到缓存条目过期或 ironic-conductor 服务重新启动。有关更多信息,请参阅 story 2009719

16.0.4

安全问题

  • 修复了 /v1/nodes/detail 端点的一个问题,在该端点中,经过身份验证的用户可以显式请求 instance_uuid 查找,并且如果用户没有显式拥有该节点的 ownerlessee 权限,则会将关联的节点返回给用户,结果有效载荷中的敏感字段将被删除。这被认为是一个低影响低风险的问题,因为它需要 API 消费者已经知道关联实例的 UUID 值,并且返回的信息主要是元数据。更多信息请参见 StoryBoard 故事 2008976

错误修复

  • 如果代理接受了命令,但无法回复 Ironic(这在 eventlet 的 TLS 实现之前会偶尔发生),我们当前会重试请求并失败,因为命令已经在执行中。Ironic 现在通过在收到连接错误后检查正在执行的命令列表来检测这种情况。如果请求的命令是最后一个,我们假设命令请求已成功。

  • 修复了快速通道,以防止在尝试在快速通道超时到期之前重建节点时将代理标记为活动状态。

  • 通过每个任务缓存 AgentClient,而不是全局缓存,来修复潜在的缓存一致性问题。

  • 修复了 Python 3 转换期间中断的 [deploy]configdrive_use_object_store 选项。

  • 修复了 /v1/nodes/detail 端点的一个问题,在该端点中,对显式 instance_uuid 匹配的请求不会遵循标准查询处理路径,因此不会根据策略确定的访问级别和节点级别的 ownerlessee 字段进行过滤。更多信息请参见 故事 2008976

  • 修复了繁忙代理的识别,以便在部署步骤期间也能处理识别,从而更统一地检测和识别 ironic-python-agent 服务何时繁忙。

  • 修复了 grub2 配置文件的问题。较高版本的 grub2(例如 2.05 或 2.06-rc1)使用 grub.cfg-01-MAC,而较低版本的 grub2(例如 2.04)使用 MAC.conf,因此我们生成两个路径以与两者兼容。

  • 修复了 idrac-wsman 管理接口 set_boot_device 方法,该方法在存在现有作业时会使部署失败,并显示错误“无法更改电源状态为‘’power on‘’通过‘’重新启动‘’。错误:DRAC 操作失败。原因:找到未完成的配置作业:<现有作业列表>。在重试之前,请确保它们已完成。”。现在可以存在非 BIOS 作业在部署期间。对于存在 BIOS 作业的情况,仍然会失败。在这种情况下,应考虑迁移到 idrac-redfish,该接口在设置启动设备时没有此限制。

  • 修复了在 IPv6 路由提供商网络上配置/清理失败的问题。请参阅 bug:2009773

  • 修复了 idrac-wsman BIOS apply_configurationfactory_reset 清理和部署步骤,以便在检查完成的作业时发生错误时正确失败。在修复之前,当 BIOS 作业失败时,节点清理或部署会因超时而不是清理或部署步骤中的实际错误而失败。

  • 修复了基于 ilo5 硬件的 redfish 固件更新,通过必要的更改来检查 sushy_task.messages 是否存在,因为在 iLo 任务的情况下,数据不包含 messages 属性。此外,它在重新启动系统以更新固件之前没有调用 prepare_ramdisk(),这在此补丁中已得到修复。

  • 修复了使用 idrac-wsman 管理接口关机时,正在进行的清除作业队列清理步骤的问题。在此修复之前,清理步骤将在关机节点时失败。

  • 正确地在检查开始和中止时擦除代理令牌。

  • 从 ironic.conf [ipmi] command_retry_timeoutmin_command_interval 计算 ipmitool -N-R 参数现在考虑了 ipmitool 在每次重试事件中添加的 1 秒间隔增量。

    失败路径 ipmitool 运行时间现在将略短于 command_retry_timeout,而不是更长。

  • 添加了对缺少 BootSourceOverrideMode 标志的 Redfish BMC 的处理,这样如果 BMC 不支持此字段,部署就不会再出现致命错误。这在仅具有 ComputerSystem 资源 boot 的部分实现的 BMC 上很常见,也可能在某些收到 Redfish 部分支持更新的旧代 BMC 上观察到。

  • 对于 Dell 节点,redfish-virtual-media 启动接口将不再通过验证。对于这些节点,必须使用 idrac-redfish-virtual-media 启动接口。

  • 故事 2008252 的修复在更改启动设备后同步了启动模式,因为 Supermicro 节点如果在启动设备集中未包含,则会重置启动模式。但是,这可能会导致 Dell 节点在更改模式 uefi->bios 或 bios->uefi 时出现问题,有关详细信息,请参阅 故事 2008712。将启动模式的同步限制为 Supermicro。

  • 修复了一个错误,如果共享锁上存在争用,则导体可能无法完成部署。这表现为实例卡在“部署中”状态,尽管节点实际上已经启动甚至完成了最终启动。

  • 当 Ironic 通过 Redfish 配置 BootSourceOverrideTarget 设置时,在 Supermicro BMC 上,它必须始终配置 BootSourceOverrideEnabled,否则它将恢复到默认值(一次),请参阅 story 2008547 以获取详细信息。这与当前为其他 BMC 实现的不同,在其他 BMC 中,如果当前设置匹配,则不会配置 BootSourceOverrideEnabled(请参阅 story 2007355)。

    这要求 node.properties[‘vendor’] 为 ‘supermicro’,Ironic 将从 Redfish 系统响应设置,或者可以手动设置。

  • 引入任务管理器中端口、端口组、卷连接和卷目标的延迟加载,以解决性能问题。对于创建任务管理器对象但不需要上述数据(例如电源同步)的周期性任务,此更改应将数据库交互次数减少约三分之二,从而加快整体执行速度。

  • 修复了使用 idrac-wsman 管理接口关机时,正在进行的清除作业队列清理步骤的问题。在此修复之前,清理步骤将在关机节点时失败。

16.0.3

升级说明

  • 已添加对 IPMI BMC 硬件供应商的自动检测,以适当处理 IPMI BMC 的变化。Ironic 现在将查询此信息并保存该值(如果尚未设置),以避免为每次操作都进行查询。升级的用户应该期望对于硬件类型为 ipmi 的节点,第一次电源状态同步时间会延长。

错误修复

  • 修复了 idrac-wsman RAID create_configuration 清理步骤、apply_configuration 部署步骤和 delete_configuration 清理和部署步骤,以便在检查完成的作业时发生错误时正确失败。在修复之前,当 RAID 作业失败时,节点清理或部署会因超时而不是清理或部署步骤中的实际错误而失败。

  • 修复了在请求 UEFI 启动模式并使用持久启动到 DISK 时出现的问题,其中某些版本的 ipmitool 无法正确处理同时设置多个选项。虽然一些逻辑在 upstream ipmitool 开发中得到了解决,但新版本并未发布,并且供应商维护下游 ipmitool 工具的分支。考虑到供应商特定的 选择器差异以及当前 upstream ipmitool 社区对新版本的立场,仅在 Ironic 中处理此逻辑才有意义。部分原因是,如果已经设置,则选择器值将不会更新。现在 ironic 始终传输 UEFI 的选择器值。

  • 修复了支持 UEFI 的 Supermicro BMC 与硬件类型为 ipmi 的问题,以便将适当的启动设备选择器值发送到远程 BMC,以指示从本地存储启动。这适用于持久和一次性启动应用程序。有关更多信息,请参阅 story 2008241

  • 修复了硬件类型为 ipmi 的问题,在请求使用 UEFI 启动模式和“一次性”启动到 PXE 时出现的问题。由于 Ironic 现在专门传输原始命令,因此该设置应该被正确应用,而此前 PXE 启动操作可能以前在 Legacy BIOS 模式下发生。

  • 通过重用与 direct 部署接口相同的过程,修复了使用 ramdisk 部署接口进行清理的问题。

  • 在本地引导的镜像中使用 redfish-virtual-media 启动时,现在可以正确处理引导模式。

  • 失败的清理不再会导致维护模式,例如在 PXE 超时或清理步骤验证失败时。

  • 修复了将网络数据注入虚拟媒体时的权限问题。

其他说明

  • ipmi 硬件类型添加了一个新的 detect_vendor 管理接口方法。该方法被推广为更高级别的接口,因为对硬件供应商有逻辑意识的根本需求对于略有不同的行为需要供应商无关的驱动程序是必要的。

  • ironic.common.imagesironic.drivers.modules.image_utils 中的一些实用程序中,configdrive 参数已被新的 inject_files 参数替换。以前的方法并非在所有情况下都有效,并且我们预计第三方驱动程序不会使用它。

16.0.2

已知问题

  • 当使用 redfish-virtual-media 时,快速通道模式将无法按预期工作,节点将在操作之间重新启动。

升级说明

  • 默认情况下,[api]api_workers 的默认值现在限制为 4。如果需要更高的值,请显式设置它。

错误修复

  • 默认情况下,不再在具有大量 CPU 核心的系统上启动过多的 API 工作进程。

  • 正确处理使用 noop 网络接口时节点的自定义网络数据。之前它被忽略了。

  • 修复了在使用虚拟媒体时注入的网络数据位置不正确的问题。

  • 修复了 redfish BIOS apply_configuration 清理和部署步骤,以便在检查 BIOS 更新是否成功应用时发生错误时正确失败。在修复之前,当 BIOS 更新不成功时,节点清理或部署会因超时而不是清理或部署步骤中的实际错误而失败。

  • 当配置为使用 json-rpc 时,ironic-conductor 的 [DEFAULT].host 配置选项现在可以设置为 IPv6 地址。之前它只能是 IPv4 地址或 DNS 名称。

  • 不再尝试将 BOOTIF=None 作为内核参数传递,尤其是在使用虚拟媒体时。这可能会破坏检查。

  • 修复了当端口组的 MAC 地址未设置并已附加到实例时,由于租户端口和 configdrive 中最初分配的 MAC 地址之间不一致,着陆的绑定端口无法获取 IP 地址的问题。

  • 通过 Redfish 更改启动设备后,检查报告的启动模式是否与配置的模式匹配,如果不匹配,则将其设置为配置的值。某些 BMC 在通过 Redfish 设置设备时会更改启动模式,请参阅 story 2008252 以获取详细信息。

  • 虚拟媒体 ISO 镜像构建过程现在尊重 default_boot_mode 配置选项。

  • 修复了使用 redfish-virtual-media 快速通道模式时,在连续执行一个操作后另一个操作(例如,在检查后清理)时的超时问题。

16.0.1

错误修复

  • 修复了在使用 idrac 和 vmedia 尝试检查节点时出现的问题。

  • 修复了通过 API 重新启动时擦除代理令牌的问题。

16.0.0

序言

Ironic 团队自豪地宣布发布 Ironic 16.0。

在六多年的时间里,该项目的贡献者们不断努力,并提供了我们集体认为的最佳平台,用于管理和部署裸机硬件。

创新、动力和改善基础设施运营商生活的目标从未停止,并且在短期内也没有停止的迹象。

与任何发布一样,我们有一些特别自豪的事情

  • 支持代理通信的 TLS 加密。

  • 支持带内部署步骤,从而可以在部署时配置软件 RAID。

  • Ramdisk/虚拟媒体透传 ISO 镜像。

  • 无需 BMC 的 agent 电源控制,因此部署不需要 BMC。

  • 使用基于 ramdisk 的虚拟媒体的网络配置注入。

  • 集成基本的身份验证,用于独立的 Ironic 运营商。

并且,随着任何主要发布,许多错误都已修复。跨供应商的功能的奇偶校验得到了提高。每个贡献者都为这个发布感到自豪。希望您喜欢它!

新特性

  • ilo5 硬件类型添加了 ilo-uefi-https 启动接口。此启动接口利用 iLO UEFI 固件功能从托管在安全 HTTPS Web 服务器上的 HTTPS URL 启动,并使用标准/自定义证书。

  • 通过启用虚拟媒体启动,无需用户构建的部署/救援/启动 ISO 镜像,为 iloilo5 硬件类型添加了功能。相反,ironic 将从常见的内核/ramdisk 对(尽管用户需要提供 ESP 镜像)构建必要的镜像。用户提供的部署/救援/启动 ISO 镜像也受支持。

  • 通过使用节点字段上的 network_data 属性,运营商现在可以将网络配置应用于嵌入到基于 iLO 的虚拟媒体的部署 ramdisk 中,其中包括网络配置,从而使部署无需使用 DHCP 即可运行。有关更多信息,请参阅 Redfish 驱动程序文档中的 更多信息

  • 为 heartbeat API 添加了接受自定义 TLS 证书的能力。

  • 为托管在 HTTPS Web 服务器上的 URL 添加了配置选项 webserver_verify_ca,以支持自定义证书以验证 URL。

  • 使用节点字段上的 network_data 属性,运营商现在可以将网络配置应用于嵌入到基于 Redfish 的虚拟媒体的部署 ramdisk 中,其中包括网络配置,从而使部署无需使用 DHCP 即可运行。有关更多信息,请参阅 Redfish 驱动程序文档

  • 现在支持在 direct 部署接口中使用 file:// 镜像。

  • image_download_source 添加了一个新的可能值:local。使用时,即使是 http:// 镜像也会被下载,如果需要则转换为 RAW,并从导体的 HTTP 服务器提供。此功能主要针对具有低 RAM 的节点。

  • idrac-wsman 检查硬件接口添加了对报告连接到系统的 GPU 设备数量的支持。此信息通过 capability pci_gpu_devices 进行通告,可用于做出节点的调度决策。目前,正在报告 NVIDIA Tesla T4 GPU 设备。

  • idrac 硬件类型添加了通过 Redfish 站外管理 (OOB) 协议管理 BIOS 设置的支持。新的硬件 BIOS 接口实现名为 idrac-redfish

    idrac 硬件类型声明支持新的接口实现,除了它一直支持的所有 BIOS 接口实现之外。 具有最高优先级的 BIOS 接口保持不变,即依赖于 Web 服务管理 (WS-Man) OOB 管理协议的接口。 新的 idrac-redfish 紧随其后。 现在它支持以下 BIOS 接口实现,优先级从高到低排列:idrac-wsmanidrac-redfishno-bios

    有关更多信息,请参阅 story 2008100

  • 添加了一个新的配置选项 [ilo]verify_ca 和一个新的 driver_info 参数 ilo_verify_ca,以增强 ilo 和 ilo5 硬件类型的证书验证,除了文件之外,它还可以接受目录和布尔值。

  • 添加了功能,可以对基于 iLO5 的 HPE Proliant 服务器执行带外一键安全擦除操作,作为 management 清理步骤 one_button_secure_erase,用于 ilo5 硬件类型。

  • 配置选项 image_download_source 现在也可以在 instance_infodriver_info 中按节点设置(前者具有最高优先级)。

  • 允许通过新的 driver_info 参数 ipmi_cipher_suite 配置 IPMI 密码套件。

  • driver_internal_info 字段添加到与节点相关的通知 baremetal.node.provision_set.*,新的有效载荷版本 1.16。

  • 添加了对使用 redfishidrac 硬件类型执行固件更新的支持。

    一个新的固件更新清理步骤已添加到 redfish 硬件类型。 idrac 硬件类型也通过继承自动获得此功能。

  • 一个新的配置选项 [agent]require_tls 允许拒绝不使用 https:// 模式的 ramdisk 回调 URL。

  • 再次支持富士通 irmc 硬件类型。 驱动程序的第三方 CI 于 2020 年 9 月开始正常工作。

升级说明

  • ilo5 硬件类型中,one_button_secure_erase 清理步骤需要 proliantutils 版本 2.10.0。 请升级此库以利用此功能。

  • 配置选项 [agent]image_download_source 的默认值已更改为 http,以简化从 iscsi 部署接口的过渡。 请将其显式设置为 swift 以保持以前的行为。

  • 已弃用的 iscsi 部署接口默认情况下不再启用,请设置 enabled_deploy_interfaces 以覆盖。 如果也启用了 direct 部署,它也不再是部署接口优先级列表中的第一个,因此必须显式请求它。

  • 由于 direct 部署接口现在默认使用,因此需要配置 [deploy]http_url[deploy]http_root 以指向本地 HTTP 服务器,或配置对 Swift 的访问。

  • 已删除对无令牌代理的支持,因为无令牌代理支持在 Ussuri 开发周期中已被弃用。 ironic-python-agent 必须更新到 6.1.0 或更高版本才能支持升级后与 Ironic 部署通信。 这通常需要更新部署、清理和救援内核和 ramdisk。 如果未这样做,由于代理将无法向 Ironic 记录心跳,因此清理和部署等操作将超时。 有关更多信息,请参阅 agent token 文档。

  • redfish 硬件类型中,redfish-virtual-media 启动接口现在是优先级列表中的最后一个。 这意味着如果启用它们,新节点将使用 ipxepxe 启动。 更改的原因是硬件供应商对纯 Redfish 虚拟媒体的支持有限。

    要使用 Redfish 的虚拟媒体,请在创建节点时提供显式的 boot_interface 参数。 如果您只启用了 redfish 硬件类型,也可以将 default_boot_interface 配置选项设置为 redfish-virtual-media

弃用说明

  • 配置选项 [ilo]ca_file 已弃用,请改用 [ilo]verify_ca,它除了文件之外,还可以接受目录和布尔值以进行证书验证。

  • 现在已弃用 iscsi 部署接口,应使用 directansible 部署。 我们预计 iscsi 部署代码的完整删除将在“X”版本中发生。

  • 随着从 neutronclient 到 openstacksdk 的切换,[neutron]/retries 选项已被弃用,请改用 [neutron]/status_code_retries[neutron]/status_code_retry_delay

安全问题

  • 现在需要支持代理令牌的 ramdisk,因为这是一个核心安全机制,无法禁用,并且已删除 [DEFAULT]require_agent_token 配置参数,因为令牌现在始终由 Ironic 需要。 有关更多信息,请参阅 agent token 文档。

错误修复

  • 修复了与某些硬件的兼容性问题,这些硬件要求 Ironic 生成虚拟媒体图像时,任何虚拟媒体的文件名都必须以“.iso”后缀结尾。 我们建议操作员生成自己的虚拟媒体文件,并以正确的扩展名命名文件。

  • 修复了 Ussuri(及更早版本)ramdisk 在 prepare_image 之后另一个 IPA 命令运行时发生的部署失败问题。

  • 修复了 ansible 部署接口中的一个问题,该问题导致自动 root 设备选择意外地选择了系统 CD-ROM 设备,这在使用虚拟介质启动时很可能发生。 ansible 部署接口现在忽略所有 Ramdisks、Loopbacks、CD-ROM 和软盘设备。

  • 修复了一个问题,该问题导致在启用快速通道时插入到 write_image 之前的带内部署步骤被跳过。

  • 修复了一个问题,该问题导致代理重新启动时带内部署和清理步骤被缓存。

  • 修复了 iRMC 检查以获取 MAC 地址。

  • 修复了代理令牌处理中的一个问题,未升级的代理导致 AgentAPIError,当不需要令牌时。 Conductor 现在将重试,而无需发送代理令牌。

  • 修复了哈希环代码中的一个潜在竞争,该竞争可能导致哈希环在初始加载后永远不会更新。

  • 修复了弃用的 idrac 硬件接口实现 __init__ 方法,以在发出关于其弃用的警告日志消息之前调用其基类 __init__ 方法。有关更多信息,请参阅 story 2008197

  • 修复了一个问题,该问题导致如果节点执行心跳操作时正在持有预先存在的锁,则代理心跳将被排队。 代理心跳实现将不再重试获取独占锁。

  • 防止在部署步骤处理过程中发生接管。 如果 RPC 调用 continue_node_deploy 被路由到不同的 conductor,则可能会发生这种情况。

  • 修复了手动关机或重新启动时擦除代理密钥令牌的问题。 此外,确保删除代理 URL,因为它可能会发生变化。

  • 修复了尝试通过 CLI 取消设置 protected 属性时发生的 HTTP 500 错误。

  • 修复了清理和托管检查不遵守 default_boot_mode 配置选项的问题。

  • 修复了清理和托管检查不遵循标准启动模式处理逻辑的问题,特别是,如果驱动程序允许,则不尝试断言请求的启动模式。

  • 修复了 redfish BIOS 接口 apply_configuration 清理/部署步骤,使其能够与必须提供分布式管理任务力 (DMTF) Redfish 标准 @Redfish.SettingsApplyTime 注释 [1] 的 Redfish 服务一起工作,以指定何时应用请求的设置,例如 Dell EMC 集成 Dell 远程访问控制器 (iDRAC)。

    有关更多信息,请参阅 story 2008163

    [1] http://redfish.dmtf.org/schemas/DSP0266_1.11.0.html#settings-resource

  • 不再静默忽略在尝试运行下一个清理或部署步骤时发生的异常。

其他说明

  • ironic conductor 内部逻辑已更新,如果心跳期间未提交代理版本,则返回错误。 这是因为代理已经传输了版本一段时间,并且默认使用代理令牌的支持迫使所有代理都进行更新。 因此,冗余代码已被删除并更新了测试。

  • 与 neutron 的通信现在使用 openstacksdk,从而消除了对 neutronclient 的依赖。