[ English | 한국어 (대한민국) | português (Brasil) | français | español | English (United Kingdom) | русский | 中文 (简体, 中国) | Esperanto | Deutsch | Indonesia | नेपाली ]
手动安装¶
此页面涵盖在生产环境中安装 horizon 的基本步骤。 如果您正在寻找开发环境,请参阅 快速入门。
有关系统依赖项,请参阅 系统要求。
安装¶
注意
在下面的命令中,将“<release>”替换为您选择的版本,例如“queens”或“rocky”。
如果您使用开发版本,请将“stable/<release>”替换为“master”。
克隆 Horizon
$ git clone https://opendev.org/openstack/horizon -b stable/<release> --depth=1 $ cd horizon
将 horizon python 模块安装到您的系统中
$ sudo pip install -c https://opendev.org/openstack/requirements/raw/branch/stable/<release>/upper-constraints.txt .
配置¶
本节包含运行 horizon 所需的关键设置的简要摘要。 有关更多详细信息,请参阅 设置参考。
设置¶
创建 openstack_dashboard/local/local_settings.py。 通常,复制 openstack_dashboard/local/local_settings.py.example 并进行编辑是一个好主意。 至少,需要修改以下设置
DEBUG设置为
FalseALLOWED_HOSTS设置为您的域名
OPENSTACK_HOST设置为您的 Keystone 端点的 IP。 您可能还需要更改
OPENSTACK_KEYSTONE_URL
注意
“配置”部分中的以下步骤是可选的,但在生产环境中强烈建议使用。
翻译¶
编译用于国际化的翻译消息目录。 如果您不需要支持除美国英语以外的语言,则不需要此步骤。 需要 GNU gettext 工具来编译消息目录。
$ sudo apt install gettext
$ ./manage.py compilemessages
静态资源¶
通过将 COMPRESS_OFFLINE = True 添加到您的 local_settings.py,来压缩您的静态文件,然后运行以下命令
$ ./manage.py collectstatic
$ ./manage.py compress
日志¶
Horizons 使用 Django 的日志配置机制,可以通过更改 local_settings.py 中的 LOGGING 字典来自定义。 默认情况下,Horizon 的日志示例将日志级别设置为 INFO。
Horizon 还使用许多单独记录的第三方客户端。 可以通过 Horizon 的 LOGGING 配置控制这些客户端的日志级别,但是行为可能会超出 Horizon 的控制范围。
有关配置 Horizon 中日志记录的更多信息,请阅读 Django logging directive 和 Python logging directive 文档。 Horizon 是基于 Python 和 Django 构建的。
会话存储¶
Horizon 使用 Django 的会话框架 来处理会话数据。 有许多可用的会话后端,这些后端通过 local_settings.py 文件中的 SESSION_ENGINE 设置进行选择。
Memcached¶
SESSION_ENGINE = 'django.contrib.sessions.backends.cache'
CACHES = {
'default': {
'BACKEND': 'django.core.cache.backends.memcached.PyMemcacheCache',
'LOCATION': 'controller:11211',
}
}
使用诸如 memcached 之类的应用程序进行外部缓存可以提供持久性和共享存储,并且对于小型部署和/或开发非常有用。 但是,对于分布式和高可用性场景,memcached 存在固有的问题,这些问题超出了本文档的范围。
需求
正在运行且可访问的 Memcached 服务
已安装 Python memcached 模块
数据库¶
SESSION_ENGINE = 'django.core.cache.backends.db.DatabaseCache'
DATABASES = {
'default': {
# Database configuration here
}
}
基于数据库的会话是可扩展的(使用适当的数据库策略),持久的,并且可以实现高并发和高可用性。
这种方法的缺点是基于数据库的会话是速度最慢的会话存储之一,并且在重负载下会产生很高的开销。 数据库部署的适当配置也可能是一项艰巨的任务,超出了本文档的范围。
缓存数据库¶
为了减轻数据库查询的性能问题,您还可以考虑使用 Django 的 cached_db 会话后端,它同时利用您的数据库和缓存基础设施来执行写入缓存和高效检索。 您可以通过配置数据库和缓存(如上所述),然后使用
SESSION_ENGINE = "django.contrib.sessions.backends.cached_db"
部署¶
设置一个支持 WSGI 的 Web 服务器。 例如,在 Ubuntu 上安装 Apache Web 服务器
$ sudo apt install apache2 libapache2-mod-wsgi-py3
您可以使用提供的
openstack_dashboard/wsgi.py,或者使用以下命令生成一个openstack_dashboard/horizon_wsgi.py文件(它会检测您是否使用虚拟环境,以自动构建一个适配的 WSGI 文件)$ ./manage.py make_web_conf --wsgi
然后配置 Web 服务器通过 WSGI 托管 OpenStack 仪表板。 对于 apache2 Web 服务器,您可能需要创建
/etc/apache2/sites-available/horizon.conf。 DevStack 中的模板是一个很好的示例文件。 https://opendev.org/openstack/devstack/src/branch/2025.2/files/apache-horizon.template。 或者,您可以自动生成 Apache 配置文件。 如果您之前生成了openstack_dashboard/horizon_wsgi.py文件,它将使用该文件,否则将默认使用openstack_dashboard/wsgi.py$ ./manage.py make_web_conf --apache > /etc/apache2/sites-available/horizon.conf
与上述相同,但如果您需要 SSL 支持
$ ./manage.py make_web_conf --apache --ssl --sslkey=/path/to/ssl/key --sslcert=/path/to/ssl/cert > /etc/apache2/sites-available/horizon.conf
默认情况下,Apache 配置将启动与启动
make_web_conf命令的机器的 CPU 数量 + 1 个 Apache 进程。 如果目标机器不是相同的,或者您想指定进程数,请添加--processes选项$ ./manage.py make_web_conf --apache --processes 10 > /etc/apache2/sites-available/horizon.conf
启用上述配置并重新启动 Web 服务器
$ sudo a2ensite horizon $ sudo systemctl restart apache2
下一步¶
设置参考 列出了 horizon 可用的设置。
自定义 Horizon 描述了如何自定义 horizon。