[ English | 한국어 (대한민국) | Esperanto | Deutsch | français | português (Brasil) | español | русский | Indonesia | नेपाली | 中文 (简体, 中国) | English (United Kingdom) ]
Ручная установка¶
На этой странице описывается базовая установка horizon в среде эксплуатации. Если вы ищете среду разработчика, см. Quickstart.
Информацию о системных зависимостях см. в Системные требования.
Установка¶
Примечание
В командах ниже замените «<release>» на предпочитаемую вами версию, например «queens» или «rocky».
Если вы используете версию для разработки, замените «stable/<release>» на «master».
Склонируйте Horizon
$ git clone https://opendev.org/openstack/horizon -b stable/<release> --depth=1 $ cd horizon
Установите python модуль horizon в вашу систему
$ sudo pip install -c https://opendev.org/openstack/requirements/raw/branch/stable/<release>/upper-constraints.txt .
Конфигурация¶
В этом разделе содержится небольшой обзор критических настроек, необходимых для запуска horizon. Для получения более подробной информации см. Settings Reference.
Настройки¶
Создайте openstack_dashboard/local/local_settings.py
. Обычно хорошей идеей является копирование openstack_dashboard/local/local_settings.py.example
и его редактирование. Как минимум, необходимо будет изменить следующие настройки:
DEBUG
Установите на
False
ALLOWED_HOSTS
Впишите свое доменное имя или несколько доменных имен
OPENSTACK_HOST
Установите IP вашего Keystone endpoint. Вам также может потребоваться изменить
OPENSTACK_KEYSTONE_URL
Примечание
Следующие шаги в разделе «Конфигурация» являются необязательными, но настоятельно рекомендуются к выполнению в среде эксплуатации.
Переводы¶
Скомпилируйте каталоги сообщений перевода для интернационализации. Этот шаг не требуется, если вам не нужна поддержка языков, отличных от американского английского. Для компиляции каталогов сообщений требуется инструмент GNU gettext
.
$ sudo apt install gettext
$ ./manage.py compilemessages
Статические объекты¶
Сожмите статические файлы, добавив COMPRESS_OFFLINE = True
в local_settings.py
, затем выполните следующие команды
$ ./manage.py collectstatic
$ ./manage.py compress
Логирование¶
Horizon использует механизм конфигурации журналирования Django, который можно настроить, изменив LOGGING
в local_settings.py
. По умолчанию, пример логирования Horizon устанавливает его уровень на INFO
.
Horizon также использует ряд сторонних клиентов, которые ведут лог отдельно. Уровень логирования для них по-прежнему можно контролировать с помощью конфигурации LOGGING
Horizon, однако поведение может отличаться вне контроля Horizon.
Для получения дополнительной информации о настройке ведения лога в Horizon, пожалуйста, прочтите документацию Django logging directive и Python logging directive. Horizon построен на Python и Django.
Хранение сеансов¶
Horizon использует Django’s sessions framework для обработки данных сеанса. Доступно множество бэкэндов сеансов, которые выбираются с помощью настройки SESSION_ENGINE
в файле local_settings.py
.
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
}
}
Сеансы, поддерживаемые базой данных, масштабируемы (с использованием соответствующей стратегии базы данных), постоянны и могут быть сделаны параллельными и высокодоступными.
Недостатком этого подхода является то, что сеансы, поддерживаемые базой данных, являются одними из самых медленных хранилищ сеансов и требуют больших накладных расходов при интенсивном использовании. Правильная настройка развертывания вашей базы данных также может быть существенной задачей и выходит далеко за рамки этой документации.
Кэшированная база данных¶
Чтобы смягчить проблемы производительности запросов к базе данных, вы также можете рассмотреть возможность использования cached_db
Django, который использует как вашу базу данных, так и инфраструктуру кэширования для выполнения кэширования write-through и эффективного извлечения. Вы можете включить эту гибридную настройку, настроив и базу данных, и кэш, как обсуждалось выше, а затем используя
SESSION_ENGINE = "django.contrib.sessions.backends.cached_db"
Развертывание¶
Настройте веб-сервер с поддержкой WSGI. Например, установите веб-сервер Apache на Ubuntu
$ sudo apt install apache2 libapache2-mod-wsgi
Вы можете использовать предоставленный
openstack_dashboard/wsgi.py
или сгенерировать файлopenstack_dashboard/horizon_wsgi.py
с помощью следующей команды (которая определяет, используете ли вы виртуальную среду или нет, чтобы автоматически создать адаптированный файл WSGI)$ ./manage.py make_web_conf --wsgi
Затем настройте веб-сервер для размещения панели управления OpenStack через WSGI. Для веб-сервера apache2 вам может потребоваться создать
/etc/apache2/sites-available/horizon.conf
. Шаблон в DevStack является хорошим примером файла. https://opendev.org/openstack/devstack/src/branch/master/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 запустит количество процессов apache, равное количеству процессоров машины +1, на которой вы запускаете команду
make_web_conf
. Если целевая машина не та же самая или если вы хотите указать количество процессов, добавьте опцию--processes
$ ./manage.py make_web_conf --apache --processes 10 > /etc/apache2/sites-available/horizon.conf
Включите указанную выше конфигурацию и перезапустите веб-сервер
$ sudo a2ensite horizon $ sudo service apache2 restart
Следующие шаги¶
Settings Reference перечисляет доступные настройки для Horizon.
Customizing Horizon описывает, как настроить Horizon.