Создайте задачу сборки Jenkins для автоматизации развертывания веб-приложений

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

В этом руководстве вы узнаете, как автоматизировать развертывание своего кода с помощью Jenkins, чтобы экономить время и одновременно сосредотачиваться на других задачах.

Готовы? Погружаемся!

Предварительные требования

В этом руководстве представлены практические демонстрации. Если вы хотите следовать за нами, убедитесь, что у вас есть следующее:

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

Создание задачи сборки в Jenkins

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

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

  1. Запустите свой любимый браузер, перейдите по адресу http://localhost:8080/ и войдите в панель управления Jenkins. Порт 8080 – это порт по умолчанию для доступа к панели управления Jenkins.

2. На панели управления Jenkins’ Dashboard нажмите кнопку New Item в левой панели, чтобы начать создание задачи сборки. После этого браузер перенаправит вас на страницу новой задачи.

Creating a new Jenkins Job

3. Затем введите имя проекта, которое вы предпочитаете для задачи сборки, в поле ввода, показанном ниже. В этом примере имя проекта – webDeploy.

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

Creating a Jenkins project

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

Linking Jenkins to a source code manager

5. Наконец, нажмите на вкладку Управление исходным кодом, затем выберите Git, который является вашим менеджером исходного кода.

Скопируйте и вставьте этот URL-адрес репозитория GitHub (https://github.com/Claradev32/webDeploy.git) в поле ввода. Нажмите кнопку Сохранить, чтобы сохранить текущую конфигурацию.

Linking Jenkins to Source Code Manager (Git)

Создание учетных данных для проекта Jenkins

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

Для создания учетных данных для вашего проекта Jenkins сначала необходимо сгенерировать и добавить ключ SSH в ваш аккаунт GitHub:

1. Откройте терминал Ubuntu и запустите следующую команду, чтобы сгенерировать SSH-ключ с ed25519 в качестве типа ключа. Замените [email protected] на свой адрес электронной почты GitHub, чтобы добавить его в качестве комментария к сгенерированному SSH-ключу.

ssh-keygen -t ed25519 -C "[email protected]"

2. Сохраните свой открытый SSH-ключ следующим образом:

  • Укажите местоположение для сохранения SSH-ключа и нажмите Enter. Если вы этого не сделаете, команда сохранит SSH-ключ в ​​каталоге по умолчанию, как показано ниже.
  • Введите безопасную фразу для SSH-ключа, нажмите Enter, чтобы подтвердить фразу, и вы увидите вывод вашего открытого SSH-ключа.
  • Запомните местоположение сгенерированного SSH-ключа, так как вы добавите его в свою учетную запись GitHub в следующих шагах.
Adding a Passphrase to the SSH key

3. Войдите в GitHub в своем веб-браузере и перейдите на страницу настроек вашей учетной записи.

4. Нажмите ссылку SSH и GPG ключи в левой панели, а затем нажмите New SSH Key, как показано ниже, чтобы настроить новый SSH-ключ.

Creating a Github SSH key

5. Наконец, введите предпочтительное название для SSH-ключа. Название предназначено только для внутренней документации. Вставьте ваш SSH-ключ из ранее сохраненного файла в поле ввода Key, и нажмите Add SSH Key, чтобы сохранить ключ.

Помните, что это ваш открытый ключ, а не закрытый ключ!

Saving New SSH Key

Добавление закрытого ключа SSH в учетные данные Jenkins

Теперь, когда вы создали свою пару ключей SSH для использования в качестве учетных данных Jenkins, вам также необходимо добавить свой приватный ключ SSH в учетные данные Jenkins, чтобы авторизовать доступ Jenkins к вашему репозиторию GitHub. Но сначала обратите внимание на SSH-URL вашего репозитория GitHub.

1. Перейдите на страницу своего репозитория GitHub, нажмите на Код → SSH, и нажмите на иконку копирования, показанную ниже, чтобы скопировать SSH-URL в буфер обмена.

Noting Down GitHub SSH URL

2. Затем перейдите на панель управления Jenkins, затем нажмите Управление Jenkins, чтобы получить доступ к странице настроек вашего проекта.

Accessing Jenkins Settings

3. Прокрутите вниз, затем нажмите на опцию Управление учетными данными в разделе Безопасность, чтобы просмотреть список учетных данных Jenkins.

Accessing Jenkins Credentials

4. Нажмите Jenkins на странице Учетные данные, показанной ниже, чтобы получить доступ к странице “Система”, где вы можете добавить новые учетные данные.

Accessing System Page to Add Credentials

5. Теперь, на странице Система, наведите указатель мыши на опцию Глобальные учетные данные (неограниченные), чтобы отобразить выпадающее меню, и нажмите на значок стрелки вниз.

Нажмите на Добавить учетные данные в выпадающем меню. Страница перенаправляется на форму, где вы будете настраивать новые учетные данные, показанные на следующем шаге.

System Page

6. Выберите SSH Имя пользователя с закрытым ключом на первом поле ввода и введите имя пользователя проекта в поле Имя пользователя. В этом примере имя пользователя – CI/CD.

В этом случае имя пользователя представляет собой чисто внутреннюю документацию и не используется для аутентификации.

Setting a Username for Jenkins Global Credentials

7. Запустите команду ниже, чтобы просмотреть свой SSH-закрытый ключ, измените расположение в соответствии с тем, где находится ваш ключ, как показано ниже (ключ находится в домашнем каталоге). Запишите свой SSH-закрытый ключ, поскольку вы добавите его в учетные данные Jenkins на следующем этапе.

cat ~/.ssh/id_ed25519
Viewing Secret Key

8. Как только вы записали свой SSH-закрытый ключ, вернитесь на страницу Глобальные учетные данные (неограниченные).

Введите пароль, который вы установили в разделе “Создание учетных данных для проекта Jenkins” (шаг два) в поле ввода Пароль и нажмите OK. Это авторизует Jenkins для доступа к вашему репозиторию GitHub.

Если вы не включили пароль при создании SSH-ключа, нажмите Ввести напрямую и нажмите кнопку Добавить. Введите свой SSH-закрытый ключ в поле ввода Ключ, как показано ниже, и нажмите кнопку OK, чтобы сохранить учетные данные.

Adding GitHub SSH key to Jenkins Credentials

8. Вернитесь на свою Главную панель Jenkins, наведите указатель мыши на свой проект и нажмите на стрелку вниз, затем выберите Настроить, как показано ниже. Страница перенаправляется на страницу конфигурации вашего проекта.

Configuring Jenkins Project

10. Наконец, выберите учетные данные пользователя в раскрывающемся поле (из шага шесть раздела “Добавление секретного ключа в учетные данные Jenkins”). Jenkins по умолчанию применяет принцип CID, чтобы обеспечить непрерывную интеграцию и развертывание вашего проекта.

Connecting Jenkins to GitHub

Настройка триггеров сборки и действий после сборки

Теперь вы успешно создали каркас рабочей задачи. Но если вы регулярно вносите изменения в свой проект, придется ли вам каждый раз вручную перезагружать его? Почему бы не настроить триггеры сборки? Триггеры сборки автоматически перезагружают изменения вашего проекта, загруженные в GitHub.

1. На странице конфигурации ваших проектов нажмите на вкладку Триггеры сборки, и установите флажок Триггер хука GitHub для опроса GITScm. Эта опция позволяет автоматически перезагружать изменения вашего проекта.

Configuring build triggers

2. Нажмите вкладку Сборка, щелкните Добавить этап сборки, и выберите Выполнить shell-скрипт, чтобы создать скрипт, который будет выполняться при каждой загрузке Jenkins новой версии вашего кода.

Creating a Build Script

Создаваемый вами оболочечный скрипт зависит от вашей среды разработки. Если вы используете Windows, скрипт будет выполняться в Windows; то же самое относится и к другим операционным системам.

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

Ниже приведены команды, которые извлекают (pull) ваш код из удаленного источника (origin master) и с помощью NodeJS NPM install (npm install) устанавливают необходимые зависимости для запуска вашего проекта. Эти команды выполняются каждый раз, когда вы отправляете запрос на внесение изменений в свой менеджер исходного кода.

Данный проект использует NodeJS для зависимостей, но ваш проект может быть другим.

git pull origin master
npm install
Adding Commands to the Automated Build Script

4. Теперь на панели управления вашего проекта нажмите Build Now, чтобы запустить сборку.

Running the Build

5. Прокрутите вниз до истории сборки, чтобы увидеть статус сборки. Если сборка успешна, вы увидите аналогичный вывод на скриншоте ниже.

Viewing Successful Build

Если сборка не удалась, вы увидите отображенный ниже вывод.

Failed build history

6. Затем прокрутите вверх и нажмите на Configure, чтобы настроить действия после сборки проекта.

Configuring Project’s Post Build Actions

7. Нажмите на вкладку Post Build Actions, затем нажмите на Add post-build action и выберите Git publisher. Страница раскрывает раздел настроек Git Publisher (следующий шаг).

Accessing Git Publisher Post-Build Action

8. Наконец, включите опцию Push Only If Build Succeeds и нажмите кнопку Save, чтобы сохранить изменения. Включение этой опции сообщает Jenkins развертывать код только в случае успешного запуска сборки.

Adding Post-Build Actions

Заключение

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

Теперь, почему бы вам не сэкономить немного времени, автоматизировав развертывание вашего приложения с помощью сборки в Jenkins?

Source:
https://adamtheautomator.com/jenkins-build-job/