openstack的dashboard页面报Invalid service catalog service: compute

当尝试在OpenStack Dashboard创建image失败后,遇到大部分页面显示Invalid service catalog service: compute错误。通过查看错误日志,发现在base.py文件中get_service_from_catalog函数存在处理问题。解决方法包括:1) 直接修改源码,增加对无url情况的过滤;2) 查找并删除数据库中无url的'脏数据'。最终通过删除无效的compute服务记录并使用`openstack service delete`命令解决了问题。

今天在dashboard页面创建image失败后(可能和这个操作无关),大多数页面就报Invalid service catalog service: compute的错,然后就动手解决这个问题了,过程如下:

1、去/var/log/httpd/error_log文件里面去看错误日志,一个主要的截图如下:

    

2、然后去看最后一个报错的文件base.py,并打开它,找到报错的代码

    

    

经过调试发现get_service_from_catalog对数据的处理有问题,if 'type' not in service这句代码只能过滤type字段不存在的情况,不能过滤type为compute且没有url的情况。

3、原因找到了,所以解决方法有两种

    1)代码层面:直接改源码,把漏掉的情况也过滤掉

    2)运维层面:找到出现这种情况的原因,把‘脏数据’去掉

### 解析 OpenStack Dashboard 登录无效凭证问题 当遇到 `Invalid Openstack Identity credentials` 错误时,这通常意味着 Keystone 服务验证身份凭据失败。此问题可能由多种原因引起,包括但不限于配置文件中的 URL 设置不当、用户权限不足或认证端点不正确。 #### 配置 Keystone 认证地址 确保 `/etc/openstack-dashboard/local_settings.py` 文件中定义的身份服务URL指向正确的Keystone服务器位置[^4]: ```python OPENSTACK_KEYSTONE_URL = "http://<controller-ip>/identity/v3" ``` 这里的 `<controller-ip>` 应替换为实际控制器节点的 IP 地址。 #### 用户和服务角色确认 检查是否有足够的权限来访问所需资源。对于管理员账户而言,在命令行界面通过 keystone client 工具列出所有用户的列表并核实目标用户确实存在且具有适当的角色分配是非常重要的操作之一[^2]: ```bash openstack role list --user admin --project service ``` 如果发现缺少必要的角色,则可以利用如下指令授予相应权限: ```bash openstack role add --user admin --project service _member_ ``` #### 密码校验与更新 考虑到可能存在密码过期或是被更改的情况,建议重新设置admin或其他相关账号的新密码,并同步至环境变量以及 Horizon 的本地配置文件内。可以通过下面这条 SQL 命令直接修改数据库里的密码字段实现快速恢复(注意备份): ```sql UPDATE user SET password=PASSWORD('newpassword') WHERE name='admin'; ``` 之后记得清理浏览器缓存再尝试登录Dashboard页面。 另外需要注意的是,上述SQL语句仅适用于MySQL/MariaDB作为后端存储引擎的情形;如果是其他类型的数据库管理系统,请参照官方文档调整语法结构。 #### 测试连接性 最后一步是要保证网络层面能够顺利抵达Keystone API endpoint。可借助 curl 或者 python-openstackclient 进行简单的GET请求测试,观察返回的状态码是否正常(期望值应为200 OK),以此判断是否存在防火墙阻挡等问题影响通信链路畅通度。
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值