3.8 部署Web界面Horizon

一、安装 Horizon 软件包
首先,我们需要在控制节点上安装 Horizon 相关的软件包。Horizon 的包名叫 openstack-dashboard。
执行以下命令进行安装:
yum install openstack-dashboard -y
二、修改配置文件
安装完成后,我们需要修改 Horizon 的核心配置文件 /etc/openstack-dashboard/local_settings。
cp /etc/openstack-dashboard/local_settings /etc/openstack-dashboard/local_settings.bak 进行备份。这个配置文件使用的是 Python 语法,修改时一定要注意代码的缩进格式(严格对齐)。打开配置文件后,依次找到并修改以下配置项:
1. 指定控制节点主机名
将 OPENSTACK_HOST 修改为控制节点的主机名:
OPENSTACK_HOST = "controller"
2. 允许所有主机访问
为了能从浏览器访问到 Dashboard,需要允许所有的主机访问:
ALLOWED_HOSTS = ['*']
3. 配置缓存服务 (Memcached)
Horizon 需要使用 Memcached 来存储用户的会话信息(Session)。我们需要配置它连接控制节点上的 Memcached 服务:
SESSION_ENGINE = 'django.contrib.sessions.backends.cache'
CACHES = {
'default': {
'BACKEND': 'django.core.cache.backends.memcached.MemcachedCache',
'LOCATION': 'controller:11211',
}
}
4. 启用 Identity API v3
指定使用 Keystone 的 v3 版本 API 进行身份认证:
OPENSTACK_KEYSTONE_URL = "http://%s:5000/v3" % OPENSTACK_HOST
5. 启用多域支持
OpenStack 支持多域(Domain)管理,开启这个功能:
OPENSTACK_KEYSTONE_MULTIDOMAIN_SUPPORT = True
6. 配置各个组件的 API 版本
明确告诉 Horizon 其他 OpenStack 组件所使用的 API 版本:
OPENSTACK_API_VERSIONS = {
"identity": 3,
"image": 2,
"volume": 2,
}
7. 配置默认用户域
指定通过图形界面创建用户时,默认将用户分配到哪个域。设置为 Default 域:
OPENSTACK_KEYSTONE_DEFAULT_DOMAIN = "Default"
8. 配置默认用户角色
指定通过图形界面创建用户时的默认角色。由于本实验的学生身份,将其设置为 student 角色:
OPENSTACK_KEYSTONE_DEFAULT_ROLE = "student"
9. 配置时区
将时区修改为中国上海时间:
TIME_ZONE = "Asia/Shanghai"
三、重启服务并使其生效
修改完配置文件后,我们需要重启 Web 服务(httpd)和缓存服务(memcached)来让刚刚的配置生效。
执行以下命令重启并查看服务状态:
systemctl restart httpd memcached
systemctl status httpd memcached
四、验证图形界面访问
现在,我们就可以在浏览器中访问 OpenStack 的管理界面了。
打开浏览器,在地址栏输入控制节点的 IP 地址加上 /dashboard 路径,例如:http://控制节点的IP/dashboard。
正常情况下,你会看到如下的登录页面:
