Ironic Python Agent

概述

Ironic Python Agent(也常被称为IPA或简称agent)是一个基于 Python 的代理,用于处理 ironic 裸机节点中的各种操作,例如检查、配置、清理和部署镜像。IPA 分发到节点上,并在节点的内存盘中运行,执行启动该内存盘的过程。

更多信息请参阅 ironic-python-agent 文档

驱动程序

从 Kilo 版本开始,所有部署接口(除了模拟接口)都使用 IPA。对于使用 直接部署 接口的节点,conductor 会准备一个 swift 临时 URL 或一个本地 HTTP URL 用于镜像。然后 IPA 处理整个部署过程:从 swift 下载镜像,将其放在机器上,并执行任何部署后操作。

需求

使用 IPA 需要将其存在于部署内存盘中并进行配置,请参阅 构建或下载部署内存盘镜像

使用代理下载镜像

概述

在使用 直接部署 时,IPA 支持使用代理下载用户镜像。例如,这可以用于通过使用缓存代理来加速下载。

启用代理的步骤

  1. 配置您选择的代理服务器(例如 SquidApache Traffic Server)。这可能需要您配置代理服务器以缓存内容,即使请求的 URL 包含查询,并且提高最大缓存文件大小,因为镜像可能很大。如果 swift 中启用了 HTTPS(请参阅 swift 部署指南),可以配置代理服务器通过 HTTPS 与 swift 通信以下载镜像,将其未加密地存储在缓存中,然后再次通过 HTTPS 将其返回给节点。由于镜像将以未加密的形式存储在缓存中,因此建议将此方法用于不包含敏感信息的镜像。请参阅您的代理服务器文档以完成此步骤。

  2. 在 ironic conductor 配置文件中设置 glance.swift_temp_url_cache_enabledTrue。conductor 将重用缓存的 swift 临时 URL,而不是每次请求镜像时生成新的 URL,以便代理服务器不会为同一镜像(基于 URL 的查询部分,因为它每次重新生成时都会发生变化)创建新的缓存条目。

  3. 在 ironic conductor 配置文件中设置 glance.swift_temp_url_expected_download_start_delay 选项为适合您硬件的值。这是从部署请求时间(生成 swift 临时 URL 的时间)到 URL 用于镜像下载的时间的延迟(以秒为单位)。您可以将其视为 IPA 内存盘启动并开始下载所需的大致时间。此值用于检查 swift 临时 URL 的持续时间是否足够让镜像下载开始。如果启用了临时 URL 缓存,它还将确定缓存条目在下载开始时是否仍然有效。仅当 glance.swift_temp_url_cache_enabledTrue 时才使用它。

  4. 增加 ironic conductor 配置文件中的 glance.swift_temp_url_duration 选项,因为只有未过期的镜像链接才会从 swift 临时 URL 缓存中返回。这意味着如果 swift_temp_url_duration=1200,那么 20 分钟后,代理服务器将缓存新的镜像,因为其 URL 中的查询会发生变化。此选项的值必须大于或等于 glance.swift_temp_url_expected_download_start_delay

  5. image_http_proxyimage_https_proxyimage_no_proxy 中的一个或多个添加到将使用代理的每个节点的 driver_info 属性中。

高级配置

部署时带外与带内断电

将镜像部署到节点的硬盘后,Ironic 将重新启动机器以进入新镜像。默认情况下,此电源操作发生在 带内,这意味着 ironic-conductor 将指示 IPA 内存盘关闭自身。

某些硬件可能存在默认方法的问题,并且需要 Ironic 直接与管理控制器通信以关闭和再次打开电源。为了告诉 Ironic 执行此操作,您必须更新节点的 driver_info 字段,并将 deploy_forces_oob_reboot 参数设置为 True。例如,以下命令在特定节点中设置此配置

baremetal node set <UUID or name> --driver-info deploy_forces_oob_reboot=True