Senior Developer Educator
При наличии повторяющихся технических задач подобрать действительно работающее решение автоматизации не так просто. Сервер автоматизации Jenkins с открытым исходным кодом позволяет эффективно управлять разнообразными задачами от сборки до развертывания программного обеспечения. Сервер Jenkins написан на Java и может устанавливаться из пакетов Ubuntu или с помощью загрузки и запуска архива веб-приложения (WAR), содержащего набор файлов полноценного веб-приложения для запуска на сервере.
В этом обучающем модуле мы выполним установку Jenkins в Ubuntu 20.04, запустим сервер разработки и создадим пользователя с правами администратора, чтобы лучше познакомиться с возможностями Jenkins. После прохождения этого обучающего модуля у вас будет готовый к использованию сервер разработки, но для его защиты и использования в производственной среде рекомендуется выполнить указания руководства «Настройка Jenkins с помощью SSL с использованием обратного прокси-сервера Nginx в Ubuntu 18.04».
Для данного обучающего модуля вам потребуется следующее:
Версия Jenkins, содержащаяся в стандартных пакетах Ubuntu, часто отличается от последней доступной версии проекта. Чтобы гарантированно получить последние функции и исправления, используйте для установки Jenkins пакеты, поддерживаемые проектом.
Во-первых, добавьте ключ репозитория в систему:
- wget -q -O - https://pkg.jenkins.io/debian-stable/jenkins.io.key | sudo apt-key add -
После добавления ключа система выводит сообщение OK
.
Затем добавьте в адрес репозитория пакетов Debian в sources.list
сервера:
- sudo sh -c 'echo deb http://pkg.jenkins.io/debian-stable binary/ > /etc/apt/sources.list.d/jenkins.list'
После ввода обеих команд мы запустим команду update
, чтобы apt
использовал новый репозиторий.
- sudo apt update
В заключение мы установим Jenkins и его зависимости.
- sudo apt install jenkins
Теперь, когда Jenkins и его зависимости готовы, мы запустим сервер Jenkins.
Запустим Jenkins с помощью systemctl
:
sudo systemctl start jenkins
Поскольку systemctl
не поддерживает вывод данных состояния на экран, вы можете использовать команду status
для подтверждения успешного запуска Jenkins:
- sudo systemctl status jenkins
Если все пройдет нормально, в тексте вывода состояния должно быть указано, что служба активна и настроена для запуска при загрузке:
Output● jenkins.service - LSB: Start Jenkins at boot time
Loaded: loaded (/etc/init.d/jenkins; generated)
Active: active (exited) since Fri 2020-06-05 21:21:46 UTC; 45s ago
Docs: man:systemd-sysv-generator(8)
Tasks: 0 (limit: 1137)
CGroup: /system.slice/jenkins.service
Теперь, когда Jenkins работает, мы изменим правила брандмауэра, чтобы иметь к нему доступ через браузер для целей первоначальной настройки.
Информацию по настройке брандмауэра UFW можно найти в руководстве «Начальная настройка сервера Ubuntu 20.04», в разделе «Шаг 4 — Настройка базового брандмауэра». По умолчанию Jenkins работает на порту 8080
. Откроем этот порт с помощью ufw
:
- sudo ufw allow 8080
Примечание: если брандмауэр не запущен, следующие команды будут разрешать использование OpenSSH и активировать брандмауэр:
- sudo ufw allow OpenSSH
- sudo ufw enable
Проверьте состояние ufw
, чтобы подтвердить сохранение новых правил:
- sudo ufw status
Вы увидите, что трафик на порт 8080
разрешен отовсюду:
OutputStatus: active
To Action From
-- ------ ----
OpenSSH ALLOW Anywhere
8080 ALLOW Anywhere
OpenSSH (v6) ALLOW Anywhere (v6)
8080 (v6) ALLOW Anywhere (v6)
Мы установили Jenkins и настроили брандмауэр. Теперь мы можем завершить установку и перейти к настройке Jenkins.
Чтобы выполнить настройку вашей установки, откройте Jenkins на используемом по умолчанию порте 8080
, используя доменное имя или IP-адрес вашего сервера: http://your_server_ip_or_domain:8080
Вы должны увидеть экран Unlock Jenkins, на котором будет показано расположение начального пароля:
В окне командной строки воспользуйтесь командой cat
для вывода пароля:
- sudo cat /var/lib/jenkins/secrets/initialAdminPassword
Скопируйте 32-символьный буквенно-цифровой пароль из командной строки и вставьте его в поле Administrator password (Пароль администратора), после чего нажмите Continue (Продолжить).
На следующем экране отображаются рекомендуемые для установки плагины и предоставляется возможность выбора конкретных плагинов:
Мы воспользуемся опцией Install suggested plugins (Установить рекомендованные плагины), после чего сразу же будет запущен процесс установки.
После завершения установки вам будет предложено настроить первого пользователя с правами администратора. Вы можете пропустить этот шаг и продолжить в качестве администратора admin
, используя первоначальный пароль, который мы использовали выше, но мы воспользуемся этой возможностью и создадим пользователя.
Примечание: по умолчанию сервер Jenkins НЕ шифруется, поэтому данные, передаваемые с помощью этой формы, не защищены. Информацию о защите учетных данных пользователей и переданных через веб-интерфейс данных о сборках можно найти в руководстве «Настройка Jenkins с помощью SSL с использованием обратного прокси-сервера Nginx в Ubuntu 20.04».
Введите имя и пароль для вашего пользователя:
Вы увидите страницу Instance Configuration (Конфигурация экземпляра), где нужно будет подтвердить предпочитаемый URL для вашего экземпляра Jenkins. Подтвердите доменное имя вашего сервера или IP-адрес вашего сервера:
После подтверждения соответствующей информации нажмите Save and Finish (Сохранить и завершить). Вы увидите страницу с подтверждением «Jenkins is Ready!»:
Нажмите Start using Jenkins (Начать использование Jenkins), чтобы открыть панель управления Jenkins:
После этого установку Jenkins можно считать выполненной успешно.
В этом обучающем модуле мы установили Jenkins с помощью пакетов, предоставленных проектом, запустили сервер, открыли брандмауэр и создали пользователя с правами администратора. Сейчас вы можете начать изучение Jenkins.
Если вы готовы продолжить использование Jenkins, после знакомства следуйте указаниям руководства «Настройка Jenkins через SSL с помощью обратного прокси-сервера Nginx в Ubuntu 20.04» для защиты ваших паролей, а также любой важной системной информации или информации о продукте, которая будет передаваться между вашим компьютером и сервером в текстовом формате.
Чтобы узнать больше о том, для чего можно использовать Jenkins, ознакомьтесь с другими обучающими модулями на эту тему:
Thanks for learning with the DigitalOcean Community. Check out our offerings for compute, storage, networking, and managed databases.
This textbox defaults to using Markdown to format your answer.
You can type !ref in this text area to quickly search our full set of tutorials, documentation & marketplace offerings and insert the link!