写在前面,本人之前升级python2.7.5到3.7.5之后,创建的软链接python直接使用的python3,在安装dashboard的过程中因为django和horizon的依赖包走了不少弯路,甚至因为database回头重做了nova服务
如果你正在使用python3某一个版本,可以修改一下软链接让python指向自带的python2.7.5,这样避免修改启动httpd时,依赖脚本中的shebang会调用别的版本,本人Python版本如下:

1、安装组件

2、修改/etc/openstack-dashboard/local_settings配置文件
①配置配置仪表板以在controller节点上使用OpenStack服务:

②允许所有主机访问仪表板:

③配置memcached会话存储服务:

④ 启用身份API版本3:

⑤ 启用对域的支持:

⑥ 配置API版本:

⑦ 配置Default为通过仪表板创建的用户的默认域:

⑧ 配置user为通过仪表板创建的用户的默认角色:

⑨如果/etc/httpd/conf.d/openstack-dashboard.conf不包括以下内容,请添加以下行
WSGIApplicationGroup
语法:WSGIApplicationGroup name
WSGIApplicationGroup指令,可用于指定WSGI应用程序或WSGI应用程序组属于哪个组。一般来说,在同一个应用程序组中,所有的WSGI应用程序处理请求的过程,都将在的同一个Python子解释器的上下文中执行。
在默认情况下,该“WSGIApplicationGroup”会被设置成“WSGIApplicationGroup %{RESOURCE}”,此时应用程序组的名称将被设置为服务器主机名和端口,如%服务器变量,WSGI环境变量scriptname的值被附加到文件分隔符中。
WSGIApplicationGroup %{GLOBAL},在该设置时,全局应用程序组中,任何WSGI应用程序都将在Python创建的第一个解释器上下文中执行。当Python的外部C语言扩展模块,使用简化的线程API来操作Python GIL时,就必须强制WSGI应用程序在第一个解释器中运行,原因是WSGI应用程序在Python创建的其余子解释器中都不能正确运行。

因为选择的网络选项1,禁用对第3层网络服务的支持:

最终确定安装
① 重新启动Web服务器和会话存储服务:

测试:( url地址解析的话使用的是主机名映射 )
如果你是要在物理机上进行测试,在windows的主机名映射文件中添加上与名映射:
① 以管理员身份打开hosts文件

② 编辑hosts文件


③ 浏览器进行测试

admin-openrc文件中有域名城和账户密码

④ 登陆之后界面
