Як встановити jenkins і налаштувати автоматичну збірку maven-проекту на ubuntu - vscale community

Jenkins є одним з популярних інструментів, що дозволяє реалізовувати підхід безперервної інтеграції (Continuous Integration, CI) і безперервного постачання (Continuous Delivery, CD) програмного забезпечення.

CI істотно полегшує інтеграцію розрізнених копії проекту з основною гілкою розробки, дозволяє налаштовувати автоматичну збірку проекту і запускати тести.

CD забезпечує в автоматичному режимі поставку і розгортання результатів збірки на цільових серверах.

У цій статті ми розглянемо, як встановити Jenkins, і на прикладі веб-додатки на Java покажемо, як автоматизувати процес складання та поставки його на веб-сервер Jetty.

Вихідний код веб-додатки лежить в git-репозиторії, а як інструмент збирання використовується Maven.

вимоги

  • Сервер Ubuntu 16.04 x64 (ми використовували наступну конфігурацію: Ubuntu 16.04 64 bit RAM 512Mb і SSD 20 Гб);
  • Користувач з root-правами.

Крок 1. Встановлення Jenkins

Заходимо під root-користувачем і виконуємо в командному рядку Ubuntu наступні команди:

Після установки система автоматично запустить сервіс Jenkins. Перевіряємо його статус за допомогою команди:

Як бачимо, сервіс запущений і перебувати в активному статусі. Якщо сервіс неактивний, то необхідно перевірити, чи вільний порт 8080 і вистачає оперативної пам'яті (Jenkins вимагає від 256MB до 1GB).

Крок 2. Встановлення Git

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

Крок 3. Установка Maven

Для роботи Maven нам знадобиться встановити JDK:

По завершенні установки виконуємо перевірку:

Встановлюємо сам Maven:

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

Тут необхідно запам'ятати значення Maven home. У нашому випадку це / usr / share / maven. Цей шлях буде потрібен в подальшому для настройки Jenkins.

Крок 4. Налаштування Jenkins

Всі необхідні установки зроблені, і можна перейти до налаштування Jenkins.

Управління Jenkins здійснюється через веб-інтерфейс, за замовчуванням доступний на порту 8080:

Як встановити jenkins і налаштувати автоматичну збірку maven-проекту на ubuntu - vscale community

Якщо інтерфейс не з'явився, то необхідно відкрити порт 8080 і перевірити статус роботи сервісу Jenkins.

Для продовження налаштування нам буде потрібно ввести пароль адміністратора, який зберігається в файл / var / lib / jenkins / secrets / initialAdminPassword.

Копіюємо пароль і виходимо з файлу за допомогою команду

Скопійований пароль вставляємо в поле введення і натискаємо "Продовжити".

На наступному кроці нам необхідно вибрати режим установки плагінів, які будуть встановлені разом з Jenkins. Вибираємо Install suggested plugins:

Як встановити jenkins і налаштувати автоматичну збірку maven-проекту на ubuntu - vscale community
Після установки всіх плагінів створюємо профіль адміністратора:

Як встановити jenkins і налаштувати автоматичну збірку maven-проекту на ubuntu - vscale community
Ім'я користувача і пароль запам'ятовуємо для подальшої роботи.

Натискаємо "Продовжити". На екрані з'явиться повідомлення, яке свідчить про готовність Jenkins до роботи:

Як встановити jenkins і налаштувати автоматичну збірку maven-проекту на ubuntu - vscale community

На цьому основна настройка закінчена. Натискаємо на кнопку "Start using Jenkins" і переходимо в робочу панель Jenkins.

Крок 5. Налаштування Maven в Jenkins

Jenkins не завжди розпізнає встановлений в системі Maven, тому його потрібно вказати вручну.

Вибираємо "Налаштувати Jenkins" в лівому меню:

Як встановити jenkins і налаштувати автоматичну збірку maven-проекту на ubuntu - vscale community

Переходимо до "Global Tool Configuration"

У вікні шукаємо розділ Maven і натискаємо на кнопку "Додати". Відкриваються поля для введення:

Як встановити jenkins і налаштувати автоматичну збірку maven-проекту на ubuntu - vscale community

Вводимо довільне ім'я і шлях до настановної папки Maven home, яку ми здобули на 3-му кроці під час перевірки версії. Знімаємо прапорець Install automatically і зберігаємо.

Щоб зміни вступили в силу, перезапускаємо Jenkins:

Крок 6. Створення автоматичного складання

Після перезавантаження відкриваємо знову веб-інтерфейс Jenkins і заходимо під обліковим записом адміністратора, яку ми створювали на етапі налаштування:

