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"
# ...
)
这些 ssh 变量与 ssh 命令一起使用,而不是 ansible 试图创建独立于其运行位置的指令。但是,如果您在正确的主机中,可以使用 ansible 命令实现相同的结果,例如停止服务:
. stackrc
ansible -i $(which tripleo-ansible-inventory) Compute -m shell -a "sudo systemctl stop tripleo_virtqemud.service" -b
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