Операция Jenkins build job — аналог планировщика задач CRON в Jenkins, имеющий по сравнению с системным планировщиком ряд преимуществ.
Jenkins jobs и операция Jenkins build job
Часто используемое средство CI/CD.
jobs позволяют по расписанию выполнять определенные задачи, например, готовые скрипты.
Примеры применения:
- мониторинг
- создание бэкапов
- обновление
Отличия Jenkins jobs от cron:
1.
Предполагают ведение логов, в которые пишется отладочная информация в гораздо более наглядном виде, чем записи в syslog для системного планировщика. К этим логам имеет доступ в том числе непривелегированный пользователь
2.
Контроль за выполнением задач. Одно задание может быть зависимостью другого и запускаться только если предыдущее отработало нормально.
3.
jobs могут задаваться вызовами API
4.
Дают бОльшую безопасность. С правами системных пользователей (как cron) можно запускать задачи от пользователя jenkins. Также можно рассматривать это как недостаток.
Для задач jenkins периодичность выполнения задается так же:
minute hour daymonth month dayweek
В качестве примера можно добавить задачу, которая будет проверять запущен ли веб-сервер и если нет — запускать его. Или просто записывать время в файл. Рассмотрим добавление второй задачи. Разницы с первой нет, только сама команда.
Пример Jenkins jobs
На главной странице после авторизации доступна ссылка, перейдя по которой можно добавить задачу
Задаче нужно дать имя и указать тип. Чаще всего это Freestyle project
Можно указать описание
Затем в разделе Build Triggers отметить Build periodically и задать расписание как в CRON. Подсказку можно увидеть нажав на значок со знаком вопроса справа.
В разделе Build выбираем Shell script и вводим то, что нужно выполнять.
Затем Apply и Save.
Задача теперь будет выполняться по установленному расписанию.
Сверху в интерфейсе можно выбрать ее имя, task1
Доступны опции Status и Build History. В Build History отображаются события — случаи когда задача отработала.
При нажатии на 1.
Далее можно выбрать Console Output чтобы увидеть подробности по выполнению job. Если произошли какие-то ошибки — информация будет в выводе.
На самом сервере при выполнении задачи был создан файл /tmp/date.txt
[root@balancer tmp]# cat date.txt
Wed Jan 16 06:33:02 UTC 2019
Jenkins позволяет выполнять сложные задачи, но принцип их задания аналогичен рассмотренному.