Задать вопрос
balvardo
@balvardo

Как организовать автодеплой на сервер в закрытом контуре?

Два сайта, один ВП, другой Битрикс. (не суть, но мало ли).
Их нужно разместить на сервере в закрытом контуре. Закрытый контур — к серваку не будет доступа по ssh в рабочем режиме. Доступ по ssh дадут на момент настройки, настолько, насколько надо.
Ставить можно все, что угодно, кроме руткитов, веб-файломенеджеров и т.д.
Нужно организовать возможность выкатывания релизов сайтов без подключения людей имеющих доступ к закрытому контуру.
  • Вопрос задан
  • 84 просмотра
Подписаться 1 Средний 2 комментария
Пригласить эксперта
Ответы на вопрос 3
VoidVolker
@VoidVolker
Dark side eye. А у нас печеньки! А у вас?
Ставите на целевой сервер gitlab-runner и далее настраиваете деплой стандартным способом через gitlab ci/cd. Триггеры деплоя - стандартные PR в master ветку только мэйнтэйнером или администратором проекта/группы. Все остальные разработчики работают по стандартному github-flow режиму ну или какой у вас там рабочий процесс принят. В идеале, конечно, следует делать деплой через SSH, как вариант - прокинуть сервер гитлаба в закрытый контур через любой шифрованный тунель, а внутри контура настроить прямой доступ к нему по DNS.
Раз стоит цель настроить деплой без SSH в закрытый контур, то значит разрешение на такой деплой уже есть. А если нет - ну, что ж, это уже ответственность ТС и что делать в этом случае это уже совсем другой вопрос.
Ответ написан
Комментировать
@yellowmew
Cloud infrastructure, monitoring engineer. SRE
к серваку не будет доступа по ssh в рабочем режиме

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

Опять же вызывает вопросы "закрытость" контура: закрыт он от доступа извне или доступ наружу изнутри контура тоже отсутствует? Как тогда предполагается доставлять изменения?
Ответ написан
xez
@xez
TL Junior Roo
Можно попробовать делать git pull в релизной ветке по крону и, если есть новый код, пересобирать/перезапускать приложение.
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы