Первичная настройка Jenkins: мастер, плагины, пользователи

Рейтинг: 72.2% · 10 голосов
Подробный курс по Jenkins и CI/CD: установка и настройка, плагины и Configuration as Code, конвейеры (pipeline) и Jenkinsfile, declarative и scripted, агенты, Docker и Kubernetes, общие библиотеки на Groovy, безопасность и credentials, интеграции (SonarQube, артефакты), траблшутинг. Актуально на 2026.
Ответить
Аватара пользователя
Andrey_CICD
Сообщения: 47
Зарегистрирован: 11 май 2026, 05:31

Первичная настройка Jenkins: мастер, плагины, пользователи

Сообщение Andrey_CICD »

Оглавление курса (47)
  1. Что такое Jenkins и зачем нужен CI/CD
  2. Jenkins в 2026: версии, экосистема и сравнение с GitLab CI и GitHub Actions
  3. Архитектура Jenkins: контроллер, агенты, узлы и исполнители
  4. Установка Jenkins: пакеты, Docker и Kubernetes
  5. Первичная настройка Jenkins: мастер, плагины, пользователи (вы здесь)
  6. Плагины Jenkins: установка, обновление и ключевой набор
  7. Configuration as Code (JCasC): настройка Jenkins декларативно
  8. Конвейеры Jenkins и Jenkinsfile: pipeline as code
  9. Scripted против Declarative: два синтаксиса конвейера
  10. Структура конвейера: node, stage, steps и первый pipeline
  11. Генератор сниппетов, запуск конвейера и Replay
  12. Типы заданий Jenkins: Freestyle, Pipeline, Multibranch и Organization
  13. Декларативный конвейер: структура pipeline, agent, stages
  14. agent, environment и переменные в конвейере
  15. tools, options, parameters и triggers в декларативном конвейере
  16. stages, parallel и matrix: организация этапов
  17. Условное выполнение when и блок post
  18. Триггеры сборки: webhook от GitHub, SCM polling и расписание
  19. Параметры сборки и пользовательский ввод
  20. Управление потоком: timeout, retry, sleep и waitUntil
  21. Параллелизм и блокировки: parallel, lock, milestone
  22. Постобработка и уведомления о результате сборки
  23. Groovy для Jenkins: основы скриптового конвейера
  24. Скриптовый конвейер: логика, циклы и функции
  25. Общие библиотеки Jenkins: Shared Libraries
  26. Подключение и загрузка общих библиотек
  27. Шаги оболочки: sh, bat, powershell и коды возврата
  28. Переменные среды, withEnv и рабочие пространства
  29. Работа с файлами, артефактами и отпечатками
  30. Сборка проектов в конвейере: Maven, Gradle, npm
  31. Качество кода: SonarQube и покрытие тестами
  32. Управление артефактами: публикация в Nexus и Artifactory
  33. Docker в Jenkins: образы как агенты сборки
  34. Сборка и публикация Docker-образов из конвейера
  35. Jenkins в Kubernetes: динамические pod-агенты
  36. Развёртывание в Kubernetes из конвейера
  37. Безопасность Jenkins: аутентификация и матрица прав
  38. Учётные данные Jenkins: credentials в конвейере
  39. Безопасность сценариев: Groovy sandbox и Vault
  40. Уведомления и отчёты: email, Slack, Telegram, HTML
  41. Blue Ocean и интерфейс Jenkins в 2026
  42. Автоматизация Jenkins: CLI, REST API и script console
  43. Поиск и устранение неисправностей: читаем логи конвейера
  44. Типичные ошибки конвейера: сериализация и неутверждённый код
  45. Эксплуатация Jenkins: бэкап, обновление, масштабирование
  46. Конвертация и миграция: от Freestyle к Jenkinsfile
  47. Итог: сквозной CI/CD конвейер и Jenkins против альтернатив в 2026
Ты установил Jenkins, открыл браузер, увидел экран "Unlock Jenkins" с просьбой ввести пароль из файла - и дальше начинается момент, который ломает половину новичков. Промахнулся на старте, нажал "не глядя" пару кнопок - и через месяц у тебя контроллер с открытым на весь интернет анонимным доступом, кучей лишних плагинов и тем самым URL вида http://localhost:8080, из-за которого не работают вебхуки и ссылки в письмах. Первичная настройка jenkins - это не "прокликать визард", а заложить фундамент, на котором будут стоять все твои конвейеры. Разберём по шагам, что делать сразу после установки, и сразу подведём к тому, как перестать кликать руками вообще.

