3.6. 对 Keystone v3 仪表板身份验证进行故障排除
Django_openstack_auth 是一个可插拔 Django 身份验证后端,它与 Django 的 contrib.auth 框架一起使用,针对 OpenStack Identity 服务 API 验证用户。Django_openstack_auth 使用令牌对象来封装用户和 Keystone 相关信息。控制面板使用令牌对象来重建 Django 用户对象。
令牌对象当前存储:
- Keystone 令牌
- 用户信息
- 影响范围
- 角色
- 服务目录
控制面板使用 Django 的会话框架来处理用户会话数据。以下是可通过 local_settings.py 文件中的 SESSION_ENGINE 设置控制的大量会话后端列表:
- 本地内存缓存
- Memcached
- 数据库
- 缓存的数据库
- Cookie
在某些情况下,特别是在使用签名的 Cookie 会话后端时,当同时启用了多个或所有服务时,Cookie 的大小可能会达到其限制,仪表板可能无法登录。Cookie 大小增长的原因之一是服务目录。注册更多服务后,服务目录的大小就越大。
在这种情况下,为了提高会话令牌管理,请包含以下配置设置来登录控制面板,特别是在使用 Keystone v3 身份验证时:
在 /usr/share/openstack-dashboard/openstack_dashboard/settings.py 中,添加以下配置:
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 在同一个文件中,将 SESSION_ENGINE 更改为:
SESSION_ENGINE = 'django.contrib.sessions.backends.cached_db'
SESSION_ENGINE = 'django.contrib.sessions.backends.cached_db'
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 使用 mysql 命令连接数据库服务,将 USER 替换为要连接的用户名。USER 必须是 root 用户(或者至少作为具有正确权限的用户:create db)
mysql -u USER -p
# mysql -u USER -p
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 创建 Horizon 数据库。
mysql > create database horizondb;
mysql > create database horizondb;
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 退出 mysql 客户端。
mysql > exit
mysql > exit
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 进入 openstack_dashboard 目录并使用以下方法同步数据库:
cd /usr/share/openstack-dashboard/openstack_dashboard ./manage.py syncdb
# cd /usr/share/openstack-dashboard/openstack_dashboard $ ./manage.py syncdb
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 您不需要创建超级用户,因此请回答"n"对问题。
重新启动 Apache http 服务器。Red Hat Enterprise Linux:
#service httpd restart
#service httpd restart
Copy to Clipboard Copied! Toggle word wrap Toggle overflow