Установка и настройка¶
Важно
Вначале необходимо произвести настройку окружения. Все команды выполняются только от суперпользователя.
Режим суперпользователя:
sudo -i
Важно
Установка производится на управляющий узел.
Установка¶
- Перед началом установки сохраните список установленных ранее пакетов, это позволит Вам безболезненно восстановить систему в случае ее повреждения. Для этого выполните следующие команды: - mkdir -p /tmp/tionix_rollback/scheduler pip freeze > /tmp/tionix_rollback/scheduler/pip_before.txt - После чего в каталоге - /tmp/tionix_rollback/schedulerбудет находиться файл- pip_before.txtс перечнем установленных приложений.
- Также сохраните версии миграции: - django-admin showmigrations --settings=tionix_scheduler.settings.django_settings > /tmp/tionix_rollback/scheduler/migrations.txt - Где: - /tmp/tionix_rollback/scheduler/- директория файла;
- migrations.txt- наименование файла с версиями миграций.
 
- Установите пакет TIONIX.Scheduler: - из репозитория Python-пакетов: - # Ubuntu, CentOS: pip install tionix-scheduler 
- из репозитория RPM пакетов: - # ALT Linux 7: apt-get -y install python-module-tionix_scheduler # CentOS: yum -y install python-tionix_scheduler 
 
- Сохраните список установленных пакетов после установки для возможности отката изменений: - pip freeze > /tmp/tionix_rollback/scheduler/pip_after.txt 
Установка на двух и более контроллерах¶
При установке TIONIX.Scheduler на двух и более контроллерах, необходимо:
- Реплицировать базу данных на каждый из контроллеров;
- Реплицировать брокер сообщений на каждый из контроллеров;
- Устанавливать модуль с одинаковыми параметрами на каждый из контроллеров.
Примечание
Удаление и диагностика модуля на каждом контроллере происходит таким же образом, как и в случае с одним контроллером.
Настройка¶
- Выполните первичную настройку модуля: - openstack tnx configure -n tnx_scheduler tnx_client 
- Настройте брокер сообщений RabbitMQ Server: - rabbitmqctl add_user tionix password rabbitmqctl add_vhost tionix rabbitmqctl set_permissions -p tionix tionix ".*" ".*" ".*" rabbitmqctl set_permissions tionix ".*" ".*" ".*" 
- Создайте каталог для лог-файлов с нужными правами: - mkdir -p /var/log/tionix/scheduler chown -R tionix:tionix /var/log/tionix/scheduler 
- Скопируйте образец конфигурационного файла, при использовании нестандартных параметров отредактируйте их (подробнее см. Файл конфигурации): - cp /etc/tionix/scheduler.yaml.example /etc/tionix/scheduler.yaml 
- Создайте базу данных на примере MySQL, настройте права, тип базы и остальные параметры: - # Зайдите в базу данных, используя пароль пользователя root mysql -uroot -p # Создайте пользователя tionix c паролем password CREATE USER 'tionix'@'localhost' IDENTIFIED BY 'password'; # Создайте базу данных tionix_scheduler CREATE DATABASE tionix_scheduler; # Дайте пользователю права на чтение, редактирование, выполнение любых действий над всеми таблицами базы данных tionix_scheduler GRANT ALL PRIVILEGES ON tionix_scheduler.* TO 'tionix'@'localhost'; # Осуществите выход из базы данных 
- Выполните миграцию базы данных: - openstack tnx db migrate -n tnx_scheduler 
- Включите и запустите службы systemd: - systemctl daemon-reload systemctl enable tionix-scheduler-beat.service systemctl start tionix-scheduler-beat.service systemctl enable tionix-scheduler-worker.service systemctl start tionix-scheduler-worker.service 
- Создайте сервис Scheduler API: - openstack service create --name tnx-scheduler --description "TIONIX Scheduler Service" tnx-scheduler 
- Создайте точки входа (endpoint): - openstack endpoint create --region RegionOne tnx-scheduler internal http://controller:10001 openstack endpoint create --region RegionOne tnx-scheduler admin http://controller:10001 openstack endpoint create --region RegionOne tnx-scheduler public http://controller:10001 
- Создайте симлинк на поставляемый конфигурационный файл Apache и перезапустите веб сервера: - # Ubuntu: ln -s /etc/apache2/conf-available/tionix-scheduler-dash.conf /etc/apache2/conf-enabled/tionix-scheduler-dash.conf service apache2 restart # ALT Linux 7: ln -s /etc/httpd2/conf/sites-available/tionix-scheduler-dash.conf /etc/httpd2/conf/sites-enabled/tionix-scheduler-dash.conf systemctl restart httpd2 - Примечание - Необходимо убедиться в корректности конфигурационного файла: проверить пути к установленным модулям, пути к логам, соответствие директив установленной версии Apache. 
Файл конфигурации¶
Примечание
По умолчанию в файле scheduler.yaml.example строки с уровнем логирования нет, она указывается при необходимости. Уровень логирования по умолчанию выставлен в общем конфигурационном файле. Подробнее ознакомиться с файлами конфигурации можно в соответствующем разделе.
Конфигурационный файл представлен в yaml формате и состоит из следующих секций и параметров:
| Параметр | Описание | Значение по умолчанию | 
|---|---|---|
| DB | Настройки базы данных, где: 
 | 
 | 
