Установка и настройка Jenkins на Rocky Linux 8
Краткая инструкция по быстрой установке и первоначальной настройке Jenkins на Rocky Linux 8. Пошаговые команды, советы по безопасности, варианты установки (включая Docker), чек-листы для администратора и разработчика, а также план восстановления и отладки.

Jenkins — это система непрерывной интеграции с открытым исходным кодом. Это серверное Java-приложение, обычно работающее как служба в фоне на Windows или Unix-подобных системах. Jenkins автоматически отслеживает изменения в репозитории исходного кода и запускает сборки при появлении новых коммитов.
Краткое определение: Jenkins — сервер CI/CD, который автоматически собирает, тестирует и разворачивает код по мере появления изменений.
Почему это важно:
- Все разработчики всегда работают с актуальной версией кода.
- Если сборка или деплой ломаются, команда получает уведомление и может быстро отреагировать.
Jenkins поддерживает разные системы контроля версий (SCM): Git, BitBucket, CVS, Mercurial, Perforce и другие. Настроив Jenkins на опрос репозитория или реагирование на webhooks, вы исключаете случайное подтягивание устаревших или частично готовых изменений.
Пример сценария взаимного слияния (простая иллюстрация): разработчик A делает изменения и пушит, разработчик B в это время редактирует те же файлы и тоже пушит — Jenkins запустит сборку и уведомит о конфликтующих или некорректных сборках, что предотвращает потерю работы и сохраняет историю изменений чистой.
Этот подробный гид проведёт вас через установку и базовую настройку Jenkins на сервере Rocky Linux 8. Многие инструкции применимы и к другим RHEL-подобным дистрибутивам.
Что нужно перед началом
- Сервер с Rocky Linux 8, минимум 1 ГБ оперативной памяти; рекомендуем минимум 2 ГБ для продуктивных задач. Для каждого контейнера Docker, который будет запускать Jenkins, оставляйте ~10 ГБ свободного места.
- Неразрешённый пользователь с правами sudo.
- Подключение к интернету с прямым доступом или через прокси при необходимости.
Важно: для production-релизов планируйте выделенный сервер или контейнер с достаточными ресурсами, резервным хранением и периодическим бэкапом конфигурации Jenkins.
Шаг 1 — Обновление системы
Всегда начинайте с обновления пакетов, чтобы иметь чистую базу.
sudo dnf updateили, на старых системах:
sudo yum updateЕсли обновлялся ядро или важные системные пакеты, рекомендуется перезагрузка:
sudo reboot nowЗайдите обратно под тем же не-root пользователем и продолжите установку.
Советы
- На серверах с ограниченной пропускной способностью используйте зеркала пакетов ближе к региону для ускорения.
- Если система управляется через конфигурационные менеджеры (Ansible, Puppet), включите задачу обновления в playbook.
Шаг 2 — Установка Java
Jenkins требует JDK для запуска. В Rocky Linux доступны пакеты OpenJDK. Проверьте доступные версии:
sudo dnf search java-*-openjdkJenkins работает и на JDK 11, и на JDK 8, однако некоторые устаревшие плагины могут быть несовместимы с JDK 11. Для максимальной совместимости рекомендуется JDK 8 в старых окружениях; в новых — JDK 11 является стандартом.
Установка JDK 8:
sudo dnf install java-1.8.0-openjdk -yПроверка установки:
java -versionЕсли вы используете альтернативный JDK (например, OpenJDK 11 или коммерческие сборки), проверьте совместимость плагинов и системных интеграций заранее.
Совет: для контейнерной установки Jenkins можно использовать официальные Docker-образы, в которых JDK уже включён.
Шаг 3 — Добавление репозитория Jenkins
Jenkins не входит в стандартные репозитории Rocky Linux. Добавим официальный репозиторий Jenkins и импортируем GPG-ключ.
Установим wget при необходимости:
sudo dnf install wget -yДобавим репозиторий:
sudo wget -O /etc/yum.repos.d/jenkins.repo https://pkg.jenkins.io/redhat-stable/jenkins.repoИмпорт GPG-ключа:
sudo rpm --import https://pkg.jenkins.io/redhat-stable/jenkins.io.keyПроверьте список репозиториев:
sudo dnf repolistЕсли всё в порядке, в списке появится репозиторий jenkins. Пример вывода можно увидеть ниже.

Совет: при корпоративном прокси сохраните локальную копию ключа и репо-файла в приватном хранилище.
Шаг 4 — Установка сервера Jenkins
Обновим мета-данные и установим Jenkins:
sudo dnf update -ysudo dnf install jenkins -yПроверка статуса службы:
sudo systemctl status jenkinsПри успешной установке вы увидите, что служба активна или в состоянии ожидания запуска. Пример статуса можно увидеть ниже.

