Конфигурация CodeDeploy для перезаписи файлов - PullRequest
0 голосов
/ 08 февраля 2019

Я развертываю через CodeDeploy конфигурацию logstash в целевом экземпляре в /etc/logstash/.

Это последний шаг в 3-х этапном CodePipeline.

Однако происходит сбой с сообщением

Развертывание не выполнено, поскольку указанный файл уже существует вэто местоположение: /etc/logstash/pipelines.yml

Как я могу указать CodeDeploy перезаписать файлы?

Ответы [ 2 ]

0 голосов
/ 19 августа 2019

При развертывании кода с использованием CodeDeploy он будет искать файл на сервере с информацией о ранее развернутых файлах для группы приложений / развертывания, если он найдет существующий файл, он будет перезаписан новыми файлами ревизий.Если предыдущий код развернут вручную или любым другим способом, агент развертывания кода не сможет перезаписать.Вам необходимо удалить код перед установкой.

Иначе вы можете попробовать использовать флаг перезаписи в файле appsec.

files:
- source: code
destination: /var/www/
overwrite: true
0 голосов
/ 11 февраля 2019

Проблема добавления опции перезаписи открыта на GitHub , и она существует уже довольно давно.Я решил эту проблему, добавив собственный скрипт в хук BeforeInstallation, который удалит все существующие файлы перед копированием по моему новому развертыванию.

Вот так выглядит мой файл appspec.yml

version: 0.0
os: linux
files:
  - source: /
    destination: /path/to/destination
hooks:
  BeforeInstall:
    - location: DeploymentScripts/CleanupScript.sh
  AfterInstall:
    - location: DeploymentScripts/InstallScript.sh
      timeout: 600
  ApplicationStart:
    - location: DeploymentScripts/RestartScript.sh
      timeout: 3600
...