0

Я использую CodeShip для развертывания моего приложения в экземплярах AWS EC2, когда новая версия приложения отсутствует. CodeShip сначала упаковывает мое приложение в .zip и помещает его в S3. Каждый пакет развертывания создается с другим именем файла. Когда я развертываю с помощью CodeShip, они создают новую редакцию в CodeDeploy и разворачивают ее ко всем текущим экземплярам.Как развернуть существующее приложение с помощью CodeDeploy на новом экземпляре EC2

В одном направлении, каждый раз, когда я развертываю новую версию, он развертывается во всех моих уже существующих экземплярах, но как я могу развернуть последнюю версию моего приложения из CodeDeploy в новый экземпляр? Есть ли способ использовать aws-sdk (Ruby или cli) для достижения этого?

Я использую OpsWorks для поддержки своих экземпляров, и я использую специальную поваренную книгу повара для создания среды.

Благодаря

+0

Создайте другое имя тега для каждой функции/слоя, поэтому при применении изменения применитесь ко всем экземплярам с этим тегом, что когда-либо оно создано новым или нет. – BMW

ответ

0

От CodeDeploy http://aws.amazon.com/codedeploy/faqs/, если вы идете в раздел концепции и посмотреть на вопрос «Что такое группа развертывания», в ответ вы получите больше представления о том, как развертывание работ группы.

CodeDeploy использует теги в группе развертывания для поиска экземпляров EC2 при создании нового развертывания. Поэтому для новорожденных экземпляров вам просто нужно пометить те же теги (те) в этой группе развертывания, а затем запустить новое развертывание с нужной ревизией. CodeDeploy найдет все экземпляры EC2, отмеченные тегами в группе развертывания.

Но вы должны заметить это, если вы хотите вручную запустить новый экземпляр EC2, вам нужно сделать несколько действий. Вы можете выполнить следующие шаги: http://docs.aws.amazon.com/codedeploy/latest/userguide/how-to-prepare-instances.html, чтобы запустить экземпляр, который работает с CodeDeploy.

После того, как экземпляр был помечен и настроен правильно, вы можете просто запустить новое развертывание с последней версией, как и текущий способ его выполнения. Редакция должна автоматически развертываться в новом экземпляре с помощью CodeDeploy.

+1

Спасибо. Развертывание ревизии при каждом рождении нового экземпляра - это большие накладные расходы, так как он будет внедрять код в * all * теги. – user3153310

1

Поскольку у вас есть группа экземпляров EC2, в которой вы хотите работать с одним и тем же приложением, подумайте о том, чтобы использовать группу AutoScaling (ASG). Затем создайте группу развертывания на основе ASG (не тегов экземпляров EC2). В следующий раз, когда в этой ASG будет запущен любой новый компьютер, Code Deploy будет автоматически запускать и развертывать последний успешный пакет развертывания. Я использую этот метод уже много месяцев, и он работает отлично.