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

Установка Jenkins и запуск первого задания

• 9 min read • DevOps • Обновлено 19 Nov 2025
Установка Jenkins и запуск первого задания
Установка Jenkins и запуск первого задания

Заставка Jenkins: диаграмма CI

Быстрые ссылки

  • Предварительные требования
  • Установка Jenkins
  • Установка плагинов
  • Настройка Git-репозитория
  • Управление исходным кодом
  • Триггеры сборки
  • Шаги сборки
  • (Опционально) Пост-обработчики
  • Запуск сборки
  • Резюме

Введение

Непрерывная интеграция (CI) и непрерывная доставка (CD) — ключевые принципы DevOps. Автоматизация сборки и развертывания позволяет командам вносить небольшие изменения чаще и безопаснее. Автоматизация снижает вероятность регрессий, потому что код регулярно проверяют и тестируют.

Jenkins — гибкий и популярный open-source оркестратор процессов сборки и CI/CD. Он одинаково годится для монолита и микросервисов, для локального сервера и облака. В этом руководстве мы развернём локальный Jenkins, настроим опрос локального Git-репозитория и запустим простой PowerShell-скрипт при изменении репозитория. Это даст практическое представление о базовом рабочем процессе Jenkins.

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

Чтобы повторить примеры в статье, подготовьте следующее:

  • Компьютер с macOS, Linux или Windows.
  • Java 1.7 или новее (Jenkins запускается на Java).
  • Менеджер пакетов (Chocolatey для Windows, Homebrew для macOS, apt/yum для Linux и т. п.).
  • Веб-браузер (Chrome, Firefox или любой Chromium-браузер).
  • Git (можно установить через менеджер пакетов).
  • Git-репозиторий с доступом для клонирования.

Краткое пояснение: Java необходима для сервера Jenkins; Git хранит ваши исходники; браузер нужен для веб-интерфейса.

Установка Jenkins

Jenkins можно установить разными способами: через менеджер пакетов, как системный сервис, в контейнере Docker или через облачные образы. Для быстрого старта используйте менеджер пакетов вашей ОС. Для продакшена рекомендуем продумать установку с учётом бэкапов, HA и безопасности.

  • Windows: Chocolatey (choco install jenkins)
  • macOS: Homebrew (brew install jenkins-lts или запуск через Homebrew services)
  • Linux: дистрибутивные пакеты (apt/yum) или офф. репозиторий Jenkins

После установки откройте браузер и перейдите по адресу:

http://localhost:8080

localhost указывает на сервер, запущенный на вашей машине. Порт 8080 — дефолтный порт интерфейса Jenkins.

Поиск одноразового пароля администратора

При первом запуске Jenkins создаёт одноразовый пароль и записывает его в файл на файловой системе. На странице первоначальной настройки Jenkins укажет путь к файлу. Откройте этот файл и скопируйте пароль в поле администратора, чтобы продолжить.

Файл с одноразовым паролем администратора Jenkins

Важно: этот шаг проверяет, что вы имеете доступ к файловой системе сервера, где установлен Jenkins.

Установка начальных плагинов

Jenkins сам по себе минималистичен. Функциональность добавляют плагины. В процессе установки Jenkins предложит установить рекомендуемые плагины или выбрать вручную. Для начала выберите рекомендованные плагины, а затем добавляйте специфичные плагины по мере необходимости.

Создание пользователя администратора

После базовой установки Jenkins попросит создать первого администратора. Запомните учётные данные. Их можно будет изменить позже через управление пользователями.

Форма создания первого администратора Jenkins

Указание URL Jenkins

Jenkins предложит указать системный URL. Это не регистрация домена и не меняет доступ к серверу локально. URL будет применяться внутри веб-хуков и автоматически создаваемых переменных окружения. Для продакшена используйте постоянный домен или поддомен, например jenkins.example.com.

Важно: для публичного доступа используйте HTTPS и корректные сертификаты.

После завершения вы увидите пустую домашнюю страницу Jenkins.

Пустая страница Jenkins после установки

Установка плагинов

Плагины расширяют Jenkins: от поддержки SCM до интеграций с облачными провайдерами. Для нашей демонстрации потребуются: Git-плагин для интеграции с репозиторием и PowerShell-плагин для выполнения шагов на Windows-агенте. Если хотите — добавьте развлекательный Chuck Norris плагин.

  1. Откройте Manage Jenkins → Manage Plugins.
  2. Перейдите на вкладку Available и найдите нужные плагины.
  3. Отметьте PowerShell и Git, нажмите Install without restart.

Вкладка доступных плагинов в Менеджере плагинов Jenkins

Совет: регулярно обновляйте плагины и проверяйте совместимость с версией Jenkins.

Настройка Git-репозитория

