一、准备环境

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支持将被删除。

    1. [root@computer ~]# python2.7
    2. >>> import django
    3. >>> django.get_version()
    4. '1.11.27'

    二、在计算机节点上安装和配置仪表板

    I.安装和配置组件

    1.安装软件包:

    1. [root@computer ~]# yum install openstack-dashboard -y

    2.编辑文件并完成以下操作:/etc/openstack-dashboard/local_settings

  • 将仪表板配置为在节点上使用 OpenStack 服务:controller

    1. OPENSTACK_HOST = "controller"
    1. 允许主机访问仪表板:
    2. ALLOWED_HOSTS也可以接受所有主机。这可能对开发工作有用,但可能不安全,不应在生产中使用。有关详细信息,请参阅https://docs.djangoproject.com/en/dev/ref/settings/#allowed-hosts。
    1. ALLOWED_HOSTS = ['*']
  • 配置会话存储服务:memcached ``` SESSION_ENGINE = ‘django.contrib.sessions.backends.cache’

CACHES = { ‘default’: { ‘BACKEND’: ‘django.core.cache.backends.memcached.MemcachedCache’, ‘LOCATION’: ‘controller:11211’, } }

  1. - 启用标识 API 版本 3

OPENSTACK_KEYSTONE_URL = “http://%s:5000/v3“ % OPENSTACK_HOST

  1. - 启用对域的支持:

OPENSTACK_KEYSTONE_MULTIDOMAIN_SUPPORT = True

  1. - 配置 API 版本:

OPENSTACK_API_VERSIONS = { “identity”: 3, “image”: 2, “volume”: 3, }

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

OPENSTACK_KEYSTONE_DEFAULT_DOMAIN = “Default”

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

OPENSTACK_KEYSTONE_DEFAULT_ROLE = “user”

  1. - 如果选择网络选项 1,请禁用对第 3 层网络服务的支持:
  2. - 如果选择网络选项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, }

  1. - 配置时区:

TIME_ZONE = “Asia/Shanghai”

  1. - 完整的配置文件修改内容

[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” ……

以下的内容忽略

…..

  1. <a name="oNOv5"></a>
  2. ### 3.将以下行添加到**/etc/httpd/conf.d/openstack-dashboard.conf**,有的话不需要添加

[root@computer ~]# vim /etc/httpd/conf.d/openstack-dashboard.conf WSGIApplicationGroup %{GLOBAL} ## 此行为添加的内容

  1. <a name="eMhOA"></a>
  2. ## II.完成安装
  3. - 会话存储服务: 在控制节点上执行

[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

  1. - 重建apachedashboard配置文件

[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

  1. - 重新启动 Web 服务器

[root@computer ~]# systemctl restart httpd.service [root@computer ~]# systemctl enable httpd.service

  1. <a name="AFtAt"></a>
  2. ## 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

  1. <a name="wul1c"></a>
  2. ## 三、验证

修改windows的域名解析host文件 C:\Windows\System32\drivers\etc 10.0.0.21 computer

  1. - 在浏览器访问仪表板,网址为

http://computer/auth/login/?next=/

  1. (注意,和以前版本不一样,不加dashboard
  2. - 使用adminmyuser用户和default域凭据进行身份验证。

域: default 用户名: admin
密码: com.123 ```