Управление процедурами
Ключевые понятия описаны в статье Checker.
В статье описано управление процедурами в рамках ВЦОД:
- Просмотр определения процедуры.
- Планирование выполнения по расписанию.
- Ручной запуск процедуры.
- Остановка выполняющейся процедуры.
- Отслеживание статуса выполнения.
Просмотреть определение процедуры
Чтобы просмотреть определение процедуры, введите
где
name— имя обновляемой процедуры;-
json— формат возвращения ответа. Возможные значения:"no"— ответ возвращается в человекочитаемом формате. Значение по умолчанию,"yes"— ответ возвращается в формате JSON.
Команда поможет узнать, какие переменные vars требует процедура, и есть ли у них значения по умолчанию.
Планирование выполнения процедуры
Планирование процедур по расписанию доступно как для кластера во ВЦОД управления, так и для ВЦОД. Администратор ВЦОД может планировать только те процедуры, которые делегированы в его ВЦОД. Процедуры уровня кластера, например, фенсинг узлов, планируются администратором кластера и в данном руководстве не рассматриваются.
-
Чтобы процедура выполнялась автоматически по расписанию, введите команду
где
name— имя процедуры;vars— переменная процедуры. Имеет значение--vars '{"var": "value"}'. Обязательно, если переменнаяpublicне имеет значения по умолчанию.-
cron— периодичность выполнения процедуры. Период задается в формате"*****"где- первая * — минута. От 0 до 59,
- вторая * — час. От 0 до 23,
- третья * — день месяца. От 1 до 31,
- четвертая * — месяц. От 1 до 12,
- пятая * — день недели. От 0 до 7. Воскресенье=0 или 7.
Пример
"* * * * 7"— выполняется каждое воскресенье,
"* 2 * * 7"— каждые два часа по воскресеньям,
"*/1 * * * *"— каждую минуту.
Полное описание синтаксиса и примеровcronсм. GitLab Docs/Cron -
Изменить расписание для выполнения процедуры
-
Просмотр запланированных процедур
-
Чтобы удалить процедуру из расписания, сначала узнайте ее идентификатор командой
Затем удалите процедуру из расписания
где
uuid— идентификатор процедуры.Примечание
Удаление из расписания не останавливает уже запущенный экземпляр процедуры, но новые запуски по расписанию прекратятся
Ручной запуск процедур
Если нужно протестировать процедуру или выполнять ее вручную, введите команду
где
name— имя процедуры;vars— переменная процедуры. Имеет значение--vars '{"var": "value"}'. Обязательно, если переменнаяpublicне имеет значения по умолчанию;-
json— формат возвращения ответа. Возможные значения:"no"— ответ возвращается в человекочитаемом формате. Значение по умолчанию,"yes"— ответ возвращается в формате JSON.
Принудительная остановка процедур
Чтобы остановить процедуру вручную, введите
где uuid — идентификатор запущенной процедуры.
Команда может быть применена к процедуре, запущенной по плану или вручную.
Статусы запущенных процедур
Все запуски процедур, как по расписанию, так и ручные, имеют статус выполнения. Запланированные процедуры хранят только последний статус. История статуса хранится 90 дней, затем автоматически удаляется.
-
Чтобы просмотреть список статусов всех процедур, введите команду
-
Чтобы просмотреть статус определенной процедуры, введите
где
uuid— идентификатор статуса процедуры, полученный в результате командыchecker procedure status list;-
json— формат возвращения ответа. Возможные значения:"no"— ответ возвращается в человекочитаемом формате. Значение по умолчанию,"yes"— ответ возвращается в формате JSON.
В результате команды по статусу вернется следующая информация:
PENDING— процедура создана, но еще не начала выполняться;IN_PROGRESS— процедура исполняется;WAITING— процедура ждет завершения другой задачи;SUCCESS— успешное завершение;TIMEOUT— завершена по таймауту;ERROR— завершена с ошибкой.
Пример получения списка статусов и детальной информации
Практические советы
Тестирование новой процедуры
-
Запустите процедуру вручную для проверки выполнения
-
Получите UUID задачи из ответа.
-
Отслеживайте выполнение
-
Проверьте логи и результат. Если процедура отработала без ошибок, добавьте ее в выполнение по расписанию.
Анализ проблем
- Используйте параметр
--json yesдля машинночитаемого вывода ошибок. -
Проверяйте логи через команду
checker procedure status show. -
Убедитесь, что процедура делегирована в ваш ВЦОД. Если ее нет в списке при планировании, обратитесь к администратору кластера.
-
Проверьте корректность cron-выражения.
Дополнительная информация
- YAML-структуры процедур. Описание того, как устроены процедуры для общего понимания. Создание процедур выполняет администратор кластера.
- Примеры процедур. Готовые процедуры, которые вы можете использовать в своем ВЦОД после делегирования.
Термины и определения содержатся в статьях: