Операция 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
![Jenkins build job](https://server-gu.ru/wp-content/uploads/2019/01/jjobs1.png)
![jenkins jobs создание](https://server-gu.ru/wp-content/uploads/2019/01/jjob2.png)
На главной странице после авторизации доступна ссылка, перейдя по которой можно добавить задачу
Задаче нужно дать имя и указать тип. Чаще всего это Freestyle project
Можно указать описание
![jenkins build jobs добавление](https://server-gu.ru/wp-content/uploads/2019/01/jjob3.png)
![jenkins jobs выполнение](https://server-gu.ru/wp-content/uploads/2019/01/jjobs4.png)
Затем в разделе Build Triggers отметить Build periodically и задать расписание как в CRON. Подсказку можно увидеть нажав на значок со знаком вопроса справа.
В разделе Build выбираем Shell script и вводим то, что нужно выполнять.
![jenkins build jobs 5](https://server-gu.ru/wp-content/uploads/2023/05/jjobs5.png)
Затем Apply и Save.
Задача теперь будет выполняться по установленному расписанию.
Сверху в интерфейсе можно выбрать ее имя, task1
![jenkins jobs 6](https://server-gu.ru/wp-content/uploads/2019/01/jjobs6.png)
Доступны опции Status и Build History. В Build History отображаются события — случаи когда задача отработала.
При нажатии на 1.
![jenkins jobs 7](https://server-gu.ru/wp-content/uploads/2019/01/jjobs7.png)
Далее можно выбрать Console Output чтобы увидеть подробности по выполнению job. Если произошли какие-то ошибки — информация будет в выводе.
![jenkins jobs 8](https://server-gu.ru/wp-content/uploads/2019/01/jjobs8.png)
На самом сервере при выполнении задачи был создан файл /tmp/date.txt
[root@balancer tmp]# cat date.txt
Wed Jan 16 06:33:02 UTC 2019
Jenkins позволяет выполнять сложные задачи, но принцип их задания аналогичен рассмотренному.