- Введение: Jenkins и Прокси-Серверы
- Зачем Jenkins Нужен Прокси-Сервер?
- Способы Настройки Прокси в Jenkins
- Через Web-Интерфейс
- Через Конфигурационные Файлы
- Переменные Среды
- Примеры Конфигурации для Разных Сценариев
- Прокси с Аутентификацией
- Настройка Агентов
- Распространенные Проблемы и Решения
- FAQ: Ответы на Ключевые Вопросы
- Как проверить, работает ли прокси в Jenkins?
- Нужно ли настраивать прокси для Docker-агентов?
- Как обойти прокси для локальных URL?
- Поддерживает ли Jenkins HTTPS-прокси?
- Что делать, если прокси блокирует Webhook-запросы?
Введение: Jenkins и Прокси-Серверы
Jenkins — популярный инструмент для автоматизации CI/CD, но в корпоративных сетях ему часто требуется прокси-сервер для доступа к внешним ресурсам (репозитории, плагины). Без правильной настройки прокси сборки падают, обновления не устанавливаются, а интеграции ломаются. В этом руководстве разберем, как настроить прокси для Jenkins, избежать типичных ошибок и ускорить рабочие процессы.
Зачем Jenkins Нужен Прокси-Сервер?
Прокси выступает посредником между Jenkins и интернетом, решая критические задачи:
- Безопасность: Контроль исходящего трафика и блокировка опасных запросов.
- Кэширование: Ускорение загрузки плагинов и зависимостей через локальное хранение данных.
- Сетевые ограничения: Обход корпоративных firewall и политик доступа.
- Мониторинг: Аудит внешних соединений для соответствия compliance-требованиям.
Способы Настройки Прокси в Jenkins
Через Web-Интерфейс
- Перейдите в Manage Jenkins → Manage Plugins → Advanced.
- В разделе HTTP Proxy укажите адрес, порт и учетные данные.
- Добавьте исключения (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) для локальной маршрутизации.