Jenkins будет опрашивать репозиторий и запускать сборку при изменениях. Скопируйте URL вашего репозитория (например, https://git.example.com/your-repo.git) и сохраните его.

В Jenkins:

  1. Нажмите New Item.
  2. Выберите Freestyle project.
  3. Дайте уникальное понятное имя.
  4. Откроется страница Configure — здесь находятся параметры задания.

Не пугайтесь большого количества опций. Для типовой задачи используются не все.

Управление исходным кодом

В разделе Source Code Management выберите Git и вставьте Repository URL. Оставьте остальные параметры по умолчанию, если не требуется аутентификация или специфичные ветки. По умолчанию Jenkins будет опрашивать ветку master/main.

Поле ввода URL репозитория Git в конфигурации задания

Совет: если репозиторий приватный, настройте креденшны (Credentials) и используйте SSH-ключ или персональный токен.

Триггеры сборки

В разделе Build Triggers включите Poll SCM и укажите расписание:

* * * * *

Это cron-выражение указывает опрашивать репозиторий каждую минуту. Jenkins сравнит последний известный коммит и при наличии изменений запустит сборку.

Настройка Poll SCM с cron-выражением в Jenkins

Альтернативы: вебхуки (webhooks) из GitHub/GitLab экономят ресурсы сервера и запускают сборку мгновенно.

Шаги сборки

В разделе Build добавьте шаг Windows PowerShell и вставьте:

Get-ChildItem $ENV:WORKSPACE

Эта команда выведет содержимое рабочей директории Jenkins, куда был клонирован репозиторий. Jenkins передаёт переменную окружения $ENV:WORKSPACE во время выполнения задачи.

Добавление шага сборки Windows PowerShell с командой Get-ChildItem

Пояснение переменных: Jenkins предоставляет множество переменных окружения для задач, например BUILD_NUMBER, JOB_NAME, WORKSPACE и т. д. Их удобно использовать в скриптах.

Пост-обработчики

Опционально: если вы установили Chuck Norris плагин, можно добавить Activate Chuck Norris как визуальную финтифлюшку. Это не влияет на логику сборки, а лишь добавляет эффект в UI.

Параметр Activate Chuck Norris в списке пост-обработки сборки

Запуск сборки

Каждая сборка выполняется в workspace — директории на агенте Jenkins (или на сервере, если агент локальный). При запуске Jenkins клонирует репозиторий в workspace и выполняет шаги сборки как .ps1 скрипт.

Вы можете запустить сборку двумя способами:

  • Сделать коммит и запушить в репозиторий, дождаться опроса SCM.
  • Нажать Build Now в интерфейсе задачи.

После запуска в домашней странице задачи появится запись о сборке.

Домашняя страница Jenkins с историей сборок после запуска

Откройте номер сборки в Build History, затем Console Output, чтобы увидеть результаты выполнения шагов.

Вывод консоли сборки с пошаговыми командами

В конце вывода вы увидите результат команды Get-ChildItem, похожий на пример ниже.

Результат выполнения Get-ChildItem в консоли сборки

Критерии приёмки

  • Задача создаётся и сохраняется в Jenkins.
  • Jenkins успешно клонирует репозиторий в workspace.
  • Команда PowerShell выполняется и возвращает список файлов.
  • В Console Output нет ошибок доступа или конфликта версий плагинов.

Частые проблемы и решения

  • Проблема: Jenkins не может клонировать приватный репозиторий.
    • Решение: добавьте креденшны (SSH-ключ или токен) в Jenkins Credentials и укажите их в настройках репозитория.
  • Проблема: PowerShell-плагин не виден.
    • Решение: убедитесь, что установлен плагин и Jenkins перезапущен при необходимости.
  • Проблема: сборка не запускается по расписанию.
    • Решение: проверьте системное время сервера и cron-выражение; рассмотрите вебхуки как альтернативу.

Роли и чек-листы

Администратор Jenkins:

  • Установить Jenkins как сервис.
  • Настроить безопасный доступ (HTTPS, firewall).
  • Подключить хранилище кадров/агентов.
  • Настроить бэкапы / обновления плагинов.

DevOps-инженер:

  • Создать шаблоны задач и pipeline.
  • Добавить креденшны для внешних сервисов.
  • Настроить мониторинг и оповещения.

Разработчик:

  • Поддерживать тесты в репозитории.
  • Писать скрипты сборки и проверки.
  • Проверять Console Output и фиксировать ошибки.

Шаблон: быстрое SOP для создания новой задачи

  1. New Item → Freestyle project.
  2. Вставить Repository URL в Source Code Management.
  3. Добавить креденшны при необходимости.
  4. Build Triggers → Poll SCM или Use webhooks.
  5. Build → Add build step → Windows PowerShell / Shell.
  6. Тестировать локально: Build Now → Console Output.
  7. Закоммитить конфигурацию задач в код (если используете Job DSL или Pipeline as Code).

Мини-методология: когда использовать Freestyle, а когда Pipeline

  • Freestyle — быстрый старт, простые задачи.
  • Declarative Pipeline — версия контроля, хранится в Jenkinsfile в репозитории.
  • Scripted Pipeline — гибкость для сложной логики.

Выбор: если сборка включает множество шагов, артефактов и параллельных задач, используйте Pipeline.

Безопасность и жесткая конфигурация

  • Включите авторизацию Matrix-based и создайте роли с минимальными правами.
  • Включите HTTPS и используйте валидные сертификаты.
  • Храните секреты в Credentials, не в скриптах.
  • Регулярно обновляйте Jenkins core и плагины.
  • Отключите ненужные плагины и протоколы.

Конфиденциальность и соответствие требованиям

Если CI/CD обрабатывает персональные данные, подумайте о GDPR:

  • Минимизируйте хранение личных данных в логах.
  • Ограничьте доступ к репозиториям и логам.
  • Документируйте базы данных и процессы обработки.

Альтернативы и варианты продакшена

  • Docker: запуск Jenkins в контейнере упрощает переносимость.
  • Kubernetes: Jenkins X или Kubernetes-based runners для масштабируемых конвейеров.
  • Managed CI: GitHub Actions, GitLab CI, CircleCI — если не хочется управлять сервером.

Когда Jenkins не подходит:

  • Если вам нужен полностью управляемый сервис с минимальной операционной нагрузкой.
  • Если инфраструктура строго ограничена и нельзя запускать долгоживущие агенты.

Тесты и критерии приёмки для задания

  • Acceptance: задача клонирует репозиторий и возвращает exit code 0.
  • Тест: создать фиктивный коммит, убедиться, что сборка запустилась.
  • Тест: при неправильных креденшнах сборка должна падать с понятной ошибкой.

План отката и инцидент-руководство

  1. Если Jenkins перестал запускаться после обновления — верните последнюю стабильную версию плагинов через восстановление бэкапа.
  2. Если агент отказывается подключаться — проверка сетевых правил и прав SSH/службы.
  3. Всегда делайте бэкап каталога JENKINS_HOME перед крупными изменениями.

Decision flowchart

flowchart TD
  A[Начать] --> B{Установка для теста или продакшена}
  B -->|Тест| C[Менеджер пакетов или Docker]
  B -->|Продакшен| D[Проектирование HA, безопасность, домен]
  C --> E[Установить плагины: Git, PowerShell]
  D --> E
  E --> F{Имеется приватный репозиторий}
  F -->|Да| G[Добавить креденшны]
  F -->|Нет| H[Просто Git URL]
  G --> I[Создать задание: Freestyle или Pipeline]
  H --> I
  I --> J[Настроить триггер: Poll SCM или Webhook]
  J --> K[Запустить Build Now]
  K --> L{Прошла ли сборка}
  L -->|Да| M[Перейти к автоматизации и тестам]
  L -->|Нет| N[Проверить Console Output и права]

Примеры сценариев и кейсы

  • Сценарий: приватный репозиторий + вебхуки.
    • Решение: настроить вебхук в GitHub → Jenkins, добавить креденшны.
  • Сценарий: сборка с артефактами.
    • Решение: добавить шаг публикации артефактов и архивирование.

Совместимость и миграция

  • При миграции Jenkins между серверами копируйте JENKINS_HOME и credentials.xml (шифруются с использованием ключа секретов). Обязательно экспортируйте и переносите секретный файл секретов (jenkins.model.JenkinsLocationConfiguration.xml и secrets/).
  • При переходе на новую версию сначала протестируйте на стенде, затем обновляйте продакшен.

Локальные альтернативы и подводные камни

  • На Windows проверьте политику исполнения PowerShell (ExecutionPolicy). Иногда нужно разрешить запуск локальных скриптов.
  • На macOS/Linux используйте Shell-steps вместо PowerShell.
  • Cron-опрос каждую минуту нагружает сервер. Для лёгких установок это допустимо, но на больших репозиториях используйте вебхуки.

Глоссарий (1 строка для каждого термина)

  • CI: непрерывная интеграция — частые автоматические проверки изменений.
  • CD: непрерывная доставка — автоматизация выпуска в окружения.
  • Workspace: рабочая директория задания на агенте.
  • Plugin: расширение, добавляющее функции Jenkins.

Краткое резюме

  • Jenkins даёт быстрый старт для CI/CD.
  • Для минимального процесса нужны Java, Git, и менеджер пакетов.
  • Настройте репозиторий, триггер и шаг сборки.
  • Обеспечьте безопасность, храните секреты в Credentials и используйте HTTPS.

Важно: изучите плагины и постепенно переводите задания в Pipeline-as-Code для версионности.

Примечание

Если у вас есть GitHub Enterprise или GitLab, интеграция с Jenkins откроет дополнительные возможности: статус-проверки, авто-деплой, параллельные тесты и gated merges.

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

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

Несколько аккаунтов Skype: Multi Skype Launcher
Программное обеспечение

Несколько аккаунтов Skype: Multi Skype Launcher

Журнал для работы: повысить продуктивность
Productivity

Журнал для работы: повысить продуктивность

Персональные звуки уведомлений на Android
Android.

Персональные звуки уведомлений на Android

Скачивание шоу Hulu для офлайн‑просмотра
Стриминг

Скачивание шоу Hulu для офлайн‑просмотра

Microsoft Start: персонализированная новостная лента
Новости

Microsoft Start: персонализированная новостная лента

Как изменить имя в Epic Games быстро
Гайды

Как изменить имя в Epic Games быстро