Установка и настройка¶
Установка¶
Важно
Сначала необходимо произвести настройку окружения. Все команды выполняются только от суперпользователя.
Режим суперпользователя:
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 | Путь до лог файла службы aos-scheduler-api. | |
api | num_workers | Количество gunicorn воркеров сервиса scheduler api. | 3 |
api | port | Порт сервиса scheduler api. | 10001 |
api | threads | Количество gunicorn потоков сервиса scheduler api. | 10 |
beat | logfile | Путь до лог файла службы aos-scheduler-beat. | |
beat | max_loop_interval | Интервал между проверками расписания. | 30 |
beat | sync_every | Количество выполненных задач до очередной синхронизации. | 60 |
database | url | Настройка подключения к базе данных. | mysql://aos:password@ localhost:3306/schedu ler |
Дополнительные параметры¶
Секция | Параметр | Описание | Значение по умолчанию |
---|---|---|---|
DEFAULT |
traceback_enabled |
Параметр для вывода трассировки ошибки при логировании. Возможные значения:
Значения являются регистронезависимыми. |
false |
Важно
При изменении параметров файла конфигурации, для вступления их в силу необходимо произвести процедуру, описанную в разделе «Обновление файла конфигурации».
План восстановления¶
В случае неудачной установки или обновления модуля 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