Мастер настройки: разблокировка, плагины и первый админ

При первом запуске Jenkins генерирует одноразовый пароль и кладёт его в файл внутри JENKINS_HOME. Найти его легко:

Код: Выделить всё

cat /var/lib/jenkins/secrets/initialAdminPassword
# в Docker:
docker exec <container> cat /var/jenkins_home/secrets/initialAdminPassword
Это защита от того, чтобы свежий контроллер не захватил случайный прохожий, пока ты ходил за кофе. Вводишь пароль - и попадаешь на выбор: "Install suggested plugins" или "Select plugins to install". Для первого знакомства бери suggested - это разумный набор по умолчанию (Git, Pipeline, матрица прав, Credentials, агенты). Но запомни главное правило про jenkins плагины: каждый установленный плагин - это код, который выполняется в твоём контроллере, потенциальная дыра в безопасности и ещё одна штука, которую надо обновлять. Не ставь "на всякий случай". Лишние плагины потом сложнее вычищать, чем доставить нужный.

Следующий экран - создание первого администратора. Не оставляй учётку admin/admin и не пропускай этот шаг кнопкой "Continue as admin", иначе логином станет тот самый одноразовый секрет. Заведи нормального пользователя с осмысленным именем и сильным паролем. Последний шаг визарда - Jenkins URL. Его обязательно проставить правильно: это не косметика. По этому адресу Jenkins строит ссылки в уведомлениях и, что важнее, его ждут вебхуки от GitLab и GitHub. Оставишь localhost - получишь молчащие триггеры и битые ссылки в почте.

Изображение

Manage Jenkins: глобальная конфигурация и настройка инструментов

Когда визард закрылся, вся дальнейшая настройка jenkins живёт в разделе Manage Jenkins. Это твой центр управления, и стоит знать, что где лежит. Обзор Manage Jenkins по основным блокам:
  • System - системные настройки: Jenkins URL, системное сообщение, число исполнителей (executors) на контроллере, адрес SMTP, глобальные переменные окружения.
  • Tools - объявление инструментов сборки: JDK, Git, Maven, Gradle, NodeJS. Здесь ты задаёшь именованные установки, на которые потом ссылаешься в пайплайне.
  • Plugins - управление плагинами: установка, обновление, удаление.
  • Security - кто может войти (Security Realm) и кто что может делать (Authorization).
  • Nodes и Clouds - агенты и облачные провайдеры (например, Kubernetes).
  • Credentials - секреты: токены, SSH-ключи, пароли.
Отдельно про executors на контроллере. По умолчанию их обычно 2, и соблазн запускать сборки прямо на контроллере велик. Не делай так в проде: контроллер должен координировать, а собирать должны агенты. Поставь число исполнителей контроллера в 0, как только появятся агенты.

Настройка инструментов сборки в Tools - частый источник боли у новичков. Логика такая: ты регистрируешь установку с именем, а Jenkins либо использует уже стоящий в системе бинарник (путь к JAVA_HOME, к git), либо ставит сам через "Install automatically". В декларативном пайплайне на эти имена ссылаются через блок tools:

Код: Выделить всё

pipeline {
    agent any
    tools {
        jdk 'jdk21'
        maven 'maven3'
    }
    stages {
        stage('Build') {
            steps {
                sh 'java -version'
                sh 'mvn -B clean package'
            }
        }
    }
}
Имена 'jdk21' и 'maven3' тут - это ровно те имена, что ты задал в Manage Jenkins -> Tools. Не совпадут по символу - пайплайн упадёт с "No tool named ... found". Про версии: актуальные LTS-сборки Jenkins в 2026 году ушли далеко вперёд от книги Ластера. Линейка 2.541.x (январь 2026) - последняя с поддержкой Java 11, а LTS 2.555.1 (апрель 2026) уже требует Java 21 или 25 и не запускается на Java 17. Поэтому JDK для самого Jenkins ставь современный, а версии под сборку проектов - какие нужны проекту.