Если служба не запущена:
sudo systemctl start jenkinsЧтобы включить автоматический автозапуск при старте системы:
sudo systemctl enable jenkinsПроверка журналов (полезно при отладке):
sudo journalctl -u jenkins -fКлючевые места файлов и конфигураций
- Основной системный юнит: /usr/lib/systemd/system/jenkins.service
- Папка данных Jenkins: /var/lib/jenkins
- Логи: /var/log/jenkins
- Секреты и пароли: /var/lib/jenkins/secrets
Не удаляйте и не изменяйте эти директории вручную без бэкапа.
Шаг 5 — Настройка брандмауэра (firewalld)
Если сервер находится за брандмауэром, нужно открыть порт, используемый Jenkins (по умолчанию 8080):
sudo firewall-cmd --permanent --zone=public --add-port=8080/tcpПрименяем изменения:
sudo firewall-cmd --reloadПроверить текущую конфигурацию:
sudo firewall-cmd --list-allПример вывода с открытым портом можно увидеть ниже.

Замечание: в продуктивных окружениях часто ставят обратный прокси (nginx/Apache) и пробрасывают Jenkins через HTTPS; в этом случае внешний порт может быть 443, а внутренний — 8080.
Шаг 6 — Первичный запуск и начальная настройка
Откройте браузер и перейдите по адресу:
http://server_IP_address:8080Замена: server_IP_address на фактический IP или DNS-имя сервера. Например: http://192.168.1.5:8080
Страница начальной настройки предложит получить временный пароль администратора.

Из терминала получите пароль:
sudo cat /var/lib/jenkins/secrets/initialAdminPasswordСкопируйте и вставьте пароль в поле на странице установки и нажмите Continue.
Далее вы попадёте на страницу установки плагинов. Рекомендуется выбрать Install suggested plugins, чтобы получить базовый набор полезных плагинов.

Процесс установки может занять несколько минут.

После установки создайте первого администратора: укажите имя пользователя, пароль и контактный e-mail.

Далее укажите корневой URL (Instance Configuration). Оставьте предложенный адрес, если нет специальных требований, и нажмите Save and finish.

Нажмите Start using Jenkins, чтобы попасть в панель управления.

Теперь вы на дашборде Jenkins и готовы создавать первые проекты.

