解决OpenStack一个官方未提及的bug

先放个链接,万一有人关注呢

优质文章推荐

↓ ↓ ↓ ↓ 

只会用scp?那也太Low了

很多人安装了Ubuntu第一步就做错了

基于Docker容器部署MySQL数据库

Linux系统目录结构讲解

正则表达式真的很强,可惜你不会写



在OpenStack的T版本中有一个官方文档未提及的bug:

一般来说,部署一个东西,在你可以访问到它登录界面的时候,已经足以说明是百分百部署成功的。谁能想到,即使在我看到OpenStack登录界面的时候还是遇到了坑。具体情况待我细细道来:

报错描述:

OpenStack的Dashboard仪表盘部署完成后,访问/dashboard跳转到/auth/login报404。

解决方式一

关于上述问题网上的一些技术文档一般都重新生成配置文件来解决(不建议):
cd /usr/share/openstack-dashboard python manage.py make_web_conf --apache > /etc/httpd/conf.d/openstack-dashboard.conf


解决方式二

这个方式不用重新生成配置文件,需要创建软连接与修改配置文件。
先创建策略文件(policy.json)的软链接,否则登录到dashboard将出现权限错误:
ln -s /etc/openstack-dashboard /usr/share/openstack-dashboard/openstack_dashboard/conf
此时,身份管理里面的项目、用户、组和角色都是无法打开的,错误日志如下。
Daemon process called 'keystone-public' cannot be accessed by this WSGI application: /usr/bin/keystone-wsgi-public
修改相关配置文件,找到
WEBROOT = '/' 
修改为
WEBROOT = '/dashboard'
解决方式如下。
vim /usr/share/openstack-dashboard/openstack_dashboard/defaults.py vim /usr/share/openstack-dashboard/openstack_dashboard/test/settings.py vim /usr/share/openstack-dashboard/static/dashboard/js/9937cc9f2cae.js#这个文件的名称每个人都是不一样的,这个目录下有3个文件,挨个查找即可
修改完成后,重新启动Apache与memcache
systemctl restart httpd.service memcached.service
此时已经可以访问到/dashboard了,但是。。。。。。

新的bug

在OpenStack登录界面中输入域、用户与密码后,按下回车两秒后的界面如下。

这。。。


收拾好心情,查看日志。
RuntimeError: Unable to create a new session key. It is likely that the cache is unavailable.
大致意思是:无法创建新的会话秘钥,也就是跟会话配置有关。
修改配置文件
vim /etc/openstack-dashboard/local_settings

SESSION_ENGINE = 'django.contrib.sessions.backends.cache'
修改为:
SESSION_ENGINE = 'django.contrib.sessions.backends.file'
重启服务
systemctl restart httpd.service memcached.service
解决!

来不及解释了,快上车!(进群看公告)


欢迎新的小伙伴加入!在这里,我们鼓励大家积极参与群内讨论和交流,分享自己的见解和经验,一起学习和成长。同时,也欢迎大家提出问题和建议,让我们不断改进和完善这个平台。

               点个在看,你最好看!

       给作者加鸡腿

请使用浏览器的分享功能分享到微信等