Jenkins jobs с примером и сравнение с CRON

Jenkins jobs — аналог планировщика задач CRON в Jenkins, имеющий по сравнению с системным планировщиком ряд преимуществ.

 

Jenkins jobs

Часто используемое средство CI/CD.

jobs позволяют по расписанию выполнять определенные задачи, например, готовые скрипты.

 

Примеры применения:

  • мониторинг
  • создание бэкапов
  • обновление

 

Отличия Jenkins jobs от cron:

1.
Предполагают ведение логов, в которые пишется отладочная информация в гораздо более наглядном виде, чем записи в syslog для системного планировщика. К этим логам имеет доступ в том числе непривелегированный пользователь

2.
Контроль за выполнением задач. Одно задание может быть зависимостью другого и запускаться только если предыдущее отработало нормально.

3.
jobs могут задаваться вызовами API

 

4.
Дают бОльшую безопасность. С правами системных пользователей (как cron) можно запускать задачи от пользователя jenkins. Также можно рассматривать это как недостаток.

 

Для задач jenkins периодичность выполнения задается так же:
minute hour daymonth month dayweek

Про CRON и расписание.

 

В качестве примера можно добавить задачу, которая будет проверять запущен ли веб-сервер и если нет — запускать его. Или просто записывать время в файл. Рассмотрим добавление второй задачи. Разницы с первой нет, только сама команда.

 

Пример Jenkins jobs

На главной странице после авторизации доступна ссылка, перейдя по которой можно добавить задачуjenkins jobs
Задаче нужно дать имя и указать тип. Чаще всего это Freestyle projectjenkins jobs создание

 

Можно указать описание

jenkins jobs добавление

 

Затем в разделе «Build Triggers» отметить «Build periodically» и задать расписание как в CRON. Подсказку можно увидеть нажав на значок со знаком вопроса справа.
jenkins jobs выполнение

 

В разделе «Build» выбираем «Shell script» и вводим то, что нужно выполнять.

jenkins jobs 5

Затем Apply и Save.

 

Задача теперь будет выполняться по установленному расписанию.

Сверху в интерфейсе можно выбрать ее имя, task1

jenkins jobs 6

 

Доступны опции Status и Build History. В Build History отображаются события — случаи когда задача отработала.

При нажатии на 1.

jenkins jobs 7

 

Далее можно выбрать Console Output чтобы увидеть подробности по выполнению job. Если произошли какие-то ошибки — информация будет в выводе.

jenkins jobs 8

 

На самом сервере при выполнении задачи был создан файл /tmp/date.txt

 

[root@balancer tmp]# cat date.txt

Wed Jan 16 06:33:02 UTC 2019

 

Jenkins позволяет выполнять сложные задачи, но принцип их задания аналогичен рассмотренному.