2015-11-27 4 views
2

Я создал два экземпляра EC2 в частной подсети за NAT. Экземпляры находятся в группе AutoScalling. Я хочу интегрировать CodeDeploy с моим репозиторием из GitLab.Интеграция AWS CodeDeploy с GitLab

Все, о чем я могу думать, теперь запускает скрипт на крючке BeforeInstall файла appspec.yml.

Есть ли другой способ сделать это?

ответ

3

GitLab не реализует прямую интеграцию с сервисами AWS, но вы можете обойти это. Вы можете сделать что-то похожее на то, что вы описали, и реализовать всю логику установки/распространения/авторизации, но тогда вы действительно не получаете многого от CodeDeploy. То, что вы должны делать, зависит от того, чего вы пытаетесь достичь.

Автоматическое развертывание на толчке: Вы можете получить автоматическое развертывание на себя обязательство GitLab, если соединить их WebHooks с чем-то, что может аутентифицировать в AWS. Это может выглядеть так:

  1. Веб-крюк в GitLab, который отправляет запрос push на сервер Jenkins, которым вы управляете.
  2. Сервер Jenkins использует плагин Git для вытягивания источника.
  3. Сервер Jenkins запускает шаги сборки и тестирования.
  4. Сервер Jenkins использует плагин CodeDeploy для загрузки артефактов сборки на S3 и создания развертывания.

Если вы хотите иметь ручное развертывание, вы можете сделать то же самое, что и выше, но вручную запустить конструкцию Jenkins.

Deploy только вручную: Выполните следующие действия, если вы хотите, чтобы развернуть:

  1. Используйте мерзавца к оформлению заказа фиксации вы хотите развернуть.
  2. Запустите свою сборку и протестируйте локально.
  3. Выполнение команды развертывания AWS CLI для загрузки артефактов сборки на S3.
  4. Создайте развертывание в CodeDeploy, используя загруженный пакет.
Смежные вопросы