Гид по технологиям

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

7 min read DevOps Обновлено 07 Jan 2026
Установка и настройка Jenkins на Ubuntu 22.04
Установка и настройка 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

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

Убедитесь, что ваша система соответствует минимальным требованиям:

  1. Ubuntu 22.04 установлен
  2. SSH‑доступ к серверу
  3. Неразрешённый пользователь с sudo (non‑root sudo user)
  4. Доступ к командной строке Ubuntu
  5. Минимум 256 МБ ОЗУ для одиночного инстанса
  6. 1 ГБ свободного дискового пространства для простого использования
  7. 10 ГБ при запуске Jenkins в контейнере Docker
  8. 4 ГБ+ ОЗУ и 50 ГБ+ диска для группового использования / CI‑нагрузки
  9. Java Development Kit 8 или 11
  10. 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/null
echo 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.

Terminal is showing Jenkins is active

Подсказка: чтобы включить автозапуск при загрузке, выполните:

sudo systemctl enable jenkins

Шаг 4 — Откройте порт в UFW (по умолчанию 8080)

По умолчанию Jenkins слушает порт 8080. Разрешите входящие соединения через UFW:

sudo ufw allow 8080
sudo ufw enable
sudo ufw status

В выводе будет видно правило для порта 8080.

Updated Firewall rules displayed on the terminal

Важно: в продакшн‑окружении настоятельно рекомендуется размещать Jenkins за обратным прокси (NGINX/Apache) и открывать внешний доступ только через HTTPS.

Шаг 5 — Доступ к веб‑интерфейсу и начальная разблокировка

Откройте в браузере:

http://IP-адрес:8080

Если Jenkins запущен локально:

http://localhost:8080

Jenkins попросит ввести начальный пароль администратора, который хранится в файле /var/lib/jenkins/secrets/initialAdminPassword. По умолчанию обычный пользователь не может открыть этот файл, поэтому выполните:

sudo -i
nano /var/lib/jenkins/secrets/initialAdminPassword

Скопируйте алфавитно‑цифровой код и вставьте его в поле Administrator password.

initial admin password file to access Jenkins is displayed

После ввода пароля нажмите Continue.

Jenkins asking the user to provide admin password to get access

Базовая начальная настройка через веб‑мастер

  1. Выберите Install suggested plugins для быстрой установки набора рекомендуемых плагинов.

Jenkins asking the user to install plugins

  1. Дождитесь установки плагинов.

Jenkins is installing plugins

  1. Создайте первую учётную запись администратора (username, password, e‑mail).

Jenkins interface to create the first admin user by providing username, email and password

  1. Нажмите Save and Continue, затем Start using Jenkins.

Jenkins interface is confirming that Jenkins is installed and ready to be used

После этого откроется панель Jenkins Dashboard.

Jenkins dashboard displayed after getting access


Рекомендуемые плагины и интеграции

Минимальный набор плагинов для старта:

  • 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 и всех настроек плагинов.


Отладка и типичные проблемы

  1. Сервис не запускается
    • Проверьте журналы: sudo journalctl -u jenkins -b
    • Убедитесь, что Java установлена и доступна (java -version)
  2. Порт 8080 занят
    • Найдите процесс: sudo ss -ltnp | grep 8080
    • Или измените порт Jenkins в /etc/default/jenkins
  3. Невозможно открыть initialAdminPassword
    • Убедитесь, что Jenkins запущен и вы читаете верный файл: /var/lib/jenkins/secrets/initialAdminPassword
  4. Проблемы с плагинами
    • Отключите проблемные плагины через папку $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 и конфигураций плагинов.

Поделиться: X/Twitter Facebook LinkedIn Telegram
Автор
Редакция

Похожие материалы

RDP: полный гид по настройке и безопасности
Инфраструктура

RDP: полный гид по настройке и безопасности

Android как клавиатура и трекпад для Windows
Гайды

Android как клавиатура и трекпад для Windows

Советы и приёмы для работы с PDF
Документы

Советы и приёмы для работы с PDF

Calibration в Lightroom Classic: как и когда использовать
Фото

Calibration в Lightroom Classic: как и когда использовать

Отключить Siri Suggestions на iPhone
iOS

Отключить Siri Suggestions на iPhone

Рисование таблиц в Microsoft Word — руководство
Office

Рисование таблиц в Microsoft Word — руководство