Jenkins Proxy Server: Полное Руководство по Настройке и Устранению Ошибок

Введение: Jenkins и Прокси-Серверы

Jenkins — популярный инструмент для автоматизации CI/CD, но в корпоративных сетях ему часто требуется прокси-сервер для доступа к внешним ресурсам (репозитории, плагины). Без правильной настройки прокси сборки падают, обновления не устанавливаются, а интеграции ломаются. В этом руководстве разберем, как настроить прокси для Jenkins, избежать типичных ошибок и ускорить рабочие процессы.

Зачем Jenkins Нужен Прокси-Сервер?

Прокси выступает посредником между Jenkins и интернетом, решая критические задачи:

  • Безопасность: Контроль исходящего трафика и блокировка опасных запросов.
  • Кэширование: Ускорение загрузки плагинов и зависимостей через локальное хранение данных.
  • Сетевые ограничения: Обход корпоративных firewall и политик доступа.
  • Мониторинг: Аудит внешних соединений для соответствия compliance-требованиям.

Способы Настройки Прокси в Jenkins

Через Web-Интерфейс

  1. Перейдите в Manage Jenkins → Manage Plugins → Advanced.
  2. В разделе HTTP Proxy укажите адрес, порт и учетные данные.
  3. Добавьте исключения (No Proxy) для внутренних ресурсов: localhost, 192.168.*, *.corp.

Через Конфигурационные Файлы

Для Docker или автоматизации измените jenkins.yaml:

jenkins:
  proxy:
    name: "proxy.corp.com"
    port: 3128
    noProxyHost: "internal-server|10.0.0.*"

Переменные Среды

Задайте параметры при запуске Jenkins:

java -Dhttp.proxyHost=proxy.example.com -Dhttp.proxyPort=8080 -jar jenkins.war

Примеры Конфигурации для Разных Сценариев

Прокси с Аутентификацией

В Manage Plugins → Advanced укажите логин и пароль. Для скриптов используйте формат URL:

http://user:password@proxy:port

Настройка Агентов

Для worker-нод добавьте в agent.properties:

org.jenkinsci.plugin.proxy.http.proxyHost=proxy.corp.com
org.jenkinsci.plugin.proxy.http.proxyPort=3128

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

  • “Connection timed out”: Проверьте firewall и правильность порта.
  • Ошибки аутентификации: Убедитесь, что спецсимволы в пароле экранированы.
  • Плагины не устанавливаются: Добавьте updates.jenkins.io в исключения прокси.
  • Сбои сборки: Для Git/Maven настройте прокси отдельно в ~/.m2/settings.xml или .gitconfig.

FAQ: Ответы на Ключевые Вопросы

Как проверить, работает ли прокси в Jenkins?

Перейдите в Manage Jenkins → System Log и ищите записи типа Connecting to proxy.example.com:3128.

Нужно ли настраивать прокси для Docker-агентов?

Да, через переменные среды в Dockerfile: ENV http_proxy=http://proxy:port.

Как обойти прокси для локальных URL?

В поле No Proxy Host укажите домены через запятую: localhost, jenkins.internal, 192.168.1.1.

Поддерживает ли Jenkins HTTPS-прокси?

Да, используйте параметры https.proxyHost и https.proxyPort в настройках JVM.

Что делать, если прокси блокирует Webhook-запросы?

Добавьте IP GitHub/GitLab в исключения или используйте reverse proxy (Nginx) для локальной маршрутизации.

Proxy Ninja
Добавить комментарий