ProCloud Yandex
14.09.2023
читать 11 минут

Как установить Jenkins и настроить автоматическую сборку maven-проекта на...

/upload/iblock/77e/k8g8oqtzt4m9lmfr63ybp276pbvly1au/why-executives-don-t-get-devops-%28and-how-you-can-show-them-the-way%29_%281%29.jpg

В этом обучающем материале мы обсудим процесс установки Jenkins, а также рассмотрим пример автоматизации процесса сборки и развертывания его на веб-сервере Jetty.

Введение

В наше время Jenkins считается очень популярной системой, которая позволяет реализовать непрерывную интеграцию и поставку ПО. Если вам нужно облегчить интеграцию разрозненных копий вашего проекта с главной ветвью разработки, то Jenkins тот самый инструмент. Он автоматизирует процесс сборки проекта и тестирования. 

Требования

Требования у Jenkins достаточно низкие. Все что вам потребуется, это root пользователь или sudo доступ и ОС Ubuntu версии 20.04. 

Создание сервера ProCloud

С любого экрана панели управления вы можете найти кнопку “Создать” в правом верхнем углу. После переходим к созданию сервера, сперва выбираем операционную систему.

Как установить Jenkins и настроить автоматическую сборку maven-проекта на Ubuntu

Далее вы можете выбрать любую удобную вам конфигурацию.

Как установить Jenkins и настроить автоматическую сборку maven-проекта на Ubuntu

В конце выбираем зону доступности и внешнюю сеть с выделением публичного IP адреса. Доступ выберем через ssh, но вы всегда можете выбрать альтернативный вариант с генерацией собственного пароля. Даем название серверу и нажимаем “Создать сервер”.

Как установить Jenkins и настроить автоматическую сборку maven-проекта на Ubuntu

Спустя несколько минут виртуальная машина активируется, после чего вам потребуется скопировать ее адрес-IP:

Как установить Jenkins и настроить автоматическую сборку maven-проекта на Ubuntu

Для присоединения к серверу вводим следующую команду с индивидуальным адресом:

ssh root@<IP> 

В том случае, если создавая машину вы указали ключ-SSH, то для присоединения не потребуется пароль:

ssh -i <private_key> root@<IP>

Установка JDK

Взаимодействие с Maven и Jenkins возможно только благодаря Java. Следует учитывать, что для работы с Maven потребуется исключительно JDK. Давайте его установим:

apt-get update
apt-get install -y openjdk-11-jdk

После проверяем установку:

java -version

Установка Jenkins

Чтобы установить Jenkins необходимо ввести в консоль Ubuntu следующее 4 команды по очереди:

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-get update $ apt-get install -y jenkins

Проверяем успешность установки и статус:

$ systemctl status jenkins 

Установка Git

Он потребуется для клонирования репозитория с кодом по умолчанию на созданный виртуальный сервер:

$ apt-get install -y git

Уточняем версию:

$ git --version

Установка Maven

Нам необходимо установить Maven с помощью команды:

$ apt-get install -y maven

Проверяем установленную версию:

$ mvn --version

В выводе будет параметр “Maven home”, его необходимо запомнить, он потребуется нам в дальнейшем.

Настройка Jenkins

На этом этапе у нас уже имеется необходимый софт, так что мы приступаем к конфигурации Jenkins. Изначально открываем в любом браузере страницу с таким адресом – http://[IP -нашего-сервера]:8080:

На появившейся странице необходимо ввести ваш пароль администратора. Его можно найти в файле: /var/lib/jenkins/secrets/initialAdminPassword. Продолжаем работу с командной строкой Ubuntu:

$ cat /var/lib/jenkins/secrets/initialAdminPassword

Вводим полученный пароль на открытую страницу в браузере. На следующем этапе необходимо поменять режим на “Установка рекомендуемых плагинов”. Они будут устанавливаться с Jenkins. Для этого указываем “Install suggested plugins”.

Далее необходимо создать ваш личный профиль администратора.

