调试裸机 (ironic) inspector 服务

Ironic Python Agent 调试日志

如果 IPA 失败,日志文件将被写入到负责 Ironic 节点部署的 conductor 节点上的 /var/log/ironic

收集了大量有用的信息,包括从主机获取的 journal 日志副本。

部署期间暂停

为了暂停部署,可能需要登录正在运行 IPA 的 Ironic 节点进行诊断工作,可以通过 OpenStack CLI 或 Horizon Web 界面在节点上启用 maintainance (维护模式)。

Ironic 状态机在维护模式关闭之前不会再次改变状态,由 IPA 的心跳触发。请注意,在关闭维护模式后,您可能需要等待最多一个心跳周期才能恢复部署。

登录 IPA

在部署或清理 ironic 节点期间,为了执行诊断步骤,能够从控制器登录到部署镜像启动后的节点可能会很有帮助。

要构建启用 dynamic-login 元素的部署镜像版本,在这种情况下,在 Rocky Linux 主机上构建

dnf install python3-virtualenv git qemu-img

virtualenv venv
source ./venv/bin/activate
pip install ironic-python-agent-builder

export DIB_REPOREF_ironic_python_agent=origin/stable/zed
export DIB_REPOREF_requirements=origin/stable/zed
ironic-python-agent-builder -e dynamic-login -o my-login-ipa --extra-args=--no-tmpfs --release 8-stream centos

一旦 IPA 内核和 initramfs 构建完成,就将它们上传到 glance,并将其设置为 Ironic 节点在部署期间登录的部署内核/initramfs。

创建一个用于登录 Ironic 节点的密码

openssl passwd -1 -stdin <<< YOUR_PASSWORD | sed 's/\$/\$\$/g'

/etc/openstack_deploy/user_variables.yml 中设置 IPA 内核参数上的调试选项,将刚刚生成的加密密码替换到 rootpwd 字段中。确保加密密码用双引号括起来。

ironic_ironic_conf_overrides:
  # Set a password on the root user in IPA for debug purposes
  pxe:
    kernel_append_params: 'ipa-debug=1 systemd.journald.forward_to_console=yes rootpwd="<password-string>"'

注意

您必须将此覆盖与任何现有的 ironic_ironic_conf_overrides 定义结合起来。

将配置文件更改部署到 Ironic 控制平面。

现在可以清理或配置节点,可能通过在节点上启用维护模式来暂停部署,然后使用先前加密的密码作为 root 用户通过 SSH 登录到节点。