Использование терминов: Jenkins, CI/CD.
В данной инструкции представлена базовая информация по использованию pipeline в Jenkins. Мы рассмотрим процесс для чайников, начиная с установки плагина, создания задания и перейдем к разбивке процесса обработки кода на стадии.
При установке Jenkins система по умолчанию предлагает установить плагин pipeline. Вероятно, в нашей системе он есть. Но если плагин не установлен, переходим на стартовой странице веб-интерфейса Jenkins в раздел Настроить Jenkins:
Кликаем по Управление плагинами:
Переходим на вкладку Доступные и ищем нужный нам плагин по слову «pipeline». Мы получим большое количество результатов — нам нужен плагин с названием «Pipeline»:
Внизу экрана нажимаем Install without restart:
Мы увидим полный список компонентов, которые нужно будет установить для плагина — дожидаемся окончания процесса (мы должны увидеть «Успешно» или «Success»):
* в процессе установки плагина могут появиться сообщения об ошибках. Проблемы могут быть связаны с расхождением версий зависимых компонентов или необходимостью перезагрузки. Так или иначе, просматриваем такие сообщения и самостоятельно пытаемся в них разобраться.
После завершения установки, можно вернуться на главную страницу, кликнув по одноименной ссылке:
Наша система готова для создания конвейера.
На главной странице Jenkins кликаем по Создать Item:
Даем название нашей задаче и ниже выбираем Pipeline:
Нажимаем кнопку OK:
Прокручиваем страницу вниз до подраздела «Pipeline» — сюда мы пишем скрипт на Groovy:
Также у нас есть возможность использовать репозиторий Git в качестве источника файла Jenkinsfile, выбрав в подразделе «Definition» Pipeline script from SCM и Git:
… но мы в данной инструкции будем рассматривать написание кода напрямую в Jenkins.
Для начала, напишем приветствие:
pipeline { agent any
stages { stage(‘Hello’) { steps { echo ‘Hello World’ } } }}
Существует 2 способа написания pipeline — скриптовый и декларативный. В нашем примере используется последний. Благодаря строгому синтаксису, он проще читается — в декларативном пайплайне обязательно должны быть:
А также:
И нажимаем Сохранить:
* наш скрипт на Groovy будет сохранен в так называемый Jenkinsfile — это файл, в котором мы описываем этапы выполнения нашего задания с использованием pipeline.
Нас перекинет на страницу задания — слева кликаем по Собрать сейчас:
Конвейер немного поработает и выдаст результат, состоящий из одного шага:
Созданное задание работает — попробуем его усложнить.
Открываем на редактирование наше задание:
Перемещаемся вниз и пишем следующий код на Groovy:
stages { stage(‘Сборка’) { steps { echo ‘Выполняем команды для сборки’ } } stage(‘Тестирование’) { steps { echo ‘Тестируем нашу сборку’ } } stage(‘Развертывание’) { steps { echo ‘Переносим код в рабочую среду или создаем артефакт’ } } }}
* в данном примере мы выполняем задание в три этапа — сборка, тестирование и развертывания. В рамках нашей инструкции мы не будем выполнять ничего конкретного, поэтому просто выводим на экран текстовую информацию.
Сохраняем изменения и запускаем задачу на выполнение:
После ее завершения мы должны увидеть что-то на подобие:
Попробуем посмотреть чуть подробнее протокол выполнения — кликаем по изображению стрелки справа от названия задания и выбираем Последняя стабильная сборка (или просто Последняя сборка):
Кликаем по Console Output:
Мы должны увидеть вывод всех комментарий и команд, которые выполнялись во время сборки.
Jenkins может выполнять задание внутри Docker. Таким образом, мы можем использовать контейнеры с настроенной средой, необходимой для тестирования и сборки кода и получения необходимых артефактов.
Рассмотрим настройку сервера для возможности использовать Docker и пример кода на Groovy.
Мы должны выполнит ряд действий:
1. Начнем с установки плагина. На главной странице Jenkins переходим в настройки:
Кликаем по разделу Управление плагинами:
Среди списка плагинов находим «Docker Pipeline» и отмечаем его для установки:
Переходим к установке:
… и доживаемся ее окончания.
2. Подключаемся к консоли по SSH и выполняем Установку Docker.
3. Чтобы можно было подключиться к Docker из Jenkins, необходимо, чтобы пользователь jenkins входил в группу docker — для этого выполняем команду:
usermod -a -G docker jenkins
После необходимо перезапустить дженкинс:
systemctl restart jenkins
Среда готова для работы с контейнерами.
Переходим к настройке нашего задания или создаем новое и приводим Groovy-код к такому виду:
pipeline { agent { docker { image ‘python:latest’ } }
stages { stage(‘Подготовка’) { steps { sh “python –version” } } stage(‘Сборка’) { steps { echo ‘Выполняем команды для сборки’ } } stage(‘Тестирование’) { steps { echo ‘Тестируем нашу сборку’ } } stage(‘Развертывание’) { steps { echo ‘Переносим код в рабочую среду или создаем артефакт’ } } }}
* обратите внимание, мы изменили агента на docker с указанием образа, в котором будет выполняться обработка — в данном примере, с помощью python (последней версии). Также мы добавили этап Подготовка, в котором просто выведем на экран версию python.
Первый запуск будет выполняться долго, так как необходимо будет загрузить образ. В конечном итоге, мы должны получить, примерно, следующую картину:
Для подробного просмотра хода процесса (или решения проблем в случае их возникновения), кликаем по стрелке справа от названия задания и переходим к сборке:
Переходим к консоли:
Если задание выполнено успешно, среди логов мы должны увидеть версию используемого в контейнере Docker python:
Некоторые инструкции, которые могут оказаться полезными:
1. Установка Jenkins на Ubuntu
2. Установка Jenkins на CentOS
Продолжая использовать данный сайт вы принимаете политику конфиденциальности и cookies