Как установить Jenkins и настроить автоматическую сборку maven-проекта на Ubuntu

Запомните имя юзера и пароль, который указали, он нужен для дальнейших действий.

После этого Jenkins вас попросит перепроверить публичный адрес машины, проверяем и нажимаем “Продолжить”.

Если все выполнено верно, то перед вами откроется следующее окно, которое указывает на успешное завершение настройки:

Как установить Jenkins и настроить автоматическую сборку maven-проекта на Ubuntu

Настройка Maven в Jenkins

У Jenkins есть нюанс – он не во всех случаях находит установленный Maven. Давайте укажем его самостоятельно:

Как установить Jenkins и настроить автоматическую сборку maven-проекта на Ubuntu

Проходим в данный раздел:

Как установить Jenkins и настроить автоматическую сборку maven-проекта на Ubuntu

Убираем галочку возле Install automatically, чтобы у нас появилась возможность редактировать поля:

Как установить Jenkins и настроить автоматическую сборку maven-проекта на Ubuntu

В них указываем произвольное имя, а путь до папки Maven home нужно взять из пункта “Установка Maven”. Далее фиксируем конфигурацию и выполняем перезапуск командой:

$ systemctl restart jenkins

Создание автоматической сборки

После запуска Jenkins переходим в веб-интерфейс и авторизируемся под нашей учетной записью (мы создали ее во время настройки).

После авторизации у вас откроется окно с меню (слева), нажимаем “Создать Item”. Указываем имя проекта и создаем его со свободной конфигурацией.

В разделе “Управление исходным кодом” указываем Git и прописываем URL нашего репозитория.

Важно! У вас может возникнуть проблема только если репозиторий приватный. Добавьте ваш пароль и логин в разделе Credentials.

Приступим к непосредственной конфигурации сборки. В разделе “Сборка” добавляем шаг сборки как указано ниже:

Как установить Jenkins и настроить автоматическую сборку maven-проекта на Ubuntu

После выбираем конфигурацию Maven в “Цели” вводим следующую строку:

clean install -P production

Результат компиляции будет располагаться в папке /var/lib/jenkins/workspace/project_name/target/.

В этом случае, после сборки у нас получится war-файл, готовый к деплою.

Давайте создадим второй шаг сборки. Он будет собирать файл-war в папку webapps Jetty, после начинать его перезапуск. В этот раз выбираем “Выполнить команду shell” и прописываем подряд команды в появившемся блоке “Команда”:

yes | cp -rf '/var/lib/jenkins/workspace/project_name/target/api.war' /opt/jetty/webapps/
systemctl restart jetty

Запуск сборки

Чтобы запустить нашу сборку потребуется выбрать в меню “Собрать сейчас”. Далее в “История сборок” у вас высветится индикатор выполнения задачи.

В процессе сборки будут последовательно выполняться такие шаги:

  1. Извлечение последней версии исходного кода проекта из Git репозитория.
  2. Инициация сборки загруженного Maven проекта.
  3. Размещение скомпилированных файлов в директории workspace.
  4. Перенос war-файла в директорию webapps на веб-сервере Jetty.
  5. Перезагрузка Jetty.

Автоматизированный процесс сборки и развертывания на веб-сервере готов. Теперь для запуска этого процесса достаточно нажать на кнопку "Собрать сейчас".

Заключение

Jenkins поддерживает множество систем контроля версий, таких как Git и CVS, интегрируется с Ant, Maven и Gradle, может выполнять различные скрипты и автоматически отправлять уведомления. Он поддерживает триггеры сборки по расписанию или событиям. Эта универсальность делает Jenkins ключевым инструментом в процессе разработки.


Новости
18 апреля 202418.04.2024
читать 2 минутычитать 2 мин
Дайджест обновлений продуктов Q1
5 апреля 202405.04.2024
читать 1 минутучитать 1 мин
ProCloud CPO Диана Беда в рейтинге ИТ-лидеров от Global CIO
28 марта 202428.03.2024
читать 1 минутучитать 1 мин
Запуск новой локации: Казахстан