| LOG_LEVEL | Уровень логирования. Доступные значения: 
 Значения являются регистронезависимыми. Подробное описание параметров доступно в разделе Уровни логирования. | INFO | 
| ENTRY_GROUPS | Список наименований групп, по которым будет производиться сбор задач по точкам входа, например: tionix_tasks. | |
| TASK_LOCALE | Локальное наименование задач, собранных по точкам входа. Например, en. | 
| Параметр | Описание | Значение по умолчанию | 
|---|---|---|
| TIME_ZONE | Временная зона для логирования событий процессов Celery. | |
| CELERY_TASK_SERIALIZER | Задача сериализации. | |
| CELERY_RESULT_SERIALIZER | Результаты сериализации. | |
| CELERY_ACCEPT_CONTENT | Разрешенные операции сериализации для поступающих сообщений. | |
| CELERYBEAT_SYNC_EVERY | Количество выполненных задач до очередной синхронизации. | |
| CELERYBEAT_MAX_LOOP_INTERVAL | Интервал между проверками расписания. | |
| SENTRY | Настройки логирования Sentry, где: 
 | 
 | 
| SCHEDULER_WORKER_LOGFILE | Путь до лог файла службы tionix-scheduler-worker. | /var/log/tionix/scheduler/worker.log | 
| SCHEDULER_BEAT_LOGFILE | Путь до лог файла службы tionix-scheduler-beat. | /var/log/tionix/scheduler/beat.log | 
Дополнительные параметры¶
| Параметр | Описание | Значение по умолчанию | 
|---|---|---|
| TRACEBACK_ENABLED | Параметр для вывода трассировки ошибки при логировании. Возможные значения: 
 Значения являются регистронезависимыми. | False | 
Важно
При изменении параметров файла конфигурации, для вступления их в силу необходимо произвести процедуру, описанную в разделе «Обновление файла конфигурации».
План восстановления¶
В случае неудачной установки или обновления модуля TIONIX.Scheduler выполните возврат к исходному состоянию:
- Сравните версии миграций в файле - /tmp/tionix_rollback/scheduler/migrations.txtс текущими. При наличии отличий произведите миграцию на предыдущую версию для каждого из приложений. Пример миграции:- django-admin showmigrations --settings=tionix_scheduler.settings.django_settings openstack tnx db migrate -n tnx_scheduler --migration "timetable 0017_auto_20161206_1023" 
- Произведите возврат к предыдущему состоянию пакетов: - cd /tmp/tionix_rollback/scheduler diff --changed-group-format='%>' --unchanged-group-format='' pip_before.txt pip_after.txt > pip_uninstall.txt diff --changed-group-format='%<' --unchanged-group-format='' pip_before.txt pip_after.txt > pip_install.txt pip uninstall -r pip_uninstall.txt pip install -r pip_install.txt