OpenStack部署(T版本)第七篇——仪表盘服务(Horizon)

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

优质文章推荐

↓ ↓ ↓ ↓ 

不会这条命令你还怎么玩Linux

ESXi虚拟化系统创建与应用

Linux网卡配置文件详解



书接上回:OpenStack部署6.0——网络服务(Neutron)

概述

Horizon是OpenStack项目中专门负责提供Web控制面板的重要组件。

Horizon的功能
1. 用户界面接口
Horizon的首要功能是为OpenStack云平台的用户提供了直观、用户友好的图形界面。通过Dashboard、Admin等界面,用户可以直接从浏览器访问OpenStack云资源,无需深入了解底层API或使用命令行界面。这使得初学者和非技术人员也能轻松地管理和操作云环境。
2. 统一资源管理
通过Horizon的界面,用户可以便捷地管理多种OpenStack资源,包括虚拟机、存储卷、镜像等。这种集中的资源管理方式消除了繁琐的命令行操作,大大简化了资源的创建、配置和监控流程,提高了效率。
3. 项目和用户管理
Horizon提供了功能强大的项目、用户和角色管理功能。管理员可以通过Horizon对不同项目进行隔离和管理,为每个项目分配特定的权限和资源。此外,角色管理功能使得访问控制变得更加精细化,确保了安全性和隐私保护。
4. 实时监控与资源查看
通过Horizon的Dashboard,用户可以实时监控虚拟机的运行状态以及整体的云平台资源使用情况。这些信息以图表和统计数据的形式展示,帮助用户全面了解云环境的性能和消耗情况,从而更好地进行资源规划和优化。
5. 与Heat的自动化集成
Horizon与OpenStack的Orchestration服务Heat紧密集成,支持自动化资源编排和部署。用户可以创建和管理包括镜像、应用模板等自动化功能,通过Horizon的界面实现云资源的自动扩展和配置,提升了云环境的自动化管理能力。
Horizon的架构
Horizon的架构是一个复杂的体系,涵盖了多个核心组件,确保了其高效稳定的运行:
1、Django程序框架:Horizon使用Django框架作为其后端的主要支持。Django是一个流行的Python Web应用框架,它提供了开发Web应用所需的基本功能,包括URL路由、表单处理、数据库交互等。
2、前端Angular界面:Horizon的前端使用了Angular框架,这使得用户界面的交互更加流畅和响应式。Angular的MVVM架构有助于将数据和用户界面分离,提高了Horizon的用户体验。
3、各个面板:Horizon的界面分为多个面板,每个面板对应OpenStack中的不同服务。这种模块化的设计让用户可以根据需要自由切换不同功能模块,实现了更好的定制和灵活性。
4、模块扩展:Horizon支持插件和模块扩展,这使得开发人员可以根据具体需求添加新的功能和特性。插件机制促进了Horizon的扩展性和适应性,使其能够满足不同用户群体的需求。
总结
Horizon是OpenStack中不可或缺的组件之一,它通过提供直观、用户友好的图形界面,将OpenStack的各项功能和服务集中呈现在用户面前。从资源管理、项目控制到实时监控和自动化集成,Horizon大大简化了OpenStack的使用和管理流程,提升了云计算平台的效率和易用性。通过其完善的架构和不断的创新,Horizon在OpenStack生态系统中发挥着不可替代的作用。

安装配置组件

在控制节点下载安装仪表盘的软件包

 yum install openstack-dashboard -y

编辑/etc/openstack-dashboard/local_settings文件

vim /etc/openstack-dashboard/local_settings
配置仪表盘在控制节点上使用OpenStack服务
OPENSTACK_HOST = "controller"

设置允许主机访问仪表板

ALLOWED_HOSTS = ['*']

配置memcached会话存储服务

SESSION_ENGINE = 'django.contrib.sessions.backends.cache'
CACHES = { 'default': { 'BACKEND': 'django.core.cache.backends.memcached.MemcachedCache', 'LOCATION': 'controller:11211', }}

该文件中只能保留一个会话存储配置,将多余的会话存储配置注释掉。

开启使用第三版认证API

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层网络服务的支持。如果你是跟这我前边文章做的,那么你也需要修改下面配置。

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"

这里我将时区设置为上海。

在配置文件/etc/httpd/conf.d/openstack-dashboard.conf中,如果不包括以上语句,则需要添加如下内容。

WSGIApplicationGroup %{GLOBAL}

为了避免报错,给予openstack-dashboard文件权限

chown -R apache:apache /usr/share/openstack-dashboard/

重新启动Web服务器和会话存储服务

systemctl restart httpd.service memcached.service

为了避免报404错误,尝试使用http://IP/dashboard/auth/login/进行访问。如果可以访问,但是显示不正常,可能是css和js文件路径有问题。需要修改配置文件

vi /etc/httpd/conf.d/openstack-dashboard.conf
修改内容如下
#WSGIScriptAlias /dashboard /usr/share/openstack-dashboard/openstack_dashboard/wsgi/django.wsgiWSGIScriptAlias / /usr/share/openstack-dashboard/openstack_dashboard/wsgi/django.wsgi#Alias /dashboard/static /usr/share/openstack-dashboard/staticAlias /static /usr/share/openstack-dashboard/static
重启Apache
systemctl restart httpd

验证操作

使用浏览器访问仪表板http://controller主机IP地址/dashboard,如图

输入default域凭证、用户名和密码可登录Horizon Web管理界面。用户名与密码在你的admin-openrc文件中。

如果登录失败,可以参考作者之前发布的OpenStack官方未提及的bug排查

未完待续。。。。

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

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

               点个在看,你最好看!

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