一、准备环境
1.OpenStack仪表板Dashboard服务的项目名称是Horizon,它所需的唯一服务是身份服务keystone,开发语言是python的web框架Django
2.安装Train版本的Horizon有以下要求
- Python 2.7、3.6或3.7
- Django 1.11、2.0和2.2
- Django 2.0和2.2支持在Train版本中处于试验阶段
Ussuri发行版(Train发行版之后的下一个发行版)将使用Django 2.2作为主要的Django版本。Django 2.0支持将被删除。
[root@computer ~]# python2.7
>>> import django
>>> django.get_version()
'1.11.27'
二、在计算机节点上安装和配置仪表板
I.安装和配置组件
1.安装软件包:
[root@computer ~]# yum install openstack-dashboard -y
2.编辑文件并完成以下操作:/etc/openstack-dashboard/local_settings
将仪表板配置为在节点上使用 OpenStack 服务:controller
OPENSTACK_HOST = "controller"
允许主机访问仪表板:
ALLOWED_HOSTS也可以接受所有主机。这可能对开发工作有用,但可能不安全,不应在生产中使用。有关详细信息,请参阅https://docs.djangoproject.com/en/dev/ref/settings/#allowed-hosts。
ALLOWED_HOSTS = ['*']
配置会话存储服务:memcached ``` SESSION_ENGINE = ‘django.contrib.sessions.backends.cache’
CACHES = { ‘default’: { ‘BACKEND’: ‘django.core.cache.backends.memcached.MemcachedCache’, ‘LOCATION’: ‘controller:11211’, } }
- 启用标识 API 版本 3:
OPENSTACK_KEYSTONE_URL = “http://%s:5000/v3“ % OPENSTACK_HOST
- 启用对域的支持:
OPENSTACK_KEYSTONE_MULTIDOMAIN_SUPPORT = True
- 配置 API 版本:
OPENSTACK_API_VERSIONS = { “identity”: 3, “image”: 2, “volume”: 3, }
- 配置为通过仪表板创建的用户的默认域:Default
OPENSTACK_KEYSTONE_DEFAULT_DOMAIN = “Default”
- 配置为通过仪表板创建的用户的默认角色:user
OPENSTACK_KEYSTONE_DEFAULT_ROLE = “user”
- 如果选择网络选项 1,请禁用对第 3 层网络服务的支持:
- 如果选择网络选项2,此项忽略
OPENSTACK_NEUTRON_NETWORK = { … ‘enable_router’: False, ‘enable_quotas’: False, ‘enable_distributed_router’: False, ‘enable_ha_router’: False, ‘enable_lb’: False, ‘enable_firewall’: False, ‘enable_vpn’: False, ‘enable_fip_topology_check’: False, }
- 配置时区:
TIME_ZONE = “Asia/Shanghai”
- 完整的配置文件修改内容
[root@computer ~]# grep -v ‘^$’ /etc/openstack-dashboard/localsettings | grep -v ‘^#’ |head -44 import os from django.utils.translation import ugettext_lazy as from openstack_dashboard.settings import HORIZON_CONFIG DEBUG = False
允许主机访问仪表板,接受所有主机,不安全不应在生产中使用
ALLOWED_HOSTS = [‘*’] LOCAL_PATH = ‘/tmp’ SECRET_KEY=’90cf442cbc53b8b3edc5’
配置memcached会话存储服务
SESSION_ENGINE = ‘django.contrib.sessions.backends.cache’ CACHES = { ‘default’: { ‘BACKEND’: ‘django.core.cache.backends.memcached.MemcachedCache’, ‘LOCATION’: ‘controller:11211’, } }
EMAIL_BACKEND = ‘django.core.mail.backends.console.EmailBackend’
配置仪表盘在controller节点上使用OpenStack服务
OPENSTACK_HOST = “controller”
启用身份API版本3
OPENSTACK_KEYSTONE_URL = “http://%s:5000/v3“ % OPENSTACK_HOST
启用对域的支持
OPENSTACK_KEYSTONE_MULTIDOMAIN_SUPPORT = True
配置Default为通过仪表板创建的用户的默认域
OPENSTACK_KEYSTONE_DEFAULT_DOMAIN = “Default”
配置user为通过仪表板创建的用户的默认角色
PENSTACK_KEYSTONE_DEFAULT_ROLE = “user”
配置API版本
OPENSTACK_API_VERSIONS = { “identity”: 3, “image”: 2, “volume”: 3, } OPENSTACK_NEUTRON_NETWORK = { ‘enable_auto_allocated_network’: False, #自动分配的网络 ‘enable_distributed_router’: False, #Neutron分布式虚拟路由器(DVR) ‘enable_fip_topology_check’: True, #FIP拓扑检查 ‘enable_ha_router’: False, #高可用路由器模式 ‘enable_ipv6’: True, #ipv6网络 ‘enable_quotas’: True, #Neutron配额功能 ‘enable_rbac_policy’: True, #rbac政策 ‘enable_router’: True, #路由器的菜单和浮动IP功能,如果Neutron部署有三层功能的支持可以打开 ‘default_dns_nameservers’: [], #默认的DNS名称服务器 ‘supported_provider_types’: [‘‘], #网络支持的提供者类型,在创建网络时,该列表中的网络类型可供选择 ‘segmentation_id_range’: {}, #使用与提供网络ID范围,仅涉及到VLAN,GRE,和VXLAN网络类型 ‘extra_provider_types’: {}, #使用与提供网络类型 ‘supported_vnic_types’: [‘‘], #支持的vnic类型,用于与端口绑定扩展 ‘physical_networks’: [], #物理网络 }
配置时区为亚洲上海
TIME_ZONE = “Asia/Shanghai” ……
以下的内容忽略
…..
<a name="oNOv5"></a>
### 3.将以下行添加到**/etc/httpd/conf.d/openstack-dashboard.conf**,有的话不需要添加
[root@computer ~]# vim /etc/httpd/conf.d/openstack-dashboard.conf WSGIApplicationGroup %{GLOBAL} ## 此行为添加的内容
<a name="eMhOA"></a>
## II.完成安装
- 会话存储服务: 在控制节点上执行
[root@controller ~]# sed -i ‘/OPTIONS/c\OPTIONS=”-l 0.0.0.0,::1”‘ /etc/sysconfig/memcached [root@controller ~]# systemctl restart memcached.service [root@controller ~]# systemctl enable memcached.service
- 重建apache的dashboard配置文件
[root@computer ~]# cd /usr/share/openstack-dashboard [root@computer openstack-dashboard]# python manage.py make_web_conf —apache > /etc/httpd/conf.d/openstack-dashboard.conf
- 重新启动 Web 服务器
[root@computer ~]# systemctl restart httpd.service [root@computer ~]# systemctl enable httpd.service
<a name="AFtAt"></a>
## III.报错解决
建立策略文件(policy.json)的软链接,否则登录到dashboard将出现权限错误和显示混乱
[root@computer ~]# ln -s /etc/openstack-dashboard /usr/share/openstack-dashboard/openstack_dashboard/conf [root@controller ~]# systemctl restart memcached.service [root@computer ~]# systemctl restart httpd.service
<a name="wul1c"></a>
## 三、验证
修改windows的域名解析host文件 C:\Windows\System32\drivers\etc 10.0.0.21 computer
- 在浏览器访问仪表板,网址为
http://computer/auth/login/?next=/
(注意,和以前版本不一样,不加dashboard)
- 使用admin或myuser用户和default域凭据进行身份验证。
域: default
用户名: admin
密码: com.123
```