Home » Как быстро поднять свой Jenkins на VPS и настроить автодеплой из Git: гайд для разработчика и DevOps
Как быстро поднять свой Jenkins на VPS и настроить автодеплой из Git: гайд для разработчика и DevOps

Как быстро поднять свой Jenkins на VPS и настроить автодеплой из Git: гайд для разработчика и DevOps

Если ты устал вручную выкатывать обновления, хочешь автоматизировать CI/CD, но не готов переплачивать за облачные сервисы — эта статья для тебя. Я расскажу, как развернуть Jenkins на VPS, подключить автодеплой из Git и не наступить на грабли, на которые наступают новички. Всё — простым языком, но без воды и упрощений. Поехали!

Почему Jenkins на VPS — это круто?

  • Свобода и контроль. Ты сам решаешь, что и как работает. Нет ограничений, как у SaaS.
  • Экономия. VPS дешевле, чем подписка на облачные CI/CD сервисы (особенно если проектов много).
  • Гибкость. Можно крутить любые плагины, интеграции, скрипты — хоть на Perl, хоть на Bash.
  • Безопасность. Ты сам отвечаешь за свои данные и доступы.

Но есть и обратная сторона: всё надо делать самому. Поэтому важно выбрать быстрый и надёжный VPS.
Рекомендую: https://arenda-server.cloud/vps — проверено лично, не подводили.

Как это работает? Алгоритм и структура

  1. Ты пушишь код в Git (GitHub, GitLab, Bitbucket — не важно).
  2. Jenkins на VPS ловит пуш через webhook или по расписанию.
  3. Jenkins собирает проект, прогоняет тесты, деплоит на сервер (или в Docker, или куда скажешь).
  4. Всё происходит автоматически, ты только пьёшь кофе и смотришь на зелёные галочки.

Что понадобится?

  • VPS с Ubuntu 22.04+ (или другой Linux, но Ubuntu проще всего)
  • Домен или IP-адрес VPS
  • Доступ по SSH (root или sudoer)
  • Git-репозиторий (GitHub, GitLab, Bitbucket и т.д.)
  • Чуть-чуть терпения и внимательности

Установка Jenkins на VPS: пошагово

1. Готовим VPS

Обнови систему и поставь Java (Jenkins без неё не взлетит):


sudo apt update && sudo apt upgrade -y
sudo apt install openjdk-17-jdk -y

2. Ставим Jenkins

Официальная инструкция тут: https://www.jenkins.io/doc/book/installing/linux/


wget -q -O - https://pkg.jenkins.io/debian/jenkins.io-2023.key | sudo tee \
  /usr/share/keyrings/jenkins-keyring.asc > /dev/null

echo deb [signed-by=/usr/share/keyrings/jenkins-keyring.asc] \
  https://pkg.jenkins.io/debian binary/ | sudo tee \
  /etc/apt/sources.list.d/jenkins.list > /dev/null

sudo apt update
sudo apt install jenkins -y

Запускаем Jenkins и добавляем в автозагрузку:


sudo systemctl enable jenkins
sudo systemctl start jenkins

3. Открываем порт 8080

Jenkins по умолчанию слушает порт 8080. Открой его в фаерволе:


sudo ufw allow 8080
sudo ufw reload

4. Первый запуск Jenkins

Открывай браузер: http://<твой_IP>:8080
Вводи пароль из файла:


sudo cat /var/lib/jenkins/secrets/initialAdminPassword

Дальше — стандартная настройка: ставь рекомендованные плагины, создай админа.

Настраиваем автодеплой из Git

1. Создаём новый Job (проект)

  • Жми “New Item” → “Freestyle project” (или Pipeline, если хочешь groovy-скрипты)
  • Дай имя, сохрани

2. Подключаем Git-репозиторий

  • В разделе “Source Code Management” выбери “Git”
  • Введи URL репозитория (https или ssh)
  • Если приватный — добавь credentials (логин/пароль или ssh-ключ)

