Ближайший вы получите к нему с АМС управляемых услуг является CodeDeploy. С его помощью вы можете организовать развертывание в экземплярах EC2 через командную строку или веб-консоль. Но CodeDeploy просто тянет артефакты от S3 или GitHub, до сих пор. К настоящему времени, CodeCommit, кажется, полностью изолированы от других сопутствующих услуг Amazon, как CodePipeline и CodeDeploy, так что это, кажется, не будет хорошим выбором. Но, конечно же, дорожная карта Amazon должна объединить все их (не делать этого было бы бессмысленно). Итак, теперь вы бы лучше использовали GitHub чем CodeCommit.
Но, учитывая, что вы не использует GitHub, то вам необходим раствор CI (непрерывная интеграция) между вами хранилищем и CodeDeploy, потянув код из источника, возможно, построение или выполнение тестов, толкая его S3 и сообщение CodeDeploy об этом. Например, есть CodeShip, который может это сделать и интегрируется с большим количеством внешних сервисов. Или у вас может быть свой собственный сервер CI, например Jenkins, выполняя роль «клей» для вас. (Дженкинс, вероятно, будет самым гибким, потому что он с открытым исходным кодом и может иметь плагины для всего.)
Так, разбивая вниз немного, вы рабочий будешь что-то вроде этого:
- толчка код в репозиторий;
- всякий раз, когда есть событие (фиксация на какой-либо ветке или новый тег, он должен быть настраиваемым), ваш CI вытаскивает его, запускает все, что вам нужно или требуется (строит, тестирует, упаковывает его) и толкает его до S3 (в качестве файла архива, обычно);
- в зависимости от того, как вы установили вещи, ваш CI говорит код Deploy развернуть его на EC2 экземпляры сразу, или он просто говорит, что есть новая версия, и позволяет вам запускать развернуть , вручную, через CLI на веб-консоли, когда захотите.
(На самом деле, CodeDeploy не нажмет код EC2 экземпляров. Вместо этого, каждый экземпляр EC2 должен запустить агент, бассейны регулярно сервер CodeDeploy для того, чтобы знать, если есть что-то новое быть применена на местном уровне. Во всяком случае, CodeDeploy координаты и получить обратную связь от агентов, поэтому он просто работает, как если бы это было 100% активным вещество на CodeDeploy стороны и 100% пассивными на стороне экземпляров.)
Наиболее "чистое" решение AWS будет CodeCommit ->CodePipeline ->CodeDeploy, или просто CodeCommit ->CodeDeploy, но эти услуги не являются полностью интегрированными к настоящему времени.
В вашем случае, самое простое и эффективное решение прямо сейчас бы Github ->CodeDeploy. Все, что отличается от этого, потребует некоторых промежуточных шагов на пути, как в примерах, которые я предоставил (CodeShip, Jenkins и т. Д.).
Мне жаль, что я не ответил на этот вопрос, когда задал вопрос. В итоге я использовал Fabric для запуска команд git clone в моем парке EC2. –
Если кто-то пытается это и имеет проблемы с «default default not found», попробуйте '' ''указать пустой профиль. Ваш профиль может/должен храниться в переменной среды '$ AWS_DEFAULT_PROFILE' на экземпляре EC2. –
@RobbieAverill Вы можете просто полностью исключить бит '-profile default' (и, как вы говорите, установка его по умолчанию не работает, если у вас нет профиля по умолчанию) –