Рейтинг:0

Развертывание монорепозитория без SSH

флаг cn

Полное раскрытие: я нуб DevOps.

Я запускаю монорепозиторий MERN на экземпляре EC2. Изначально я всегда подключался к своей машине по SSH, извлекал из репозитория и собирал снова. Но с этим есть проблемы. Процесс сборки занимает больше времени, поэтому, когда соединение SSH время от времени прерывается, процесс сборки прерывается. Это происходит часто, что затрудняет развертывание.

Я думал об этом, и я уверен, что есть служба, которая может это сделать: я могу использовать конвейер CI/CD в своем репозитории (BitBucket), поэтому, когда в основной ветке есть коммит, он может пинговать мой экземпляр, а затем на моем экземпляре работает приложение, которое, когда оно получает этот пинг, тянет, перестраивает и перезапускает репо. Следовательно, поскольку это будет приложение внутри EC2, а.) не будет необходимости в SSH и б.) будет надежное решение для развертывания. Было бы неплохо, если бы в любом случае можно было отслеживать процесс сборки, когда он запускается.

Я не могу выразить свое требование, поэтому я не могу посмотреть доступные решения, пожалуйста, предложите то же самое.

anx avatar
флаг fr
anx
Если у вас есть функции конвейера BitBucket и они вас устраивают, в чем тогда вопрос? Просто.. использовать их? Если вы готовы передать им подходящие ssh-ключи, их соединение не будет зависеть от ваших локальных проблем с подключением.
флаг cn
Мой вопрос заключается в следующем: есть ли такое доступное приложение, которое может быть просто пропинговано BitBucket (через Elastic IP и работает внутри машины EC2), и при пропинговании оно будет тянуть и строить на EC2 (это легкая часть)
флаг cn
(Опять же, нуб, я уверен, что есть такая вещь, но я просто не знал, как это описать, поэтому я пришел сюда)
флаг cn
дальнейшее упрощение: моя текущая настройка развертывания включает туннелирование SSH, и, как мы знаем, они могут быть нестабильными, что прерывает процесс сборки и приводит к отключению сайта. Поэтому я хочу начать избегать этого в пользу решения, которое просто запускает локальную сборку (скрипт) самостоятельно при каком-то вызове (например, вызове REST)
флаг cn
Вы можете просто [фоновый/отсоединить процесс](https://askubuntu.com/q/8653/4827), чтобы он не был убит, когда умирает родительский процесс (оболочка), или использовать `screen`/`tmux` .
флаг cn
@AaronCopley спасибо, это хорошая идея для ручного развертывания, но в то же время было бы неплохо избавить меня даже от этой необходимости :)
Рейтинг:1
флаг dj

Я бы рекомендовал узнать больше о том, как работает CI/CD. Конвейеров Bitbucket достаточно для того, чтобы делать то, что вы хотите. То, что вы хотите, существует в рамках многих инструментов. Нет инструментов, которые делают все точно, кто-то использует Kubernetes, кто-то использует docker-compose. Для проверки работоспособности это обычно обрабатывается балансировщиком нагрузки или чем-то подобным. Некоторые создают собственные сценарии для управления всем. Судя по тому, что вы описали, кажется, что наиболее подходящим было бы ручное написание сценариев.

флаг cn
да, я знаю, что битбакет подходит, но поскольку я считаю, что могут потребоваться некоторые локальные конфигурации, которые следует оставить только на моих машинах EC2, я хотел бы, чтобы сборка работала там сама.... так что весь этот битбакет нужно сделать, это пропинговать мою машину - (ПРОВЕРИТЬ, используя веб-перехватчики), и единственная оставшаяся часть головоломки - это приложение для получения этого вызова веб-перехватчика на этой машине и запуска там процесса сборки (запустите там скрипт)

Ответить или комментировать

Большинство людей не понимают, что склонность к познанию нового открывает путь к обучению и улучшает межличностные связи. В исследованиях Элисон, например, хотя люди могли точно вспомнить, сколько вопросов было задано в их разговорах, они не чувствовали интуитивно связи между вопросами и симпатиями. В четырех исследованиях, в которых участники сами участвовали в разговорах или читали стенограммы чужих разговоров, люди, как правило, не осознавали, что задаваемый вопрос повлияет — или повлиял — на уровень дружбы между собеседниками.