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 实际可以签发令牌(不输出令牌内容)。
|
# Apache 启动后,等待 Keystone 实际可以签发令牌(不输出令牌内容)。
|
||||||
log_info "等待 Keystone 管理员认证就绪..."
|
log_info "等待 Keystone 管理员认证就绪..."
|
||||||
for attempt in {1..12}; do
|
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
|
break
|
||||||
|
else
|
||||||
|
KEYSTONE_AUTH_STATUS=$?
|
||||||
fi
|
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
|
if [ "$attempt" -eq 12 ]; then
|
||||||
log_err "Keystone 认证失败,请检查 httpd、Keystone 配置和管理员密码。"
|
log_err "Keystone 认证失败,请根据上方客户端错误检查连接、服务配置或管理员凭证。"
|
||||||
exit 1
|
exit 1
|
||||||
fi
|
fi
|
||||||
sleep 2
|
sleep 2
|
||||||
@@ -485,7 +493,7 @@ systemctl restart openstack-glance-api openstack-glance-registry
|
|||||||
|
|
||||||
log_info "验证 Glance API 和管理员访问..."
|
log_info "验证 Glance API 和管理员访问..."
|
||||||
for attempt in {1..12}; do
|
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
|
break
|
||||||
fi
|
fi
|
||||||
if [ "$attempt" -eq 12 ]; then
|
if [ "$attempt" -eq 12 ]; then
|
||||||
|
|||||||
Reference in new issue
Block a user