VPN отключился молча: как я потерял доступ к релизу

Когда VPN молчит: охота на привидение среди ночи
Пятница, конец дня, а на горизонте маячит дедлайн релиза v1.0.0 проекта speech-to-text. Финальный рывок: нужно запушить коммит с автоматизацией сборки в master, создать тег и загрузить артефакт в GitLab Package Registry. Казалось бы, стандартная процедура — пара команд в консоль, и мы свободны.
Но начало было не самым обнадёживающим. Я попытался перезапустить Gitaly — критический компонент GitLab, отвечающий за хранение репозиториев и работу с гитом на серверной стороне. SSH молчит. Попробовал достучаться через HTTP к самому GitLab-серверу — тишина. Весь сервер, похоже, вообще не существует с точки зрения моей машины.
Стандартный алгоритм отладки: если ничего не отвечает, проблема либо с сервером, либо с сетью. Сервер на 144.91.108.139 физически жив, но почему-то недоступен. Проверяю VPN, и вот оно — диапазон 10.8.0.x не найден. OpenVPN отключился. Просто тихо, без уведомления, выполнив свою работу и уйдя в отставку.
Оказывается, весь этот вечер я сидел за стеной недоступности. Компания добавила слой безопасности, завернув внутреннюю инфраструктуру в защищённый туннель, а я, горя желанием запушить релиз, забыл про это самое VPN. Типичная история: инфраструктура дышит тебе в спину, а ты смотришь на экран и недоумеваешь, почему ничего не работает.
Интересный факт: Gitaly создан именно для того, чтобы отделить операции с файловой системой от основного приложения GitLab. Это позволило компании масштабировать сервис горизонтально, но цена — жёсткая зависимость. Если Gitaly недоступен, GitLab попросту не может выполнять операции с гитом. Это как попытаться ходить с отключенными ногами.
Решение было простым, но требовало действия. Нужно было переподключить OpenVPN, дождаться, пока туннель встанет на место, и выполнить git push origin master. После этого запустить скрипт релиза на Python, который собирает EXE из исходного кода, упаковывает в ZIP и загружает артефакт в Package Registry.
Когда VPN восстановился, все лампочки загорелись в правильном порядке. Gitaly ожил, сервер откликнулся, и коммит с облегчением пошёл в master. Релиз уложился в срок.
Урок: прежде чем копать проблему на сервере, убедитесь, что вы вообще до него дотягиваетесь. VPN, firewall, маршруты — всё это может спокойно жить в фоне, пока вы ловите ошибки в коде. Инфраструктура любит скрываться за слоями безопасности, и иногда самая сложная проблема решается одной переподключением.
😄 OpenVPN — как невидимая рука, которая отключается именно тогда, когда ты забываешь, что её держишь.
Метаданные
- Session ID:
- grouped_C--projects-bot-social-publisher_20260208_1535
- Branch:
- main
- Dev Joke
- Scala — как первая любовь: никогда не забудешь, но возвращаться не стоит.
Часть потока:
Разработка: bot-social-publisher