Отправка из локального репозитория git в два разных aws codecommit

#git #amazon-web-services #amazon-iam #aws-codecommit

#git #amazon-веб-сервисы #amazon-iam #aws-codecommit

Вопрос:

у меня есть один локальный репозиторий git, и я создал одно задание cron для отправки из локального репозитория git в Codecommit каждые 10 минут, все разработчики отправляют туда код в локальный репозиторий git. но у меня есть две учетные записи aws, я хочу, чтобы одно и то же задание cron также отправляло код во вторую учетную запись aws codecommit.

один конфигурационный файл, который нам нужно создать в каталоге .ssh, который мы можем создать с помощью aws-iam, но могу ли я добавить в iam-access ключ для codecommit в одном конфигурационном файле? если у вас есть какое-либо решение для теста, пожалуйста, предложите мне.

Комментарии:

1. Почему вы хотите, чтобы ваш исходный код находился в двух таких местах, как это? Энди, почему ты используешь cron? Обычно вы отправляете код на мастер-сервер origin, когда у вас есть действительные изменения для отправки.

2. на самом деле в одной учетной записи мы запускаем производство, но для обеспечения безопасности мы переносим промежуточную обработку на другую учетную запись. в промежуточной учетной записи мы используем codedeploy с Дженкинсом.. с какой-то другой веткой .. и в локальном git изменения от разработчиков поступают каждые 4-5 минут, поэтому я использую задание cron для отправки в codecommit @GeorgeMWhitaker

3. Хорошо, это имеет смысл. Я думаю, я бы все равно сделал одно репо (codecommit). Я предполагаю, что вы используете codecommit для запуска сборок / развертываний. При этом вы можете затем создавать триггеры на основе ветви. Таким образом, ваша производственная ветвь запускает развертывание / сборку для производственных систем. Если, если они находятся в другой учетной записи. На мой взгляд, если разработчик настроит свою машину так, чтобы обеспечить работоспособность вашего процесса, это приведет к неприятностям. Настройка разработчика должна быть очень простой, а ваши централизованные инструменты должны быть настроены для выполнения всего остального.

Ответ №1:

В последних версиях git можно одновременно передавать данные на несколько удаленных устройств.

Для этого я бы рекомендовал добавить новый вызываемый удаленный all сервер, который при его использовании дает понять, что вы отправляете на несколько удаленных компьютеров.

 git remote add all git://HostA/repo1.git
 

Теперь добавьте отдельные pushurls для любого количества удаленных устройств, сколько пожелаете, вот так:

 git remote set-url --add --push all git://HostA/repo1.git
git remote set-url --add --push all git://HostB/repo2.git
git remote set-url --add --push all git://HostC/repo3.git
 

Наконец, чтобы выполнить отправку ко всем из них, используйте:

 git push all master
 

(где master находится локальная ветка, из которой вы хотите выполнить отправку)

Комментарии:

1. спасибо за ваш ответ @ashutosh, я согласен с вашим ответом, но в codecommit нам нужно добавить один конфигурационный файл в ссылку каталога ~.ssh, но если я добавлю два узла Codecommit в конфигурационный файл, работает только один узел.. для каждого подключения codecommit нам необходимо добавить ключ хоста aws iam в конфигурационный файл