Описание
Jenkins - это система, для обеспечения процесса CI\CD.
CI - Continuous Integration - непрерывная интеграция. Это DevOps модель, в которой, общем случае, разработчики делают commit кода в repository и после этого происходит автоматический запуск build или compilation этого кода, затем автоматически запускаются тесты.
CD - Continuos Delivery/Deployment - непрерывная доставка/развертывание. Выполняются шаги из CI и затем артефакт (скомпилированный код или любая другая сущность) устанавливается на сервера.
- Jenkins состоит из:
- Master - набор xml конфигураций на сервере и запущенный процесс, по умолчанию web-интерфейс открывается на 8080 порту
- Slave - агенты. Могут быть установлены на сервере вместе с мастером, или отдельно. Каждый агент может иметь несколько процессов. Количество агентов означает количество сборок, которые можно одновременно запустить. Можно настроить агентов по запросу, чтобы ресурсы сервера не занимались зря, при этом, когда выполняется сборка jenkins запускает агента в docker, запрос выполняется и работа агента завершается. Мастер связывается с агентами или по ssh или агенты связываются с мастером jnpl (java network lancher protokol). На агенты можно повесить метки и указывать определенные действия для агентов с указанными метками
Установка
добавление репозитория
wget -O /etc/yum.repos.d/jenkins.repo https://pkg.jenkins.io/redhat-stable/jenkins.repo --no-check-certificateимпорт ключа
rpm --import https://pkg.jenkins.io/redhat-stable/jenkins.io.keyустановка
yum install epel-release java-11-openjdk jenkins gitприменение изменений
systemctl daemon-reloadоткрытие порта
firewall-cmd --permanent --add-service=jenkins firewall-cmd --reload
добавление ключа репозитория
curl -fsSL https://pkg.jenkins.io/debian-stable/jenkins.io.key | sudo tee /usr/share/keyrings/jenkins-keyring.asc > /dev/nullдобавление репозитория
echo deb [signed-by=/usr/share/keyrings/jenkins-keyring.asc] \ https://pkg.jenkins.io/debian-stable binary/ | sudo tee \ /etc/apt/sources.list.d/jenkins.list > /dev/nullустановка
apt update apt install openjdk-11-jre jenkins gitоткрытие порта
ufw allow 8080
systemctl start jenkins systemctl enable jenkins
Теперь можно подключится к web-интерфейсу jenkins перейдя на адрес сервера на котором он установлен с указанием порта 8080, например http://192.168.10.15:8080
/var/lib/jenkins/secrets/initialAdminPassword
Можно установить все предлагаемые плагины по кнопке Install suggested plugins или открыть окно выбора устанавливаемых плагинов по кнопке Select plugins to install.
Затем нужно задать имя пользователя, пароль и email администратора и нажать кнопку Save and Contune.
Теперь можно войти.
- В каталоге /var/lib/jenkins/jobs содержатся задания сборки в виде файлов, если сделать бэкап этого каталога, то можно будет восстановить сборку после удаления;
- В каталоге /var/lib/jenkins/jobs/job_name/build - содержатся билды сборки;
- В каталоге /var/lib/jenkins/workspace - содержатся файлы, которая сборка использует в процессе работы.
Настройка
- По умолчанию сборщик имеет два процесса, если требуется изменить количество нужно:
- Зайти в настройки по кнопке Настроить Jenkins;
- Зайти в Управление средами сборки;
- Нажать на Шестеренку справа у нужного сборщика;
- Указать Количество процессов-исполнителей.
- Изменение метки у агента (сборщика):
- Зайти в настройки по кнопке Настроить Jenkins;
- Зайти в Управление средами сборки;
- Нажать на Шестеренку справа у нужного сборщика;
- Указать Метки.
- Для более понятного отображения процесса сборок можно установить плагин Blue Ocean, для этого нужно:
- Зайти в настройки по кнопке Настроить Jenkins;
- Зайти в Управление плагинами;
- Выбрать вкладку Доступные;
- Набрать в поиске Blue Ocean;
- Поставить галочку у плагина;
- Нажать кнопку Install without restart внизу страницы.