Seed Administration

销毁 Seed VM

注意

此步骤将销毁 seed VM 及其数据卷。

要销毁 seed VM

(kayobe) $ kayobe seed vm deprovision

销毁 seed 上的所有服务

警告

此步骤将销毁 Kayobe 和 Kolla 部署的所有容器、容器镜像和卷。要销毁与 自定义容器 关联的卷和镜像,您必须配置 post_destroypre_destroy 钩子以手动执行清理,因为 Kayobe 不会自动清理这些内容。通常只建议在系统上没有重要数据时才运行此命令。

要销毁 seed 服务

(kayobe) $ kayobe seed service destroy --yes-i-really-really-mean-it

可以选择使用标签

(kayobe) $ kayobe seed service destroy --yes-i-really-really-mean-it -kt none -t docker-registry

必须小心设置 kayobe 和 kolla 标签,以避免意外销毁其他服务。

更新软件包

可以更新 seed 主机上的软件包。

软件包仓库

如果在使用 CentOS 或 Rocky 的自定义 DNF 软件包仓库,则可能需要在运行软件包更新之前更新这些仓库。为此,更新 ${KAYOBE_CONFIG_PATH}/dnf.yml 中的配置并运行以下命令

(kayobe) $ kayobe seed host configure --tags dnf --kolla-tags none

软件包更新

要更新一个或多个软件包

(kayobe) $ kayobe seed host package update --packages <package1>,<package2>

要更新所有符合条件的软件包,请使用 *,必要时进行转义

(kayobe) $ kayobe seed host package update --packages "*"

要仅安装已被标记为安全相关的更新

(kayobe) $ kayobe seed host package update --packages "*" --security

请注意,这些命令不会影响安装在容器中的软件包,只会影响安装在主机上的软件包。

如果正在使用超visor 主机,也可以更新 seed 超visor 主机上的软件包

(kayobe) $ kayobe seed hypervisor package update --packages <package1>,<package2>

内核更新

如果已更新内核,您可能需要重新启动 seed 主机以启动到新内核。可以使用以下命令执行此操作

(kayobe) $ kayobe seed host command run --command "shutdown -r" --become

检查 Bifrost 容器

seed 主机运行独立 Ironic 部署所需的各种服务。所有这些服务都在一个 bifrost_deploy 容器中运行。

通常,在 bifrost 容器中执行 shell 对于诊断操作问题很有帮助

注意

示例显示在使用 Docker 作为容器引擎时的命令。如果使用 Podman,只需将 docker 更改为 sudo podman 即可。

$ docker exec -it bifrost_deploy bash

服务通过 Systemd 运行

(bifrost_deploy) systemctl

日志存储在 /var/log/kolla/ 中,该目录挂载到 kolla_logs Docker 卷。

访问 Seed 服务

可以通过 baremetal 命令行界面访问 Ironic 和 Ironic inspector API

(bifrost_deploy) $ export OS_CLOUD=bifrost
(bifrost_deploy) $ baremetal node list
(bifrost_deploy) $ baremetal introspection list

备份与恢复

有两种主要方法可以备份和恢复 seed 上的数据。可以备份 Ironic 数据库。或者,如果 seed 服务在 VM 中运行,可以使用虚拟机备份。前者将消耗更少的存储空间。虚拟机备份尚未在此处介绍,备份计划也尚未介绍。任何备份和恢复过程都应提前进行测试。

数据库备份与恢复

可以使用许多用于备份 MariaDB 数据库的工具之一来备份数据库。

对于通常大小适中的 seed 数据库来说,一种简单的方法是 mysqldump。以下命令应全部在 seed 上执行。

备份

注意

示例显示在使用 Docker 作为容器引擎时的命令。如果使用 Podman,只需将 docker 更改为 sudo podman 即可。

在备份期间保持服务运行是安全的,但为了最大程度的安全,可以选择停止它们

docker exec -it bifrost_deploy systemctl stop ironic ironic-inspector

然后,执行备份

docker exec -it bifrost_deploy \
mysqldump --all-databases --single-transaction --routines --triggers > seed-backup.sql

如果服务在备份之前已停止,请再次启动它们

docker exec -it bifrost_deploy systemctl start ironic ironic-inspector

恢复

注意

示例显示在使用 Docker 作为容器引擎时的命令。如果使用 Podman,只需将 docker 更改为 sudo podman 即可。

在恢复数据库之前,应停止 Ironic 和 Ironic Inspector 服务

docker exec -it bifrost_deploy systemctl stop ironic ironic-inspector

然后可以安全地恢复数据库

docker exec -i bifrost_deploy \
mysql < seed-backup.sql

最后,再次启动 Ironic 和 Ironic Inspector 服务

docker exec -it bifrost_deploy systemctl start ironic ironic-inspector

运行命令

可以在 seed 主机上运行命令

(kayobe) $ kayobe seed host command run --command "<command>"

例如

(kayobe) $ kayobe seed host command run --command "service docker restart"

如果正在使用超visor 主机,也可以在 seed 超visor 主机上运行命令

(kayobe) $ kayobe seed hypervisor host command run --command "<command>"

要以 root 权限执行命令,请添加 --become 参数。添加 --verbose 参数允许查看命令的输出。