Jenkins пользователи, авторизация и базовая безопасность

Самое опасное место дефолтной установки - права доступа. Заходишь в Security и видишь два независимых вопроса. Первый - Security Realm (откуда берутся jenkins пользователи): "Jenkins' own user database" - встроенная база, простой и нормальный вариант для старта; есть LDAP, есть вход через GitHub/Google. Второй вопрос - Authorization (что им можно). Здесь живёт главная ловушка: режим "Anyone can do anything" удобен на минуту и катастрофичен на проде - это анонимный полный доступ. Никогда не оставляй его. Рабочий выбор - "Matrix-based security" (матрица прав) или "Project-based Matrix Authorization", где ты явно раздаёшь права по пользователям и группам.

Минимально здравая матрица: анонимному пользователю - ничего (или только Overall/Read, если форум должен показывать статус сборок публично), аутентифицированным - чтение, конкретным людям - сборка и администрирование. Не давай Overall/Administer всем подряд: с этим правом человек по сути получает шелл на сервере через пайплайн.

И отдельно про создание jenkins пользователей. В режиме встроенной базы новых людей заводят в Manage Jenkins -> Users. Но запомни: создать пользователя и выдать ему права - это два разных действия. Завёл учётку в Users, потом обязательно прописал её в матрице авторизации, иначе человек войдёт и не увидит ничего.

Резервное копирование JENKINS_HOME и подход "не кликать руками"

Вся конфигурация, которую ты сейчас накликал, история сборок, плагины и секреты - всё это лежит в одной директории JENKINS_HOME (обычно /var/lib/jenkins или /var/jenkins_home в Docker). Потеряешь её - потеряешь весь Jenkins. Поэтому бэкап JENKINS_HOME обязателен. Минимально рабочий вариант - остановить сервис и заархивировать каталог:

Код: Выделить всё

systemctl stop jenkins
tar czf /backup/jenkins-$(date +%F).tar.gz -C /var/lib/jenkins .
systemctl start jenkins
Под секреты (каталоги secrets/ и credentials.xml) относись с особой осторожностью: храни бэкапы зашифрованными и отдельно от основного диска.

А теперь главное. Всё, что ты прокликал в визарде и Manage Jenkins, - это состояние, которое живёт в недрах XML-файлов и которое невозможно нормально ревьюить и воспроизвести. Современный ответ на это - Configuration as Code (плагин JCasC). Вместо кликов ты описываешь конфигурацию контроллера в YAML, кладёшь файл в репозиторий и указываешь Jenkins на него переменной CASC_JENKINS_CONFIG. Вот как тот же самый стартовый набор выглядит декларативно:

Код: Выделить всё

jenkins:
  systemMessage: "Управляется через JCasC, руками не трогать"
  numExecutors: 0
  securityRealm:
    local:
      allowsSignup: false
      users:
        - id: "admin"
          password: "${ADMIN_PASSWORD}"
  authorizationStrategy:
    globalMatrix:
      permissions:
        - "Overall/Administer:admin"
        - "Overall/Read:authenticated"
unclassified:
  location:
    url: "https://ci.example.com/"
tool:
  git:
    installations:
      - name: "Default"
        home: "git"
Пароль тут подтягивается из переменной окружения, а не лежит в открытом виде. Поднял новый контроллер - подсунул этот YAML - получил идентичную настройку без единого клика. Именно так строят Jenkins в Kubernetes с эфемерными pod-агентами: контроллер разворачивается из кода, конфигурация воспроизводима, ничего не настраивается мышкой. К JCasC мы вернёмся подробно в отдельном уроке, но держи в голове с самого начала: ручная настройка через Manage Jenkins хороша, чтобы понять механику, а в проде её место занимает код.

Кстати, про устаревшее. Blue Ocean - красивый альтернативный UI из эпохи книги Ластера - в 2026 году в режиме поддержки: новых функций нет, только редкие правки безопасности. Строить на нём ничего не надо, это наследие. И для контекста: по адаптации в индустрии Jenkins держит около 28 процентов, уступив лидерство GitHub Actions (порядка 33) и наступающему на пятки GitLab CI. Там конфигурация изначально живёт в YAML в репозитории - и JCasC как раз догоняет эту идею для мира Jenkins.