Безопасность и hardening (рекомендации)
Важно не оставлять Jenkins без защиты. Минимальные шаги безопасности:
- Всегда запускайте Jenkins за обратным прокси с TLS (Let’s Encrypt или корпоративный сертификат).
- Отключите доступ к панели из публичного интернета, если он не нужен; используйте VPN или Zero Trust.
- Регулярно обновляйте Jenkins core и плагины; внедрите тестовый стенд для проверки обновлений перед выкатом в прод.
- Ограничьте права пользователей через роль-based access control (плагин Role Strategy).
- Храните секреты в Jenkins Credentials Store и используйте интеграцию с HashiCorp Vault или аналогами для крупных проектов.
- Делайте бэкапы конфигурации: /var/lib/jenkins и, в частности, folders jobs, secrets, plugins.
Пример команды для бэкапа конфигурации:
sudo tar -czf /root/jenkins-backup-$(date +%F).tar.gz /var/lib/jenkinsКритично: не храните чувствительные данные в открытом виде в Jenkins jobs или Freestyle build steps.
Развёртывание через Docker (альтернативный способ)
Если вы предпочитаете контейнеры, официальный образ Jenkins LTS удобен и поддерживает быстрый разворот:
docker run --name jenkins -p 8080:8080 -p 50000:50000 -v jenkins_home:/var/jenkins_home jenkins/jenkins:ltsПреимущества Docker:
- Изоляция среды и контроль версий образа.
- Быстрое клонирование для тестов.
- Лёгкая миграция между хостами.
Недостатки:
- Требуется управление персистентностью (тома) и бэкапом.
- Отдельные интеграции с системным init (systemd) потребуют дополнительной настройки.
Управление плагинами и совместимость с JDK
- Если вы используете JDK 11, проверьте совместимость плагинов перед обновлением: некоторые старые плагины могут требовать JDK 8.
- Плагины обновляются в Manage Jenkins → Manage Plugins. Перед обновлением на проде проверьте обновления на тестовом экземпляре.
- Для массового управления плагинами используйте Pipeline или Configuration as Code (JCasC) для декларативного описания плагинов и конфигураций.
Чек-лист для администратора (role: администратор)
- Установлен и запущен Jenkins-сервис (systemctl status jenkins).
- Настроен обратный прокси и TLS.
- Открыт/перенаправлен необходимый порт (8080 или 443).
- Создан первый администратор и настроены роли.
- Включено резервное копирование /var/lib/jenkins.
- Настроены уведомления (e-mail/Slack) о падениях сборок.
- Протестированы обновления на staging перед продом.
Чек-лист для разработчика (role: разработчик)
- Понимаю, как настроить job (Freestyle/Declarative Pipeline).
- Использую Jenkinsfile в корне репозитория.
- Проверил, что тесты запускаются локально перед пушем.
- Настроены уведомления для своей команды.
Восстановление и откат (runbook)
Сценарий: после обновления Jenkins перестала запускаться.
- Остановите службу: sudo systemctl stop jenkins
- Просмотрите журналы: sudo journalctl -u jenkins -n 200
- Откатите директорию plugins (если проблема в плагинах):
cd /var/lib/jenkins
mv plugins plugins.bad
mkdir plugins
# распаковать из бэкапа либо скопировать только рабочие версии- Запустите службу и проверьте логи. Если всё в порядке — планируйте ревизию плагинов.
Если нужно вернуть конфигурацию из бэкапа:
sudo systemctl stop jenkins
sudo tar -xzf /root/jenkins-backup-YYYY-MM-DD.tar.gz -C /
sudo systemctl start jenkinsОтладка наиболее частых проблем
Проблема: Jenkins не запускается после установки.
- Проверьте, установлен ли Java и корректна ли версия: java -version
- Просмотрите журнал systemd: sudo journalctl -u jenkins -xe
- Проверьте права на /var/lib/jenkins (должны принадлежать пользователю jenkins).
Проблема: не могу зайти на веб-интерфейс
- Убедитесь, что служба запущена и порт 8080 слушается (ss -tulpn | grep 8080).
- Проверьте настройки firewall-cmd и SELinux (временно можно отключить SELinux для диагностики, но не в проде).
Проблема: плагины не устанавливаются
- Проверьте доступ к интернету с сервера (curl https://updates.jenkins.io).
- Проверьте, не блокирует ли прокси внешние подключения.
Модели принятия решений и зрелости (ментальные модели)
- Минимальный уровень: Jenkins на одном сервере, базовая авторизация, локальные бэкапы — подходит для малого проекта.
- Средний уровень: Jenkins за обратным прокси с TLS, регулярные обновления, роль-based доступ, автоматизированные тесты.
- Продакшен-уровень: High-availability решения (сможет быть реализовано через облачные сервисы или Kubernetes), централизованное хранилище секретов, интеграция с корпоративными SSO/LDAP.
Используйте модель “Infrastructure as Code” для конфигурации Jenkins (JCasC + Pipeline), чтобы обеспечить воспроизводимость и ускорить восстановление.
Критерии приёмки
- Сервис Jenkins успешно запущен и отвечает на http://server_IP:8080
- Войдя под первым администратором, можно установить рекомендуемые плагины.
- Создан простейший pipeline (Jenkinsfile), который проходит тестовый билд.
- Наличие резервной копии /var/lib/jenkins и проверяемого плана восстановления.
Сравнение подходов: native RPM vs Docker
- RPM (yum/dnf): привычно для админов Linux, удобство интеграции с systemd, простой мониторинг через стандартные средства.
- Docker: быстрая миграция, изоляция, удобны тестовые стенды; требует управления томами и оркестрации.
Выбор зависит от процессов вашей команды и требований к инфраструктуре.
Короткая методология внедрения (мини-SOP)
- Подготовить сервер, обновить систему, установить Java.
- Добавить репозиторий Jenkins и установить пакет.
- Запустить службу, открыть порт в брандмауэре.
- Пройти начальную веб-настройку и установить плагины.
- Настроить обратный прокси и TLS, включить бэкапы.
- Перенести ключевые jobs в Jenkinsfile и настроить CI для веток.
1-строчный глоссарий
- CI — непрерывная интеграция, автоматизированный запуск сборок и тестов.
- CD — непрерывная доставка/развёртывание.
- Jenkinsfile — декларативный или скриптовый файл, описывающий pipeline.
- JDK — Java Development Kit, среда выполнения Java.
Часто задаваемые вопросы
Где находится временный пароль администратора?
Пароль хранится в файле /var/lib/jenkins/secrets/initialAdminPassword. Получить его можно: sudo cat /var/lib/jenkins/secrets/initialAdminPassword
Какой порт использует Jenkins по умолчанию?
По умолчанию Jenkins слушает порт 8080.
Как сменить версию Java для Jenkins?
Установите нужную версию JDK и укажите альтернативу (alternatives) или измените JAVA_HOME в systemd unit файле Jenkins.
Как быстро запустить Jenkins в контейнере?
Используйте официальный Docker-образ jenkins/jenkins:lts и пробросьте порты и том для jenkins_home.
Заключение
В этой инструкции вы узнали, как установить Jenkins на Rocky Linux 8, пройти первичную настройку, открыть доступ через firewall, установить рекомендуемые плагины и создать первого администратора. Также приведены рекомендации по безопасности, варианты установки через Docker, чек-листы для ролей и план действий при сбоях. Jenkins — гибкий инструмент; начните с базовой установки, затем постепенно автоматизируйте и укрепляйте процесс.
Полезные ссылки:
- Официальная документация Jenkins: https://www.jenkins.io
Если у вас остались вопросы или есть предложения по улучшению руководства, оставьте комментарий или обратитесь к администратору вашего окружения.
Похожие материалы
Несколько аккаунтов Skype: Multi Skype Launcher
Журнал для работы: повысить продуктивность
Персональные звуки уведомлений на Android
Скачивание шоу Hulu для офлайн‑просмотра
Microsoft Start: персонализированная новостная лента