我通过CodeDeploy
部署在/etc/logstash/
目标实例logstash配置。
这是在3上演CodePipeline
的最后一步。
但是它失败消息
部署失败,因为指定的文件已经在该位置存在:/etc/logstash/pipelines.yml
我怎么能指示CodeDeploy
覆盖文件?
添加一个覆盖选项的一个问题是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
当您使用CodeDeploy部署代码将查找先前部署的文件与信息的服务器的应用程序/部署组上的一个文件,如果发现这些现有的文件时,它会用新版本的文件覆盖。如果前面的代码中手动配置或通过任何其他方式代码部署代理无法覆盖。您需要删除在安装之前的代码。
否则,你可以尝试在APPSEC文件中使用复写标志。
files:
- source: code
destination: /var/www/
overwrite: true