前言



下面是关于一次openstack登陆异常问题的解决方法。由于每个环境可能有差异,仅作为一个参考。



报错


某天正在使用openstack时,突然就退出了,输入平时使用的账号和密码,却弹出Unable to establish connection to keystone endpoint(无法建立与keystone终结点的连接)

在这里插入图片描述
Unable to establish connection to keystone endpoint



解决方法



<1>无法登陆,并且根据提示,身份认证出现了异常。



<2>需要登陆openstack节点进行查看历史命令,并确认是否有其他管理员或用户对网络,身份认证,配置文件或其他内容有调整。



<3>如有调整,查看其调整内容,确认是否有影响。



<4>如无影响或无调整,接着查看openstack是否有你登录的账号。
openstack user list 这个命令可获取openstack账号。

当可列出你登录的账号时,证明不是有人删除了你的账号。
如果你的账号是被误删除,可使用如下命令添加。(如果账号或密码异常,web界面报出的异常就是 Invalid credentials 了,因此不是此问题导致)

openstack user create --domain default --password-prompt 你要创建的账号


<5>当你在服务器中查询账号,弹出如下报警(Missing value auth-url required for auth plugin password,即可证明是你的openstack用户的环境变量丢失。

需要重新加载一下,该openstack当时配置的用户的环境变量脚本(每个人放置的位置不同,文件名也许也不同,需自行查找;如果没配…)

source admin-openrc


备注:

用户环境变量内容,通常如下:

export OS_USER_DOMAIN_NAME=Default
export OS_PROJECT_NAME=admin
export OS_USERNAME=admin
export OS_PASSWORD=你的密码
export OS_AUTH_URL=http://controller:5000/v3
export OS_IDENTITY_API_VERSION=3
export OS_IMAGE_API_VERSION=2


通常执行完,这个操作就会恢复正常。如果是别的原因导致的还需要继续排除。



<6>如果访问还未恢复。查看keystone和http服务是否正常。
由于keystone是通过http服务进行调用,其日志通常是在http日志目录处。

查看端口是否存在,查看日志是否输出,错误日志输出了什么。

例如:

systemctl status httpd
netstat -lnput |grep httpd
netstat -lnput |grep 35357
netstat -lnput |grep 5000
tail -f /var/log/httpd/error.log

在这里插入图片描述

错误日志

[:error] [pid 115473] INFO openstack_auth.plugin.base Attempted scope to domain Default failed, will attemptto scope to another domain.
[:error] [pid 115473] INFO openstack_auth.forms Login successful for user "black" using domain "Default".
[:error] [pid 115473] UserWarning: Using keystoneclient sessions has been deprecated. Please update your software to use keystoneauth1.INFO openstack_auth.plugin.base Attempted scope to domain Default failed, will attemptto scope to another domain.

由于正常运行了几年之久,而keystone等配置文件没有调整记录,应该不是配置文件问题,先不查看配置文件。



<7>重新加载或重启一下http

无需担心重启http会影响虚拟机,实际上这个服务仅仅是控制节点用于展示和使用界面对虚拟机进行管理,不会导致虚拟机宕机或网络异常等情况。

systemctl restart httpd


备注:
实际上我这里是执行到这步就恢复了。只是加载文件,并重启web服务。并没有遇到其他原因导致的异常。



<8>如果还未恢复,继续查询memcached,rabbitmq等服务是否正常。这两个服务如果挂了,可以重启一下。

Logo

有“AI”的1024 = 2048,欢迎大家加入2048 AI社区

更多推荐