Ironic Inspector 工作原理

工作流程

通常的硬件内省流程如下

  • 操作员通过 Ironic(例如通过 baremetal CLI 命令)注册节点。此时应向 Ironic 提供电源管理凭据。

  • 节点被置于适合内省的状态,如 节点状态 中所述。

  • 操作员使用 ironic-inspector API 或 CLI 发送节点进行内省(参见 用法)。

  • 收到节点 UUID 后,ironic-inspector

    • 验证节点电源凭据、当前电源和配置状态,

    • 允许访问节点的 PXE 启动服务,

    • 向节点发送重启命令,使其启动 ramdisk。

  • ramdisk 收集所需信息并将其发布回 ironic-inspector

  • 收到 ramdisk 数据后,ironic-inspector

    • 验证接收到的数据,

    • 使用其 BMC 地址(对于 SSH 驱动程序,使用 MAC 地址)在 Ironic 数据库中找到节点,

    • 使用接收到的数据填充缺失的节点属性并创建缺失的端口。

    注意

    ironic-inspector 负责为节点上找到的某些或全部 NIC 创建 Ironic 端口。ironic-inspector 还可以删除不应存在的端口。有两个重要的配置选项会影响此行为:add_portskeep_ports(请参阅 示例配置文件 以获取详细说明)。

    截至 ironic-inspector 1.1.0 的默认值是 add_ports=pxekeep_ports=all,这意味着将只添加一个端口,该端口与 ramdisk PXE 启动的 NIC 相关联。不会删除任何端口。此设置可确保在 Ironic bug 1405131 的情况下,在内省节点上部署仍然会成功。

    Ironic 检查功能默认需要不同的设置:add_ports=allkeep_ports=present,这意味着将为所有检测到的 NIC 创建端口,并且将删除所有其他端口。有关详细信息,请参阅 Ironic 检查文档

    还可以配置 Ironic inspector 不创建任何端口。通过设置 add_ports=disabled 来实现。如果将 add_ports 设置为 disabled,则应将 keep_ports 选项也设置为 all。这将确保不会删除任何手动添加的端口。

  • 可以使用单独的 API(参见 用法API 参考)来查询给定节点的内省结果。

  • 节点被置于适合部署的状态,如 节点状态 中所述。

启动 DHCP 服务器和配置 PXE 启动环境不属于此软件包的范围,应单独完成。

状态机图

下图显示了 ironic-inspector FSM 在节点内省、发现和重新处理期间经历的内省状态。该图还显示了触发状态转换的事件。

ironic-inspector state machine diagram