Мы собираем файлы cookie и применяемрекомендательные технологии

Jenkins и CI/CD: что это, как установить и настроить
  • Разработка

Jenkins для начинающих: что это, зачем нужен и как его установить

Раньше программистам приходилось записывать небольшие фрагменты кода на перфокарты и иногда целыми «партиями» возить их в офис, чтобы собирать все части вручную для выполнения на компьютере. Это ощутимо замедляло и усложняло процесс создания любого ПО.

Сегодня разработчики могут собирать, обновлять, тестировать и развёртывать программы автоматически, а затем почти мгновенно доставлять их пользователям. В большинстве случаев это возможно благодаря системам непрерывной разработки (CI/CD), одной из которых является Jenkins. Что собой представляет инструмент и как его устанавливать, подробнее расскажем в этом материале.

Что такое CI/CD

Функции Jenkins основаны на концепции непрерывной разработки, которая позволяет обновлять программу на любом этапе программирования. Это прямая противоположность итеративного метода, где сначала создаётся рабочий вариант ПО, а уже потом анализируется и выпускается.

К методу непрерывной разработки относятся:

  • CI (continuous integration). Означает непрерывную интеграцию, где изменения в коде автоматически вливаются в основную ветку ПО.

  • CD (continuous delivery). Непрерывная доставка, при которой все новшества программы автоматически разворачиваются на тестовых или рабочих серверах без лишнего участия разработчиков.

Чаще всего эти два термина применяются вместе и работают как единая методология CI/CD, в которую входит:

  • Сборка. Программист разрабатывает и интегрирует код в базовый продукт в репозитории через инструменты CI.

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

  • Релиз. После всех доработок утверждается финальная версия и публикуется на продакшен-серверах для конечных пользователей.

  • Анализ отзывов и доработка. Клиенты оценивают программу и оставляют о ней свои отзывы. На основании этой информации формируются новые задачи для программистов, и процесс запускается заново.

Преимущество метода в том, что дорабатывать ПО и показывать его пользователям можно, не дожидаясь окончательной версии программы. С другой стороны, для полноценной работы нужна большая команда тестировщиков и DevOps-специалистов — это может сильно ударить по бюджету маленьких организаций.

Что такое Jenkins и какие у него особенности

Jenkins — это система потоковой сборки для автоматизации всех видов задач, связанных с созданием, тестированием, доставкой или развёртыванием программного обеспечения.

При этом Jenkins — не просто сервер непрерывной интеграции, а полноценный фреймворк для создания CI/CD-систем и других автоматизированных процессов разработки. Всё благодаря гибкой настройке программы, которая включает:

  • Модульность. Модульная архитектура позволяет расширять функциональность Jenkins с помощью плагинов и адаптировать работу программы под конкретные задачи и процессы разработки.

  • Масштабируемость. Jenkins постоянно развивается благодаря открытой архитектуре и обширному сообществу. Разработчики могут создавать для него собственные плагины и интеграции, тем самым адаптируя программу к новым требованиям и технологиям. Также это позволяет добавлять слейв-узлы, тем самым увеличивая общую производительность ПО.

  • Высокую совместимость. Благодаря большой библиотеке плагинов Jenkins легко интегрируется с различными инструментами разработки, системами управления версиями, облачными платформами и другими сервисами.

К примеру, с помощью плагинов Jenkins можно интегрировать с API-платформой МТС Exolve, через которую программисты получают автоматические SMS о статусе сборки ПО, данные об ошибках в коде, о завершении определённых этапов разработки и прочих событиях. Так специалисты смогут быстрее получать актуальную информацию о ходе своих проектов и экономить время для других задач.

Как работает Jenkins

Даже основные возможности Jenkins, по сути, являются плагинами, каждый из которых курирует различные этапы работы программы — от начальной сборки до завершающего развёртывания. Такой набор изначально встроен в программу и называется пайплайном. При этом дополнительные модули легко загрузить из магазина программы.

Фреймворк Jenkins функционирует в распределённой архитектуре: мастер-сервер (контроллер) координирует процессы и делегирует задачи, а вспомогательные слейв-серверы — агенты разгружают контроллер и выполняют поставленные им команды.

Как правило, для одного проекта задействуется несколько агентов, которые решают различные задачи по сборке, тестированию, проверке кода, развёртыванию приложения и т. д. Технически на начальных этапах такую разработку можно вести и на одном сервере, но, если он выйдет из строя, проблемы появятся у всех — от программистов до конечных потребителей.

