1.20. 停止基础架构管理和计算服务


在开始使用 EDPM 之前,请确保停止源云上的计算、libvirt、负载均衡、消息传递和数据库服务。您还需要在 Compute 主机上禁用用于模块化 libvirt 守护进程的存储库。

在此步骤后,源云的 control plane 可以被取消处理,这只会停机云控制器、数据库和消息传递节点。必须保持正常运行的节点是运行计算、存储或网络程序角色(由 Tripleo Heat 模板涵盖的可组合角色)的节点。

1.20.1. 变量

定义以下步骤中使用的 shell 变量。定义计算节点名称 IP 对的映射。这些值只是说明,引用单一节点独立 director 部署,使用适合您环境的值:

EDPM_PRIVATEKEY_PATH="~/install_yamls/out/edpm/ansibleee-ssh-key-id_rsa"
declare -A computes
computes=(
  ["standalone.localdomain"]="192.168.122.100"
  # ...
)
Copy to Clipboard Toggle word wrap

这些 ssh 变量与 ssh 命令一起使用,而不是 ansible 试图创建独立于其运行位置的指令。但是,如果您在正确的主机中,可以使用 ansible 命令实现相同的结果,例如停止服务:

. stackrc
ansible -i $(which tripleo-ansible-inventory) Compute -m shell -a "sudo systemctl stop tripleo_virtqemud.service" -b
Copy to Clipboard Toggle word wrap

1.20.2. 停止剩余的服务

从所有计算主机中删除冲突的存储库和软件包(如果是使用 Standalone TripleO 的 devsetup)。这是安装 libvirt 软件包所必需的,当这些主机被用作 External DataPlane Managed (EDPM)节点时,在 podman 容器中不再运行模块化 libvirt 守护进程。

可以使用依赖于之前定义的环境变量和功能的简单脚本自动执行这些步骤:

ComputeServicesToStop=(
                "tripleo_nova_compute.service"
                "tripleo_nova_libvirt.target"
                "tripleo_nova_migration_target.service"
                "tripleo_nova_virtlogd_wrapper.service"
                "tripleo_nova_virtnodedevd.service"
                "tripleo_nova_virtproxyd.service"
                "tripleo_nova_virtqemud.service"
                "tripleo_nova_virtsecretd.service"
                "tripleo_nova_virtstoraged.service")

PacemakerResourcesToStop=(
                "galera-bundle"
                "haproxy-bundle"
                "rabbitmq-bundle")

echo "Disabling systemd units and cleaning up for compute services"
for i in "${!computes[@]}"; do
    SSH_CMD="ssh -i $EDPM_PRIVATEKEY_PATH root@${computes[$i]}"
    for service in ${ComputeServicesToStop[*]}; do
        echo "Stopping the $service in compute $i"
        if ${SSH_CMD} sudo systemctl is-active $service; then
            ${SSH_CMD} sudo systemctl disable --now $service
            ${SSH_CMD} test -f /etc/systemd/system/$service '||' sudo systemctl mask $service
        fi
    done
done

echo "Stopping pacemaker services"
for i in {1..3}; do
    SSH_CMD=CONTROLLER${i}_SSH
    if [ ! -z "${!SSH_CMD}" ]; then
        echo "Using controller $i to run pacemaker commands"
        for resource in ${PacemakerResourcesToStop[*]}; do
            if ${!SSH_CMD} sudo pcs resource config $resource; then
                ${!SSH_CMD} sudo pcs resource disable $resource
            fi
        done
        break
    fi
done
Copy to Clipboard Toggle word wrap
返回顶部
Red Hat logoGithubredditYoutubeTwitter

学习

尝试、购买和销售

社区

关于红帽文档

通过我们的产品和服务,以及可以信赖的内容,帮助红帽用户创新并实现他们的目标。 了解我们当前的更新.

让开源更具包容性

红帽致力于替换我们的代码、文档和 Web 属性中存在问题的语言。欲了解更多详情,请参阅红帽博客.

關於紅帽

我们提供强化的解决方案,使企业能够更轻松地跨平台和环境(从核心数据中心到网络边缘)工作。

Theme

© 2025 Red Hat