Типичные грабли
  • Оставленный localhost в Jenkins URL. Вебхуки не приходят, ссылки в письмах битые. Правь сразу в System.
  • "Anyone can do anything". Открытый анонимный доступ к серверу с правом запуска шелл-команд. Никогда не в проде.
  • Сборка на контроллере. Executors контроллера в 0, собирают агенты.
  • Плагины пачками. Каждый - риск и обновления. Ставь только нужное.
  • Создал пользователя, забыл про матрицу. Человек входит и видит пустоту - права раздаются отдельно.
  • Нет бэкапа JENKINS_HOME. Один отказ диска - и весь Jenkins с историей и секретами потерян.
Мини-лаба
  • Запусти свежий Jenkins (проще всего в Docker), достань initialAdminPassword, пройди визард, выбрав suggested plugins.
  • Создай нормального админа (не admin/admin) и пропиши корректный Jenkins URL в Manage Jenkins -> System.
  • В Manage Jenkins -> Tools заведи установку JDK с именем jdk21 и Maven с именем maven3. Собери минимальный декларативный pipeline из урока и убедись, что java -version и mvn отрабатывают.
  • Переключи Authorization на Matrix-based security, заведи второго пользователя в Users, выдай ему только Overall/Read и проверь под его логином, что админских кнопок он не видит.
  • Сделай tar-бэкап JENKINS_HOME, удали контейнер, разверни заново и восстанови из архива.
Контрольные вопросы
  • Чем Security Realm отличается от Authorization Strategy и почему недостаточно завести пользователя, чтобы он получил права?
  • Почему режим "Anyone can do anything" опасен и какой режим авторизации брать вместо него?
  • Что произойдёт, если имя инструмента в блоке tools пайплайна не совпадёт с именем установки в Manage Jenkins -> Tools?
  • Какую проблему ручной настройки решает JCasC и что нельзя забыть положить в бэкап JENKINS_HOME?
Итог

Первичная настройка Jenkins - это пять решений, которые задают судьбу инсталляции: разумный набор плагинов, нормальный админ вместо дефолта, правильный Jenkins URL, матрица прав вместо открытого доступа и регулярный бэкап JENKINS_HOME. Manage Jenkins даёт всё это прокликать руками - и это полезно, чтобы понять механику. Но как только ты осознал, какие именно ручки крутишь, переноси их в YAML через JCasC: воспроизводимый контроллер из кода - это и есть стандарт 2026 года, особенно когда Jenkins живёт в Kubernetes.
👍4 ❤️2 🔥 😄 🤔1
Аватара пользователя
oldschoolgopher
Сообщения: 1
Зарегистрирован: 13 май 2026, 17:38

Re: Первичная настройка Jenkins: мастер, плагины, пользователи

Сообщение oldschoolgopher »

Спасибо, наконец дошло почему вебхуки от гитлаба молчали - стоял localhost в Jenkins URL. Поправил, заработало.
👍 ❤️ 🔥 😄 🤔
Аватара пользователя
sivan1
Сообщения: 1
Зарегистрирован: 22 май 2026, 06:33

Re: Первичная настройка Jenkins: мастер, плагины, пользователи

Сообщение sivan1 »

Вопрос: а если я сразу хочу через JCasC, можно ли вообще пропустить визард с suggested plugins или хотя бы накатить базовый набор плагинов из того же yaml?
👍1 ❤️ 🔥 😄 🤔
Ответить
← Предыдущая глава
Установка Jenkins: пакеты, Docker и Kubernetes
Следующая глава →
Плагины Jenkins: установка, обновление и ключевой набор

Все главы курса «Jenkins: конвейеры CI/CD от основ до продакшена»

Поделиться темой: ✈ Telegram VK
Похожие запросы: что такое jenkins простыми словамикак установить jenkins на linux и в dockerпервичная настройка jenkins после установкикакие плагины jenkins нужны новичкукак настроить агенты jenkins для сборкиcicd для начинающих с чего начать на jenkins

Вернуться в «Jenkins: конвейеры CI/CD от основ до продакшена»

Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и 2 гостя