В целом у фреймворка для непрерывной разработки Jenkins множество преимуществ:

  • Простая настройка. Jenkins содержит исполняемые файлы, которые легко устанавливаются на различные операционные системы вроде Windows и Mac. Так как это автономное решение на базе Java, его настройка занимает всего пять минут.

  • Открытый исходный код. Принцип Open Source позволяет работать в программе бесплатно. Кроме того, сообщество Jenkins предлагает огромную библиотеку учебных пособий, кейсов и другой информации для программирования.

  • Большой выбор плагинов. В Jenkins насчитывается более 2000 дополнительных модулей для управления инфраструктурой, анализа, тестирования, интеграций и других задач разработки.

Основной минус Jenkins — его сложность. Программа рассчитана на профессиональных разработчиков, поэтому начинающим пользователям потребуется время на освоение.

Установка Jenkins

Перед инсталляцией необходимо подготовить соответствующую среду выполнения. Для этого нужны:

  • Компьютер, сервер или виртуальная машина с подходящей операционной системой. Оборудование должно иметь минимум 256 МБ оперативной памяти и 1 ГБ свободного места на диске (для контейнера Docker — от 10 ГБ).

  • Установленный Java Development Kit (версия 8 и выше). Это связано с тем, что Jenkins основан на Java-технологии.

Как установить Jenkins на Windows

Для установки софта нужно выполнить несколько простых шагов:

  1. Переходим на сайт Jenkins и загружаем с него установщик для Windows. Для скачивания может понадобиться несколько минут.

  2. Запускаем полученный файл, выбираем установочный путь для программы и нажимаем Next.

  3. В поле Local Type выбираем вариант Run service as LocalSystem и переходим на следующий этап установки.

  4. В графе Port Number оставляем значение по умолчанию — 8080. Затем выбираем Test Port — начнётся тестирование порта.

  5. После окончания проверки появится ещё одно поле для ввода — добавляем в него путь к своему JDK.

  6. Далее можно будет выбрать дополнительные модули — здесь выставляем дефолтные настройки.

  7. Затем выбираем опцию Install, ждём окончания установочного процесса и нажимаем на Finish.

На этом этапе Jenkins полностью установлен.

Как установить Jenkins на Ubuntu

Для начала необходимо подтвердить наличие JDK в системе. Вписываем в терминал:

java -version

Если Java присутствует, в интерфейсе появится версия пакета этой программы. Затем можно начать инсталляцию:

Сначала необходимо получить и добавить в Ubuntu ключ шифрования GPG. Вводим в терминал:

Импортируем URL официального репозитория Jenkins в список пакетов apt в Ubuntu:

Проводим обновление пакетов ещё раз:

sudo apt update

Окончательно устанавливаем Jenkins в систему:

sudo apt install jenkins

По завершении инсталляции запускаем программу:

sudo systemctl start jenkins

Оценить статус работы Jenkins можно через команду:

sudo service jenkins status

Если программа активирована, появится ярко-зелёная надпись active (running).

Также перед настройкой и работой в Jenkins нужно сконфигурировать брандмауэр. Открываем SSH:

sudo ufw allow OpenSSH

После этого активируем брандмауэр:

sudo ufw enable

Разрешим доступ к порту 8080, который Jenkins использует по дефолту, и вводим в терминал:

sudo ufw allow 8080

Нужно убедиться, что все настройки учтены брандмауэром. Добавляем команду:

sudo ufw status

Если в графе Action значится ALLOW, а в графе From — Anywhere, то в фаерволе открылся доступ к Jenkins.

Настройка Jenkins

Для адаптации Jenkins к конкретным требованиям проекта нужно задать настройки. Если программа предназначена для Windows, следует открыть в браузере http://localhost:8080. Если Jenkins стоит на сервере, то вместо localhost используем его IP-адрес — например, http://192.168.1.100:8080. Это позволит зайти в интерфейс программы.

Остальные этапы настройки Jenkins для разных ОС выглядят практически идентично. Рассмотрим алгоритм на примере Windows:

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

  2. Вносим в соответствующую графу нужный пароль и выбираем «Продолжить».

  3. Программа предложит установить необходимые плагины. Можно выбрать вариант по умолчанию или добавить модули самостоятельно. Выбираем первый вариант — его вполне достаточно для базовой настройки Jenkins.

  4. После загрузки плагинов откроется окно для ввода данных. Заполняем имя пользователя, пароль, Ф. И. О. и email.

  5. Следующий шаг: настройка URL-адреса для системы. Здесь можно оставить дефолтную версию или назначить собственный вариант.

На этом настройка программы полностью завершена. Теперь можно выбрать Start using Jenkins и перейти в интерфейс системы.

Заключение

Jenkins — удобный инструмент для автоматизации сборки, тестирования и развёртывания ПО. Система не только основана на принципах CI/CD, но и является полноценным фреймворком: её легко настроить, масштабировать, а также интегрировать со множеством различных сервисов.

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

Предыдущая статья
Оцените статью:
Следующая статья