3. Настраиваем триггер

  • В “Build Triggers” выбери “GitHub hook trigger for GITScm polling” (или аналог для GitLab/Bitbucket)
  • Или поставь “Poll SCM” и укажи расписание (например, H/5 * * * * — каждые 5 минут)

4. Делаем webhook в Git

  • В настройках репозитория добавь webhook: http://<твой_IP>:8080/github-webhook/
  • Проверь, что Jenkins реагирует на пуши

5. Пишем шаги сборки и деплоя

  • В “Build” добавь shell-скрипт, например:

#!/bin/bash
git pull origin main
./gradlew build
scp build/libs/myapp.jar user@prod-server:/opt/myapp/
ssh user@prod-server 'systemctl restart myapp'

(Подставь свои команды, путь, пользователя и сервер)

Практические советы и схемы

Как сделать деплой безопаснее?

  • Используй отдельного пользователя для деплоя, не root!
  • Ограничь доступ к Jenkins через VPN или firewall
  • Сделай резервные копии /var/lib/jenkins
  • Храни секреты (пароли, ключи) через Credentials, не в скриптах

Схема работы

[GitHub/GitLab/Bitbucket] --push--> [Jenkins на VPS] --build+deploy--> [Production Server]

Кейсы из жизни: что бывает

Позитивный кейс

У меня был pet-проект на Spring Boot. После настройки Jenkins на VPS:

  • Деплой стал занимать 1 минуту вместо 20
  • Ошибки в проде ловились до выката, а не после
  • Можно было спокойно спать — всё автоматом

Негативный кейс

Один знакомый забыл закрыть порт 8080, Jenkins попал в индекс Google. Итог — ботнеты, майнеры, взлом. Совет: всегда ставь reverse proxy (Nginx) и HTTPS!


sudo apt install nginx
sudo certbot --nginx

Частые ошибки и мифы

  • Миф: Jenkins — это сложно. Факт: Сложно только первый раз, дальше — как по маслу.
  • Ошибка: Хранить пароли в скриптах. Решение: Используй Credentials.
  • Ошибка: Не обновлять Jenkins и плагины. Решение: Обновляй раз в месяц, иначе уязвимости.
  • Ошибка: Не делать бэкапы. Решение: Автоматизируй бэкапы Jenkins и репозиториев.

Похожие решения и альтернативы

  • Drone CI — легковесный CI/CD, тоже можно ставить на VPS
  • Gitea Actions — если свой Git-сервер
  • GitHub Actions — если не хочется возиться с VPS
  • GitLab CI — если проект на GitLab

Заключение: стоит ли игра свеч?

Если тебе нужен быстрый, надёжный и гибкий CI/CD — Jenkins на VPS это топовый вариант. Ты получаешь полный контроль, экономишь деньги и учишься DevOps-магии. Главное — не ленись настраивать безопасность и бэкапы.

Если остались вопросы — пиши в комменты, помогу советом. Удачи в автоматизации!


В этой статье собрана информация и материалы из различных интернет-источников. Мы признаем и ценим работу всех оригинальных авторов, издателей и веб-сайтов. Несмотря на то, что были приложены все усилия для надлежащего указания исходного материала, любая непреднамеренная оплошность или упущение не являются нарушением авторских прав. Все упомянутые товарные знаки, логотипы и изображения являются собственностью соответствующих владельцев. Если вы считаете, что какой-либо контент, использованный в этой статье, нарушает ваши авторские права, немедленно свяжитесь с нами для рассмотрения и принятия оперативных мер.

Данная статья предназначена исключительно для ознакомительных и образовательных целей и не ущемляет права правообладателей. Если какой-либо материал, защищенный авторским правом, был использован без должного упоминания или с нарушением законов об авторском праве, это непреднамеренно, и мы исправим это незамедлительно после уведомления. Обратите внимание, что переиздание, распространение или воспроизведение части или всего содержимого в любой форме запрещено без письменного разрешения автора и владельца веб-сайта. Для получения разрешений или дополнительных запросов, пожалуйста, свяжитесь с нами.

Leave a reply

Your email address will not be published. Required fields are marked