Как установить и настроить Jenkins на Ubuntu 22.04
Jenkins — свободный сервер автоматизации для CI/CD. В этой статье пошагово показано, как установить OpenJDK 11, добавить репозиторий Jenkins, установить и запустить сервис на Ubuntu 22.04, открыть порт в UFW, получить начальный пароль администратора и завершить базовую настройку (плагины, учётная запись). Включены советы по безопасности, откату, интеграции с Nginx и чек‑листы для ролей.
Что вы узнаете
- Быстрая установка Jenkins на Ubuntu 22.04
- Настройка брандмауэра и доступ к веб‑интерфейсу
- Рекомендуемые плагины и создание администратора
- Безопасность, резервный откат и типичные ошибки
Что такое Jenkins
Jenkins — это ведущий сервер автоматизации с открытым исходным кодом, который помогает автоматизировать сборку, тестирование и развёртывание приложений. Он используется для организации непрерывной интеграции и непрерывной доставки (CI/CD) через «пайплайны» и поддерживает множество языков и систем контроля версий. Jenkins имеет развитую экосистему плагинов — по данным сообщества, доступно примерно 1 500 плагинов для разных задач.
Важно: Jenkins написан на Java и требует установленной JDK/JRE (версии 8 или 11 рекомендованы для стабильности на Ubuntu 22.04).
Кому подходит эта инструкция
- Сисадминам и инженерам DevOps, разворачивающим CI/CD на Ubuntu
- Разработчикам, которым нужно локально поднять Jenkins для тестов
- Командам, планирующим интеграцию Jenkins с обратным прокси и SSL
Предварительные требования
Убедитесь, что ваша система соответствует минимальным требованиям:
- Ubuntu 22.04 установлен
- SSH‑доступ к серверу
- Неразрешённый пользователь с sudo (non‑root sudo user)
- Доступ к командной строке Ubuntu
- Минимум 256 МБ ОЗУ для одиночного инстанса
- 1 ГБ свободного дискового пространства для простого использования
- 10 ГБ при запуске Jenkins в контейнере Docker
- 4 ГБ+ ОЗУ и 50 ГБ+ диска для группового использования / CI‑нагрузки
- Java Development Kit 8 или 11
- NGINX или Apache (опционально, для обратного прокси и HTTPS)
Если требования выполнены — продолжаем.
Шаги установки Jenkins на Ubuntu 22.04
Шаг 1 — Установите OpenJDK 11
Jenkins работает на Java. Рекомендуем ставить OpenJDK 11 для совместимости с последними релизами Jenkins.
Обновите список пакетов и систему:
sudo apt-get update
sudo apt-get upgradeУстановите OpenJDK 11:
sudo apt-get install openjdk-11-jdkПроверьте установленную версию Java:
java -versionОжидаемый вывод содержит информацию об OpenJDK 11.
Шаг 2 — Добавьте официальный репозиторий Jenkins и установите пакет
Добавьте ключ и репозиторий Jenkins, затем установите пакет:
curl -fsSL https://pkg.jenkins.io/debian-stable/jenkins.io.key | sudo tee /usr/share/keyrings/jenkins-keyring.asc > /dev/nullecho 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Обновите индексы и установите Jenkins:
sudo apt-get update
sudo apt-get install jenkinsПри запросе подтверждения введите Y и нажмите Enter.
Шаг 3 — Запустите и проверьте сервис Jenkins
Запустите службу и проверьте её статус:
sudo systemctl start jenkins.service
sudo systemctl status jenkinsЕсли служба активна, вы увидите информацию о статусе и PID.
Подсказка: чтобы включить автозапуск при загрузке, выполните:
sudo systemctl enable jenkinsШаг 4 — Откройте порт в UFW (по умолчанию 8080)
По умолчанию Jenkins слушает порт 8080. Разрешите входящие соединения через UFW:
sudo ufw allow 8080
sudo ufw enable
sudo ufw statusВ выводе будет видно правило для порта 8080.
Важно: в продакшн‑окружении настоятельно рекомендуется размещать Jenkins за обратным прокси (NGINX/Apache) и открывать внешний доступ только через HTTPS.
Шаг 5 — Доступ к веб‑интерфейсу и начальная разблокировка
Откройте в браузере:
http://IP-адрес:8080Если Jenkins запущен локально:
http://localhost:8080Jenkins попросит ввести начальный пароль администратора, который хранится в файле /var/lib/jenkins/secrets/initialAdminPassword. По умолчанию обычный пользователь не может открыть этот файл, поэтому выполните:
sudo -i
nano /var/lib/jenkins/secrets/initialAdminPasswordСкопируйте алфавитно‑цифровой код и вставьте его в поле Administrator password.
После ввода пароля нажмите Continue.
Базовая начальная настройка через веб‑мастер
- Выберите Install suggested plugins для быстрой установки набора рекомендуемых плагинов.
- Дождитесь установки плагинов.
- Создайте первую учётную запись администратора (username, password, e‑mail).
- Нажмите Save and Continue, затем Start using Jenkins.
После этого откроется панель Jenkins Dashboard.
Рекомендуемые плагины и интеграции
Минимальный набор плагинов для старта:
- Git — интеграция с Git репозиториями
- Pipeline — декларативные и скриптовые пайплайны
- Blue Ocean — улучшенный UI для пайплайнов (по желанию)
- Credentials — централизованное хранение секретов
- HTML Publisher — публикация отчётов
- Docker или Kubernetes плагины — если используете контейнеры
- Email Extension / Slack — уведомления команды
Как правило, ставьте только те плагины, которые вам действительно нужны, чтобы не усложнять поддержку.
Пример простого Declarative Pipeline (Jenkinsfile)
Ниже — минимальный пример, который выполняет сборку и тесты:
pipeline {
agent any
stages {
stage('Checkout') {
steps {
git url: 'https://github.com/your/repo.git', branch: 'main'
}
}
stage('Build') {
steps {
sh './gradlew build'
}
}
stage('Test') {
steps {
sh './gradlew test'
}
}
}
post {
always {
junit 'build/test-results/**/*.xml'
}
}
}Сохраните файл как Jenkinsfile в корне репозитория и настройте multibranch pipeline или freestyle job для его выполнения.
Безопасность и рекомендации по развёртыванию
- Размещайте Jenkins за обратным прокси (NGINX/Apache) и включайте HTTPS (Let’s Encrypt).
- Используйте внешнюю систему аутентификации (LDAP, SAML, OAuth) для командных инсталляций.
- Храните секреты в Credentials и не коммитите их в репозиторий.
- Регулярно обновляйте Jenkins и плагины.
- Ограничьте доступ к API и включите CSRF‑защиту (по умолчанию включена).
Пример минимальной конфигурации NGINX как обратного прокси (HTTP → Jenkins на 8080):
server {
listen 80;
server_name jenkins.example.com;
location / {
proxy_pass http://127.0.0.1:8080;
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header X-Forwarded-Proto $scheme;
}
}Для HTTPS добавьте блок server с certbot/Let’s Encrypt.
Откат и удаление Jenkins
Чтобы полностью удалить Jenkins и конфигурации:
sudo apt remove --purge jenkins
sudo apt autoremove
sudo rm -rf /var/lib/jenkins
sudo rm -rf /etc/jenkinsПеред удалением сделайте резервную копию /var/lib/jenkins и всех настроек плагинов.
Отладка и типичные проблемы
- Сервис не запускается
- Проверьте журналы: sudo journalctl -u jenkins -b
- Убедитесь, что Java установлена и доступна (java -version)
- Порт 8080 занят
- Найдите процесс: sudo ss -ltnp | grep 8080
- Или измените порт Jenkins в /etc/default/jenkins
- Невозможно открыть initialAdminPassword
- Убедитесь, что Jenkins запущен и вы читаете верный файл: /var/lib/jenkins/secrets/initialAdminPassword
- Проблемы с плагинами
- Отключите проблемные плагины через папку $JENKINS_HOME/plugins (переместите .jpi/.hpi и перезапустите)
Когда Jenkins может не подойти (контрпримеры)
- Небольшие проекты с простыми задачами CI, где достаточно webhook + скриптов CI в облаке (например, GitHub Actions) — в этих случаях Jenkins может быть избыточен.
- Когда нужна лёгкая облачная CI без собственной инфраструктуры и управления — облачные CI/CD‑сервисы предлагают меньшую поддержку системы.
Альтернативные подходы
- GitHub Actions / GitLab CI — встроенные CI в SaaS/репозиторий
- CircleCI, Travis CI — облачные CI‑сервисы
- Tekton / Argo CD — для Kubernetes‑ориентированных пайплайнов
Выбор зависит от требований: контроль инфраструктуры (Jenkins) vs простота и обслуживание (облачные решения).
Чек‑листы по ролям
Администратор:
- Установить JDK и Jenkins
- Настроить брандмауэр и обратный прокси
- Включить HTTPS и внешний провайдер аутентификации
- Настроить резервное копирование $JENKINS_HOME
Инженер DevOps:
- Установить необходимые плагины
- Создать шаблоны пайплайнов
- Настроить сервисные учётные записи и credenitals
- Настроить уведомления (Slack, e‑mail)
Разработчик:
- Добавить Jenkinsfile в репозиторий
- Настроить webhooks
- Проверить тесты и отчёты в Jenkins
Критерии приёмки
- Jenkins доступен по HTTPS по конфигу обратного прокси
- Установлены и обновлены критические плагины
- Пароли и секреты хранятся в Credentials, не в репозитории
- Автоматический запуск задач (webhooks) работает для ветки main
Краткий справочник (глоссарий в одну строку)
- Jenkinsfile — файл с описанием пайплайна для Jenkins
- Pipeline — набор этапов CI/CD в Jenkins
- Agent — среда выполнения шага пайплайна
- Credentials — хранилище секретов Jenkins
Диаграмма принятия решения (Mermaid)
flowchart TD
A[Нужно CI/CD?] --> B{Есть ли облачный CI?}
B -- Да --> C[Использовать облачный сервис 'GitHub Actions и пр.']
B -- Нет --> D[Нужно локальное управление инфраструктурой]
D --> E[Рассмотреть Jenkins]
E --> F{Используется Kubernetes?}
F -- Да --> G[Рассмотреть Tekton/Argo + Jenkins X]
F -- Нет --> H[Развернуть Jenkins на Ubuntu]Итог и дальнейшие шаги
Jenkins на Ubuntu 22.04 позволяет установить гибкую среду CI/CD с полным контролем над инфраструктурой. Начните с базовой установки, закройте доступ через обратный прокси с HTTPS, установите только нужные плагины и выстраивайте пайплайны постепенно. Для командных инсталляций сразу планируйте интеграцию с внешней системой аутентификации и резервное копирование.
Важно: регулярно обновляйте Jenkins и плагины, следите за журналами и ограничивайте доступ по принципу наименьших привилегий.
Краткое резюме
- Jenkins — мощный инструмент для CI/CD, требующий Java и минимальных системных ресурсов для простого использования.
- Установка на Ubuntu 22.04 включает добавление репозитория, установку пакета, открытие порта 8080 и начальную настройку через веб‑мастер.
- Обеспечьте безопасность: обратный прокси, HTTPS, внешняя аутентификация и хранение секретов в Credentials.
Важная заметка: перед удалением или большой миграцией создайте резервную копию каталога /var/lib/jenkins и конфигураций плагинов.
Похожие материалы
RDP: полный гид по настройке и безопасности
Android как клавиатура и трекпад для Windows
Советы и приёмы для работы с PDF
Calibration в Lightroom Classic: как и когда использовать
Отключить Siri Suggestions на iPhone