Установка и настройка
Установка
Важно
Сначала необходимо произвести настройку окружения. Все команды выполняются только от суперпользователя.
Режим суперпользователя:
sudo -i
Важно
Установка производится на управляющий узел.
Перед началом установки сохраните список установленных ранее пакетов, это позволит Вам безболезненно восстановить систему в случае ее повреждения. Для этого выполните следующие команды:
mkdir -p /tmp/rollback/scheduler pip3 freeze > /tmp/rollback/scheduler/pip_before.txt
После чего в каталоге
/tmp/rollback/schedulerбудет находиться файлpip_before.txtс перечнем установленных приложений.Также сохраните версии миграции:
django-admin showmigrations --settings=scheduler.settings.django_settings > /tmp/rollback/scheduler/migrations.txt
Где:
/tmp/rollback/scheduler/- директория файла;migrations.txt- наименование файла с версиями миграций.
Установите пакет Scheduler:
из репозитория Python-пакетов:
pip3 install scheduler
Сохраните список установленных пакетов после установки для возможности отката изменений:
pip3 freeze > /tmp/rollback/scheduler/pip_after.txt
Примечание
Для установки Scheduler на Astra Linux (Smolensk) выполните следующее:
Подключите предоставленный Вам репозиторий с пакетами AccentOS.
Установите пакет командой:
sudo apt install -y aos-scheduler
Установка на двух и более контроллерах
При установке Scheduler на двух и более контроллерах, необходимо:
Реплицировать базу данных на каждый из контроллеров;
Реплицировать брокер сообщений на каждый из контроллеров;
Устанавливать модуль с одинаковыми параметрами на каждый из контроллеров.
Примечание
Удаление и диагностика модуля на каждом контроллере происходит таким же образом, как и в случае с одним контроллером.
Настройка
Выполните первичную настройку модуля:
openstack aos configure -n scheduler client
Настройте брокер сообщений RabbitMQ Server:
rabbitmqctl add_user aos password rabbitmqctl add_vhost aos rabbitmqctl set_permissions -p aos aos ".*" ".*" ".*" rabbitmqctl set_permissions aos ".*" ".*" ".*"
Создайте каталог для лог-файлов с нужными правами:
mkdir -p /var/log/aos/scheduler chown -R aos:aos /var/log/aos/scheduler
Скопируйте образец конфигурационного файла, при использовании нестандартных параметров отредактируйте их (подробнее см. Файл конфигурации):
cp /etc/aos/aos.conf.example /etc/aos/aos.conf cp /etc/aos/scheduler.conf.example /etc/aos/scheduler.conf
Создайте базу данных на примере MySQL, настройте права, тип базы и остальные параметры:
# Зайдите в базу данных, используя пароль пользователя root mysql -uroot -p # Создайте базу данных scheduler CREATE DATABASE scheduler; # Дайте права на чтение, редактирование, выполнение любых действий над всеми таблицами базы данных scheduler GRANT ALL PRIVILEGES ON scheduler.* TO 'aos'@'localhost' IDENTIFIED BY 'password'; GRANT ALL PRIVILEGES ON scheduler.* TO 'aos'@'%' IDENTIFIED BY 'password'; # Осуществите выход из базы данных
Отредактируйте секцию
[database]конфигурационного файлаetc/aos/scheduler.conf, например:[database] url = mysql+pymysql://aos:password@tst.stand.loc:3306/scheduler?charset=utf8
Выполните миграцию базы данных:
openstack aos db migrate -n scheduler
Включите и запустите службы systemd:
systemctl daemon-reload systemctl enable aos-scheduler-api.service systemctl start aos-scheduler-api.service systemctl enable aos-scheduler-beat.service systemctl start aos-scheduler-beat.service systemctl enable aos-scheduler-worker.service systemctl start aos-scheduler-worker.service
Создайте сервис Scheduler API:
openstack service create --name scheduler --description "Scheduler Service" scheduler
Создайте точки входа (endpoint):
openstack endpoint create --region RegionOne scheduler internal http://controller:10001 openstack endpoint create --region RegionOne scheduler admin http://controller:10001 openstack endpoint create --region RegionOne scheduler public http://controller:10001
Файл конфигурации
Примечание
Файл конфигурации позволяет переопределять секции и параметры общего файла aos.conf для конкретного модуля.
Примечание
По умолчанию в файле scheduler.conf.example строки с уровнем логирования нет, она указывается при необходимости. Уровень логирования по умолчанию выставлен в общем конфигурационном файле. Подробнее ознакомиться с файлами конфигурации можно в соответствующем разделе.
Конфигурационный файл представлен в ini формате и состоит из следующих секций и параметров:
Секция |
Параметр |
Описание |
Значение по умолчанию |
|---|---|---|---|
DEFAULT |
task_locale |
Локальное наименование задач, собранных по точкам входа. Например, en. |
en |
DEFAULT |
time_zone |
Временная зона для логирования событий процессов Celery. |
Europe/Moscow |
api |
host |
Хост сервиса scheduler api. |
0.0.0.0 |
api |
logfile |
Путь до лог файла службы tos-scheduler-api. |
|
api |
num_workers |
Количество gunicorn воркеров сервиса scheduler api. |
3 |
api |
port |
Порт сервиса scheduler api. |
10001 |
api |
threads |
Количество gunicorn потоков сервиса scheduler api. |
10 |
beat |
logfile |
Путь до лог файла службы tos-scheduler-beat. |
|
beat |
max_loop_interval |
Интервал между проверками расписания. |
30 |
beat |
sync_every |
Количество выполненных задач до очередной синхронизации. |
60 |
database |
url |
Настройка подключения к базе данных. |
mysql://tos:password@localhost:3306/scheduler |
Важно
При изменении параметров файла конфигурации, для вступления их в силу необходимо произвести процедуру, описанную в разделе «Обновление файла конфигурации».
План восстановления
В случае неудачной установки или обновления модуля Scheduler выполните возврат к исходному состоянию:
Сравните версии миграций в файле
/tmp/rollback/scheduler/migrations.txtс текущими. При наличии отличий произведите миграцию на предыдущую версию для каждого из приложений. Пример миграции:django-admin showmigrations --settings=scheduler.settings.django_settings openstack aos db migrate -n scheduler --migration "timetable 0017_auto_20161206_1023"
Произведите возврат к предыдущему состоянию пакетов:
cd /tmp/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 pip3 uninstall -r pip_uninstall.txt pip3 install -r pip_install.txt