Планировщик заданий¶
Планировщик заданий в Портале администратора позволяет создавать задания для выполнения административных операций однократно или по расписанию, просматривать состояние и историю запусков, изменять параметры задания и управлять заданием. Набор доступных типов заданий предзадан в системе. Страница Планировщик заданий доступна только пользователям с ролью admin.
Просмотр заданий¶
В Портале администратора перейдите в раздел .
На странице Планировщик можно просматривать созданные задания, их состояние и расписание, а также выполнять доступные действия.
Страница Планировщик заданий¶
На странице Планировщик отображается таблица со следующими столбцами:
Описание — назначение задания. Значение в столбце является ссылкой на страницу задания;
Тип — тип выполняемой операции: «Запуска внешнего CI (Jenkins)», «Перевод гипервизора в режим обслуживания», «Добавление ВМ в группу(ы) безопасности», «Исключение ВМ из групп(ы) безопасности», «Запуск Gitlab stage job»;
Расписание — дата и время однократного запуска или расписание периодического задания;
Статус — текущее состояние задания: «Запланировано», «Приостановлено» или «Завершено»;
Запускался — информация о выполнении задания. До первого запуска отображается
---;Последний запуск — дата и время последнего запуска. До первого запуска отображается
---;Следующий — дата и время следующего запуска. Значение отображается в том числе для приостановленного задания;
Actions — доступные действия над заданием.
Над таблицей доступны поиск по полю Описание и фильтры по типу, статусу задания и статусу последнего запуска. Для фильтра по статусу последнего запуска доступны значения «Выполняется», «Успешно», «Ошибка» и «Отменено». В нижней части таблицы можно переключать страницы и изменять количество отображаемых строк.
Создание задания¶
Для создания задания:
На странице Планировщик над таблицей нажмите Создать задание.
В открывшемся окне укажите параметры создаваемого задания. Поля, отмеченные символом
*, обязательны для заполнения:Описание — назначение задания;
Тип задания — выполняемая операция:
Выбор типа задания¶
Запуска внешнего CI (Jenkins) — запуск пайплайна Jenkins. Для задания укажите:
Пользователь — пользователь, предварительно созданный в Jenkins;
Путь к токену в Vault — путь к значению пароля пользователя в хранилище
secret_v2Vault. Иерархия каталогов и наименование секрета могут быть произвольными. Например, для путиsecret_v2/jenkins/user1_tokenукажите/jenkins/user1_token, гдеuser1_tokenсоответствует значению поля Key секрета;URL пайплайна — URL пайплайна Jenkins. FQDN из URL должен разрешаться через DNS, а с серверов LCM и Control должен быть настроен сетевой доступ к Jenkins;
Параметры запуска — необязательные аргументы пайплайна в формате
ключ=значение. Каждую пару добавляйте отдельной строкой с помощью кнопки +.
При создании задания система проверяет корректность указанного имени пользователя и значения пароля из секрета. Если необходимые условия не выполнены, создание задания завершается ошибкой. Сертификат Jenkins должен быть подписан тем же центром сертификации, что и сертификаты сервисов платформы. Если сертификат подписан другим центром сертификации, добавьте сертификат этого центра в доверенные;
Перевод гипервизора в режим обслуживания — переводит выбранные гипервизоры в режим обслуживания. Выберите один или несколько гипервизоров в поле Гипервизоры. В списке доступен поиск по имени, ID и зоне доступности;
Добавление ВМ в группу(ы) безопасности — добавляет выбранные ВМ в указанные группы безопасности. Выберите Виртуальные машины и Группы безопасности. При необходимости укажите Сети;
Исключение ВМ из групп(ы) безопасности — исключает выбранные ВМ из указанных групп безопасности. Выберите Виртуальные машины и Группы безопасности. При необходимости укажите Сети;
Запуск Gitlab stage job — выберите в поле Выбор задания одно из доступных заданий:
postconfig— применение задачиhost-configиз стадииpost-configпайплайна региона;client-config— применение клиентской конфигурации. Подробнее см. в разделе Пользовательские Ansible роли;mariadb-backup— резервное копирование базы данных OpenStack. Подробнее см. в разделе Резервное копирование базы данных OpenStack;audit-diff— аудит изменений конфигурации узлов. По результатам выполнения задания формируется отчет в двух форматах, отражающий различия между конфигурацией в GitLab и на серверах;rotate— ротация сервисных аккаунтов. Подробнее см. в разделе Обновление секретов.
Выбор задания GitLab¶
Для заданий
postconfig,client-configиaudit-diffдоступны дополнительные необязательные поля:KOLLA ARGS — дополнительные аргументы Kolla-Ansible. Выберите
--tagsили--skip-tagsи укажите значение. Одновременно можно использовать только один тип аргумента. Если аргумент не указан, изменения применяются ко всем компонентам;Группа узлов — узлы, для которых выполняется задание.
Дополнительные параметры задания GitLab¶
Для заданий
mariadb-backupиrotateдополнительные поля не отображаются.
Тип расписания — вариант запуска задания:
Однократно — укажите дату и время запуска. Дата и время должны находиться в пределах одного года. Отдельный часовой пояс для однократного задания не выбирается — используется часовой пояс браузера пользователя;
По расписанию (cron) — укажите cron-выражение в поле Расписание и выберите Часовой пояс запуска. Cron-выражение задается в формате: минуты, часы, день, месяц, день недели. Например,
0 4 * * *задает ежедневный запуск в 04:00.
Настройка задания по расписанию¶
Активировать — по умолчанию флажок включен.
Проверьте указанные параметры и нажмите Создать.
Задание также можно создать со страниц виртуальных машин и гипервизоров:
на странице для нескольких ВМ выберите объекты и в меню групповых действий выберите Создать задание. Для одной ВМ выберите Создать задание в меню действий строки. Выбранные ВМ автоматически передаются в форму создания задания. Доступны типы Добавление ВМ в группу(ы) безопасности и Исключение ВМ из групп(ы) безопасности;
на странице для нескольких гипервизоров выберите объекты и в меню групповых действий выберите Создать задание. Для одного гипервизора выберите Создать задание в меню действий строки. Выбранные гипервизоры автоматически передаются в форму создания задания, тип Перевод гипервизора в режим обслуживания устанавливается автоматически.
Особенности запуска заданий¶
Фактическое время запуска задания может отличаться от запланированного. При отсутствии высокой нагрузки и большого количества заданий в планировщике задержка может составлять от 3 до 13 минут.
Учитывайте следующие особенности:
задания, запланированные на время недоступности GitLab, запускаются после восстановления его работы;
перед плановыми работами в GitLab приостановите задания, запуск которых приходится на период недоступности, чтобы они не запускались после восстановления GitLab вне запланированного времени;
для заданий типа Запуска внешнего CI (Jenkins) система не отслеживает состояние выполнения пайплайна в Jenkins. Результат запуска задания определяется по ответу Jenkins на API-запрос запуска пайплайна.
Синхронизация и очистка заданий¶
AdminUI выполняет синхронизацию заданий с GitLab ежедневно в 00:00 UTC и при запуске контейнера adminui_backend. Источником актуального состояния заданий является база данных AdminUI.
Во время синхронизации:
параметры заданий в GitLab сравниваются с данными в базе данных AdminUI. При расхождениях значения в GitLab обновляются данными из базы AdminUI;
задания, которые есть в GitLab, но отсутствуют в базе данных AdminUI, удаляются из GitLab. Если задание выполняется, система сначала пытается остановить его. Если остановить задание не удалось, удаление откладывается до следующей синхронизации;
периодические и еще не выполнявшиеся однократные задания, которые есть в базе данных AdminUI, но отсутствуют в GitLab, создаются в GitLab;
завершенные однократные задания, которые есть в базе данных AdminUI, но отсутствуют в GitLab, удаляются из базы данных AdminUI;
завершенные однократные задания со статусами
success,failed,canceledилиskippedудаляются из GitLab и базы данных AdminUI после истечения срока хранения.
По умолчанию завершенные однократные задания хранятся 90 дней с момента последнего запуска.
Данные планировщика резервируются и восстанавливаются вместе с базой данных региона. После восстановления базы данных при запуске AdminUI выполняется синхронизация, которая согласовывает список заданий в GitLab с данными восстановленной базы данных AdminUI.
Чтобы изменить срок хранения:
В GitLab откройте проект региона и в файле
REGION.ymlзадайте параметрadminui_scheduler_one_time_job_retention_daysсо значением срока хранения в днях.Для мультирегиональной установки параметр задайте в проекте первого региона из списка
region_namesфайлаconfig/adminui/adminui-backend-regions.conf.Запустите пайплайн с параметром
KOLLA_ARGSсо значением-t adminui.
Управление заданиями¶
На странице Планировщик в столбце Actions откройте меню действий задания.
Действия с заданием¶
В меню доступны следующие действия:
Редактировать — доступно для периодических заданий в конечном статусе и однократных заданий, которые еще не запускались. Открывает форму редактирования задания;
Приостановить — доступно для задания в статусе «Запланировано». Приостанавливает задание, статус изменяется на «Приостановлено», расписание сохраняется;
Возобновить — доступно для задания в статусе «Приостановлено». Возобновляет задание, статус изменяется на «Запланировано»;
Запустить сейчас — запускает задание вне установленного расписания;
Удалить — удаляет задание. Перед удалением необходимо подтвердить действие в открывшемся окне.
Редактирование задания¶
Для редактирования задания:
На странице Планировщик в столбце Actions откройте меню действий задания и выберите Редактировать.
Также редактирование доступно по кнопке Редактировать на странице задания.
Измените необходимые параметры. Поле Тип задания недоступно для изменения после создания задания.
Редактирование задания¶
Нажмите Применить.
Просмотр задания¶
Чтобы открыть страницу задания, нажмите значение в столбце Описание.
На странице задания можно просмотреть его параметры и историю запусков, а также выполнить доступные действия.
Страница задания¶
На странице отображаются:
название, тип и текущий статус задания;
ID задачи;
запланированные дата и время запуска;
часовой пояс;
параметры задания;
информация о пользователе, который создал задание;
информация о пользователе, который изменил задание.
Таблица истории запусков содержит следующие столбцы:
Время запуска — дата и время запуска задания;
Время окончания — дата и время завершения задания;
Длительность — продолжительность выполнения задания;
Статус — статус запуска задания;
Журнал — журнал выполнения задания.
На странице задания доступны следующие действия:
Приостановить — доступно для задания в статусе «Запланировано». Приостанавливает задание;
Возобновить — доступно для задания в статусе «Приостановлено». Возобновляет задание;
Редактировать — доступно для периодических заданий в конечном статусе и однократных заданий, которые еще не запускались. Открывает форму редактирования задания;
Удалить — удаляет задание.
Действие Запустить сейчас доступно только в меню действий в столбце Actions на странице Планировщик.