OpenStack部署(十四) 安装配置Horizon Dashboard
1 | 作者:李晓辉 |
前言
在OpenStack环境中,Horizon是提供Web界面管理功能的关键组件。它允许用户通过浏览器轻松管理云资源,包括虚拟机、网络、存储等。在之前的部署中,我们已经完成了多个核心服务(如Nova、Neutron、Cinder和Manila)的安装与配置。现在,我们将转向Horizon服务的部署,以提供一个直观且功能丰富的用户界面,进一步完善OpenStack云平台的用户体验。
本文将详细介绍如何在OpenStack环境中安装和配置Horizon服务。我们将逐步介绍Horizon服务的安装、配置以及启动过程,确保其能够正常运行并与已部署的服务集成。通过本文的指导,你将能够成功部署Horizon服务,为OpenStack云平台提供一个功能强大的Web管理界面,满足不同用户的管理需求。
Horizon服务概述
Horizon的作用
Horizon是OpenStack的Web界面管理组件,其主要功能包括:
资源管理:提供虚拟机、网络、存储等云资源的创建、管理和删除功能。
用户友好:提供直观的Web界面,使用户能够轻松管理云资源,无需直接操作命令行。
集成与扩展:与OpenStack的其他核心服务(如Nova、Neutron、Cinder等)紧密集成,并支持通过插件扩展功能。
多租户支持:支持多租户环境,允许不同租户独立管理自己的资源。
安全与认证:通过Keystone进行用户认证和授权,确保只有授权用户才能访问和管理资源。
Horizon的架构
Horizon服务由以下几个主要组件构成:
Horizon Web界面:提供用户交互的前端界面,基于Django框架构建。
身份认证服务:通过Keystone进行用户认证和授权。
后端服务集成:与Nova、Neutron、Cinder等服务进行通信,获取和管理资源信息。
工作原理
Horizon的工作原理可以概括为以下几个步骤:
用户登录:用户通过Web界面登录Horizon,输入用户名和密码。
认证与授权:Horizon通过Keystone验证用户身份,并获取用户的权限信息。
资源管理:用户在Web界面上执行操作,如创建虚拟机、配置网络等。Horizon将这些请求转发给相应的后端服务(如Nova、Neutron)。
反馈与显示:后端服务处理请求并将结果反馈给Horizon,Horizon将结果显示在Web界面上,供用户查看和进一步操作。
通过以上机制,Horizon服务为用户提供了一个直观、易用且功能强大的Web管理界面,使得OpenStack云平台的管理更加便捷和高效。
安装配置horizon服务
安装相应软件
在控制节点上安装Horizon服务及其依赖的软件包,为Horizon的运行提供必要的支持。
1 | yum install openstack-dashboard -y |
准备配置文件
/etc/openstack-dashboard/local_settings
是horizon的配置文件,根据你的OpenStack版本和需求,编辑该文件以完成以下配置。
搜索以下的参数并修改,如果不存在,就添加
配置OpenStack主机和允许的主机
指定OpenStack控制节点的主机名或IP地址,并允许所有主机访问Horizon。
1 | OPENSTACK_HOST = "controller" |
配置Memcached
配置Horizon使用Memcached作为会话存储后端,以提高性能和响应速度。
SESSION_ENGINE
:指定会话存储引擎为缓存。CACHES
:配置Memcached作为缓存后端,指定Memcached服务器的地址和端口。
根据你的OpenStack版本,选择合适的配置:
这个可能需要添加
bobcat 版本(2023.2)用下面这个
1 | SESSION_ENGINE = 'django.contrib.sessions.backends.cache' |
caracal 版本(2024.1)以后用下面这个
1 | SESSION_ENGINE = 'django.contrib.sessions.backends.cache' |
配置Keystone API
指定Keystone服务的API URL,用于用户认证和授权。
OPENSTACK_KEYSTONE_URL
:指定Keystone服务的API URL,用于用户认证和授权。
1 | OPENSTACK_KEYSTONE_URL = "http://%s:5000/identity/v3" % OPENSTACK_HOST |
配置Web根目录
指定Horizon的Web根目录,确保Horizon能够正确地提供Web界面。
如果不存在,添加以下配置:
1 | WEBROOT = '/dashboard/' |
启用多域支持
启用多域支持,允许不同租户独立管理自己的资源。
如果需要多域支持,添加以下配置:
OPENSTACK_KEYSTONE_MULTIDOMAIN_SUPPORT
:启用多域支持。OPENSTACK_KEYSTONE_DEFAULT_DOMAIN
:指定默认域名称。
1 | OPENSTACK_KEYSTONE_MULTIDOMAIN_SUPPORT = True |
配置API版本
添加以下配置以指定API版本:
1 | OPENSTACK_API_VERSIONS = { |
配置默认角色
添加以下配置以指定默认角色:
1 | OPENSTACK_KEYSTONE_DEFAULT_ROLE = "user" |
配置时区(可选)
根据需要配置时区:
1 | TIME_ZONE = "Asia/Shanghai" # 示例时区 |
确保Apache配置正确
确保/etc/httpd/conf.d/openstack-dashboard.conf
文件中包含以下行:
1 | vim /etc/httpd/conf.d/openstack-dashboard.conf |
WSGIApplicationGroup
:确保WSGI应用运行在全局组中。
1 | WSGIApplicationGroup %{GLOBAL} |
处理配置文件故障
Horizon的默认配置文件可能存在bug,需要手动修复。将以下相似行修改为:
1 | WSGIScriptAlias /dashboard /usr/share/openstack-dashboard/openstack_dashboard/wsgi.py |
WSGIScriptAlias
:指定Horizon的WSGI脚本路径。<Directory>
:指定Horizon的目录路径。
启动相关服务
重启Apache和Memcached服务,使配置生效。
1 | systemctl restart httpd.service memcached.service |
httpd.service
:Apache HTTP服务器,用于提供Horizon的Web界面。memcached.service
:Memcached服务,用于缓存会话数据。