Як встановити jenkins і налаштувати автоматичну збірку maven-проекту на ubuntu - vscale community

У вікні натискаємо на посилання "Створіть нову задачу"

Як встановити jenkins і налаштувати автоматичну збірку maven-проекту на ubuntu - vscale community

Вводимо назву проекту, вибираємо "Створити задачу з вільною конфігурацією" і натискаємо "ОК" внизу сторінки.

На вкладці General знаходимо розділ "Управління вихідним кодом" і вибираємо Git. Система пропонує ввести нам URL Git сховища. Вводимо його:

Як встановити jenkins і налаштувати автоматичну збірку maven-проекту на ubuntu - vscale community

Якщо сховище приватний, то система видасть помилку про те, що немає доступ до сховища.

Додаємо логін і пароль в підрозділі Credentials. Вибираємо зі списку "Jenkins":

У вікні вводимо Username і Password:

Як встановити jenkins і налаштувати автоматичну збірку maven-проекту на ubuntu - vscale community

Додаємо і вибираємо зі списку створені credentials:

Помилка доступу більше не виводиться:

Після того, як ми вказали репозиторій з якого необхідно отримувати вихідний код, переходимо до налаштування збірки.

Знаходимо розділ "Збірка", натискаємо "Додати крок збірки" і вибираємо зі списку "Викликати мети Maven верхнього рівня"

Як встановити jenkins і налаштувати автоматичну збірку maven-проекту на ubuntu - vscale community

Вставляємо в поле "Цілі" команди для складання maven-проекту.

Результат складання буде зберігатися в папці / var / lib / jenkins / workspace / Lolipop / target /, де Lolipop - назва нашого проекту. В даному прикладі результатом збірки буде готовий до розгортання war-файл.

Як приклад розглянемо, яким чином автоматизувати процес розгортання war-файлу на веб-сервер Jetty, який працює на цій же машині.

Про Jetty і його установці можна більш детально прочитати тут.

Додамо ще один крок збірки, який буде копіювати war файл в папку webapps Jetty і перезапускати його. На цей раз обираємо зі списку "Виконати команду shell".

Як встановити jenkins і налаштувати автоматичну збірку maven-проекту на ubuntu - vscale community

На цьому настройка збірки закінчена, натискаємо "Зберегти" і переходимо до запуску.

Крок 7. Запуск збірки

Для запуску збірки в меню вибираємо "Зібрати зараз". Після цього в лівому нижньому кутку в розділі "Історія збірок" з'явиться індикатор процесу складання з датою і часом запуску:

Як встановити jenkins і налаштувати автоматичну збірку maven-проекту на ubuntu - vscale community

Під час складання Jetty буде виконувати послідовно наступні завдання:

Якщо збірка завершилася з помилкою, то маркер буде червоного кольору, а якщо успішно, то синього.

Як встановити jenkins і налаштувати автоматичну збірку maven-проекту на ubuntu - vscale community

Натиснувши на номер збірки і перейшовши в лівому меню в розділ Console Output, можна відстежити зневаджувальної збірки:

Як встановити jenkins і налаштувати автоматичну збірку maven-проекту на ubuntu - vscale community

Автоматичне прибирання і доставка на веб-сервер налаштована. Тепер ми можемо запускати її в потрібний момент за допомогою кнопки "Зібрати зараз". Якщо у вас кілька серверів викладки з різними конфігураціями, ви можете налаштувати збірку під кожну викладку.

Крок 8. Як змінити порт подключеніяJenkins

У ряді випадків порт 8080 зайнятий або його необхідно звільнити під інші сервіси. У розглянутому прикладі Jetty за замовчуванням запускається на порту 8080.

Щоб Jenkins підключався до іншого порту, в файлі etc / default / jenkins потрібно змінити значення змінної HTTP_PORT на бажаний порт і перезапустити сервіс Jenkins.

Як встановити jenkins і налаштувати автоматичну збірку maven-проекту на ubuntu - vscale community

висновок

Jenkins підтримує технології для роботи з різними системами контролю версій, включаючи Git, CVS, Subversion, Clearcase і Mercurial, може збирати проекти на Ant, Maven і Gradle, а також виконувати команди Windows, shell-скрипти і відправляти повідомлення про стан збирання в автоматичному режимі .

Завдяки такому різноманітному інструментарію Jenkins можна застосовувати на проектах з різними технологіями і будь-якої складності.

Jenkins також підтримує тригери збірки, які можуть викликати збірку за певним розкладом або події.

Всі ці переваги роблять Jenkins незамінним інструментом при побудові процесу розробки.