Как развернуть код с помощью codedeploy на нескольких экземплярах EC2, имеющих разные пути развертывания - PullRequest
0 голосов
/ 24 сентября 2019

Как развернуть код в нескольких экземплярах EC2, имеющих разные пути развертывания.Например: у меня есть 2 экземпляра EC2 (WEB, APP) в среде DEV и средах SIT.

В веб-сервере у меня есть путь развертывания, такой как D:/deployments/latest, а на сервере приложений у меня есть путь развертывания, такой как * 1004.*.Как я могу развернуть код по этим путям с помощью файла appspec.yml. Любые идеи будут очень полезны.

Я скопировал код с помощью файла appspec.yml в c:/codedeploydeployments путь на всех серверах. Следующий шагЯ использовал afterinstall.bat для копирования файлов из c:/codedeploydeployments в D:/deployments/latest (веб-сервер) и C:/inetpub/wwwroot(in appserver), но развертывание не удалось.

if [ "$DEPLOYMENT_GROUP_NAME" == "webserver" ]; then
  xcopy "c:/codedeploydeployments" "D:/deployments/latest" 
else
  # Fail the deployment
fi

Сначала я хотел протестировать только для веб-сервера.Я создал приложение с двумя группами развертывания: веб-сервером и сервером приложений, и пометил веб-экземпляры для группы развертывания веб-сервера.

Пожалуйста, дайте мне знать, если есть какие-либо ошибки в вышеупомянутом afterinstall.bat

1 Ответ

0 голосов
/ 24 сентября 2019

У вас правильная идея.Пожалуйста, смотрите следующий пример, который является небольшой модификацией и не должен привести к неудачному развертыванию.Хотя этот пример для Linux, но может использоваться в случае Windows с небольшими изменениями:

Appspec: -

version: 0.0
os: linux

files:
  - source: files/html.txt
    destination: /tmp/files

  AfterInstall:
    - location: Scripts/RunDev.sh
    - location: Scripts/RunStage.sh

RunDev.sh: -

if [ "$DEPLOYMENT_GROUP_NAME" == "Dev" ]
then
     mv /tmp/files/* /home/Dev
fi

RunStage.sh: -

if [ "$DEPLOYMENT_GROUP_NAME" == "Stage" ]
then
     mv /tmp/files/* /home/Stage
fi
...