AWS CodeDeploy с помощью git

Я использую AWS codedeploy для развертывания приложений вместе с git. Я создал appspec.yml. В разделе файлов мне нужно скопировать файл из другой папки (например, /home/ec2-user/sample.war) в место назначения.


version: 0.0
os: linux
files:
   - source: /home/ec2-user/deploy/sample.war
     destination: /usr/share/tomcat6/webapps/

Свойство source в разделе файлов ищет файлы только внутри каталога агента codedeploy (например: / opt / codedeploy-agent / deployment-root / 1d4de60d-99c1-4e40-bd14-335b6f8b5633 / d-sfjksdjfkl / home / ec-user / sample. война). Согласно документации AWS, это правильно. Доступен ли какой-либо другой вариант для копирования файла из другого местоположения экземпляра ec2? или любая переменная, доступная для поиска папки агента aws codedeploy во время выполнения?


person kavin    schedule 07.04.2015    source источник


Ответы (2)


Думаю, для этого можно использовать скрипт-перехватчик. Кажется, что файл не включен в комплект, у вас может быть простой скрипт, который сделает за вас cp. Я думаю, что лучше всего вы можете запустить сценарий во время события «BeforeInstall», чтобы скопировать сценарий.

Вы можете проверить здесь, чтобы узнать, как настроить ловушку в файле appsec.

Bangxi

person Bangxi Yu    schedule 17.04.2015

Вы можете полностью настроить то, что CodeDeploy делает раньше. , после и во время установки приложения. Вам просто нужно указать файл, который вы хотите скопировать, в разделе хуков, например:

appspec.yml

version: 0.0
os: linux
files:
  - source: /
    destination: /var/www/html/dbex.ml
hooks:
  BeforeInstall:
    - location: scripts/install_dependencies.sh
      timeout: 300
      runas: root
  AfterInstall:
    - location: scripts/after_install.sh
      timeout: 300
      runas: root
  ApplicationStart:
    - location: scripts/start_server.sh
      timeout: 300
      runas: root
  ApplicationStop:
    - location: scripts/stop_server.sh
      timeout: 300
      runas: root

Вам нужно отредактировать файл after_install.sh в ловушке AfterInstall, например:

after_install.sh

#!/bin/sh
sudo cp /path/to/file /your/app/folder/
person captainblack    schedule 09.04.2017