fix: 优化 Keystone 认证重试逻辑并捕获输出错误
This commit is contained in:
1 parent
9236c8681b
commit
441f257db6
1 file changed
+11
-3
+11
-3
@@ -364,11 +364,19 @@ source "$ADMIN_OPENRC"
|
||||
# Apache 启动后,等待 Keystone 实际可以签发令牌(不输出令牌内容)。
|
||||
log_info "等待 Keystone 管理员认证就绪..."
|
||||
for attempt in {1..12}; do
|
||||
if openstack --os-auth-type password --os-api-timeout 10 token issue > /dev/null; then
|
||||
# 捕获两个输出通道,认证失败时保留客户端错误,成功时不显示令牌。
|
||||
if KEYSTONE_AUTH_OUTPUT=$(openstack --os-auth-type password token issue 2>&1); then
|
||||
unset KEYSTONE_AUTH_OUTPUT
|
||||
log_info "Keystone 管理员认证成功。"
|
||||
break
|
||||
else
|
||||
KEYSTONE_AUTH_STATUS=$?
|
||||
fi
|
||||
log_warn "Keystone 认证尚未就绪(第 $attempt/12 次,退出码 $KEYSTONE_AUTH_STATUS)。"
|
||||
printf '%s\n' "${KEYSTONE_AUTH_OUTPUT:-客户端未返回错误信息。}" >&2
|
||||
unset KEYSTONE_AUTH_OUTPUT
|
||||
if [ "$attempt" -eq 12 ]; then
|
||||
log_err "Keystone 认证失败,请检查 httpd、Keystone 配置和管理员密码。"
|
||||
log_err "Keystone 认证失败,请根据上方客户端错误检查连接、服务配置或管理员凭证。"
|
||||
exit 1
|
||||
fi
|
||||
sleep 2
|
||||
@@ -485,7 +493,7 @@ systemctl restart openstack-glance-api openstack-glance-registry
|
||||
|
||||
log_info "验证 Glance API 和管理员访问..."
|
||||
for attempt in {1..12}; do
|
||||
if openstack --os-api-timeout 10 --os-image-api-version 2 image list; then
|
||||
if openstack --os-image-api-version 2 image list; then
|
||||
break
|
||||
fi
|
||||
if [ "$attempt" -eq 12 ]; then
|
||||
|
||||
Reference in new issue
Block a user