[ English | 한국어 (대한민국) | Esperanto | Deutsch | français | português (Brasil) | español | русский | Indonesia | नेपाली | 中文 (简体, 中国) | English (United Kingdom) ]

Ручная установка

На этой странице описывается базовая установка horizon в среде эксплуатации. Если вы ищете среду разработчика, см. Quickstart.

Информацию о системных зависимостях см. в Системные требования.

Установка

Примечание

В командах ниже замените «<release>» на предпочитаемую вами версию, например «queens» или «rocky».

Если вы используете версию для разработки, замените «stable/<release>» на «master».

  1. Склонируйте Horizon

    $ git clone https://opendev.org/openstack/horizon -b stable/<release> --depth=1
    $ cd horizon
    
  2. Установите 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"

Развертывание

  1. Настройте веб-сервер с поддержкой 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
    
  2. Включите указанную выше конфигурацию и перезапустите веб-сервер

    $ sudo a2ensite horizon
    $ sudo service apache2 restart
    

Следующие шаги