Jenkins – це сервер автоматизації, який допомагає автоматизувати тестування та складання. Його використання, і його використовують понад 6000 проектів з відкритим вихідним кодом. Ось кілька прикладів користувачів Jenkins:
- Red Hat
Таким чином, Jenkins можна запускати практично на будь-якому обладнанні або операційній системі, що дозволяє користувачам використовувати власну інфраструктуру для налаштування сервера безперервної інтеграції або навіть середовища безперервної доставки.
Ця гнучкість – одна з причин, чому так багато компаній прийняли це програмне забезпечення: їм не потрібно було купувати дороге рішення у третьої сторони, а також їм самим не був потрібний досвід розробки, як це роблять більшість людей, що беруть участь у розробці Jenkins у вільний час . Фактично, за Jenkins взагалі не стоїть компанія; тому це проект із відкритим вихідним кодом.
Однак Jenkins також зазнав справедливої критики. Найважливішим моментом, на який слід звернути увагу є те, що Jenkins насправді може завдати більше шкоди, ніж користі, якщо використовувати її без попереднього обмірковування. Наприклад, одна особливість, яка подобається багатьом користувачам – це те, наскільки легко встановити плагіни для Jenkins – для цього є навіть графічний інтерфейс користувача!
Але це також означає, що існує безліч конфліктуючих плагінів, які можуть створювати проблеми при виконанні декількох завдань на вашому сервері, тому що кожен плагін має свої власні залежності. Вирішення цієї проблеми насправді досить просте: просто прочитайте примітки до випуску будь-яких плагінів, які ви збираєтеся встановити, і виберіть ті, які були оновлені для сумісності з вашою версією Jenkins.
Ще одна проблема, про яку люди часто забувають – це безпека. Знову ж таки, оскільки будь-хто може легко створити плагін Jenkins (давайте навіть не будемо говорити про те, який код вони можуть писати), достатньо всього одного неправильно сконфігурованого або зловмисно створеного плагіна, щоб ризикувати ваш сервер. Два роки тому був експлойт, який міг робити це автоматично, використовуючи тільки функцію центру оновлень.
Але це далеко не всі речі, які можуть піти не так, якщо ви не будете обережні з Jenkins. Ви також повинні убезпечити себе від людей, які можуть захотіти використовувати ваш сервер для власної вигоди, і пам’ятайте, що ваша безпека настільки гарна, наскільки гарні слабкі ланки в ньому.
Можливо, найважливішим з усього було б навчитися правильно використовувати Jenkins, прочитавши найкращі практики та документацію, замість просто встановлювати плагіни і сподіватися, що вони добре працюють один з одним.
Цей посібник покаже вам кроки по установці Jenkins Server у системі.
Вимоги
Щоб дотримуватися цього посібника, вам знадобляться:
- Сервер з доступом до Інтернету та порожнім жорстким диском не менше 15 ГБ.
- Доступ до root-користувача (пароль).
Оновлення системи
Рекомендується розпочати цю установку з оновлення наших репозиторіїв пакетів. Ви можете це зробити, виконавши наступні команди.
# RedHat, Rocky Linux sudo dnf check-update && sudo dnf update -y
# Ubuntu, Debian sudo apt update && sudo apt full-upgrade -y
Встановлення Java
Jenkins написаний на Java, тому вам потрібно буде встановити її у вашій системі. Установка JDK (Java Development Kit) є обов’язковою, її рекомендується використовувати з метою розробки. Якщо ви хочете розробити власні плагіни або запустити тести на своїх серверах складання, установка JDK може бути дуже корисною.
У цьому посібнику ми встановимо JDK 11. JDK 11 – це реалізація платформи Java SE 11 з відкритим вихідним кодом. Він містить, серед іншого: середовище виконання OpenJDK (складання 11 + 28) та компілятор (складання 11 + 28).
Пакет JDK 11 за замовчуванням включений до репозиторію , ви можете виконати наступну команду, щоб показати всі пакети java, доступні у вашій системі.
#Rocky Appstream sudo dnf search java-*-openjdk
Виконайте наведену нижче команду, щоб встановити JDK 11 у вашій системі.
# Rocky Linux sudo dnf -y install java-11-openjdk
# RedHat yum install epel-release # repository that provides 'daemonize' yum install java-11-openjdk-devel yum install jenkins
# Ubuntu, Debian sudo apt -y install openjdk-11-jdk
Після завершення процесу встановлення ви можете запустити наведену нижче команду, щоб переконатися, що Java встановлено успішно.
java -version
Додавання репозиторію Jenkins
Пакет Jenkins за замовчуванням не включений до репозиторію Rocky Appstream. На щастя, команда розробників Jenkins зробила свій репозиторій загальнодоступним, тому ми можемо використовувати його для нашої установки.
Ви можете додати репозиторій Jenkins, використовуючи такі команди:
# RedHat, Rocky Linux sudo wget -O /etc/yum.repos.d/jenkins.repo https://pkg.jenkins.io/redhat-stable/jenkins.repo sudo rpm --import https://pkg.jenkins.io/redhat-stable/jenkins.io.key
# Ubuntu, Debian 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
Тепер запустіть команду нижче, щоб перевірити, чи правильно ви додали репозиторій.
sudo dnf repolist
Встановлення Jenkins на Linux
Тепер, коли всі необхідні компоненти встановлені, настав час переходити до самої установки. Виконайте наступну команду, щоб встановити Jenkins.
# Rocky Linux sudo dnf -y install jenkins
# RedHat yum install jenkins
# Ubuntu, Debian sudo apt-get update sudo apt-get install jenkins
Після завершення інсталяції виконайте наступну команду, щоб запустити службу jenkins.
sudo systemctl start jenkins
Щоб запустити службу jenkins під час завантаження, виконайте наведену нижче команду.
sudo systemctl enable jenkins
Тепер перевіримо його статус, щоб переконатися, що все працює правильно.
sudo systemctl status jenkins.service
Доступ та налаштування Jenkins
Тепер, коли ваш сервер Jenkins запущено, ви можете отримати доступ до нього зі свого браузера. Для цього ви можете використовувати наступну URL-адресу.
http://IP-адрес_сервера:8080
Де server_ip – це фактична IP-адреса вашого сервера. Наприклад, якщо IP-адреса вашого сервера 192.168.1.3, ви будете використовувати наступну URL-адресу для доступу:
http://192.168.1.3:8080
Ви отримаєте наступну сторінку, якщо все працює правильно. Ви можете побачити /var/lib/jenkins/secrets/initialAdminPassword у вигляді відкритого тексту, де знаходиться пароль користувача, що використовується для доступу до Jenkins.
Це тимчасовий пароль, створений під час встановлення, але не показаний. Тепер поверніться до терміналу і виконайте команду нижче, щоб отримати пароль.
sudo cat /var/lib/jenkins/secrets/initialAdminPassword
Тепер скопіюйте пароль. Поверніться до браузера та вставте пароль у поле пароля адміністратора. Натисніть кнопку Продовжити.
Ви потрапите на сторінку плагінів, як показано нижче. Плагіни розширюють Jenkins, додаючи нові функції. Сервер Jenkins має безліч плагінів, доступних за замовчуванням для виконання різних завдань.
На даний момент для нової установки рекомендується вибрати варіант установки плагінів. Ви завжди можете додати додаткові плагіни на більш пізньому етапі з панелі інструментів Jenkins.
Як тільки ви натиснете кнопку, почнеться процес установки плагіна. Це може тривати деякий час.
Після завершення процесу встановлення плагіна ви потрапите на сторінку налаштування користувача з правами адміністратора. Введіть ім’я користувача та пароль адміністратора, а потім натисніть кнопку «Зберегти та продовжити».
На наступній сторінці конфігурації екземпляра ви зможете налаштувати URL-адресу Jenkins. Залиште значення за замовчуванням та натисніть “Зберегти та завершити”.
Нарешті, натисніть кнопку Почати використовувати Jenkins на останній сторінці.
Ви потрапите на панель управління Jenkins, де зможете вивчити список плагінів, проектів та інших функцій, які ви можете додати.