Amazon web services 使用git部署AWS代码

Amazon web services 使用git部署AWS代码,amazon-web-services,aws-code-deploy,Amazon Web Services,Aws Code Deploy,我将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属性仅查找c

我将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.war。根据AWS文档,它是正确的。是否有其他选项可用于从ec2实例的不同位置复制文件?或者任何可用于在运行时定位aws codedeploy agent文件夹的变量?

我认为您可以使用钩子脚本来完成此操作。该文件似乎未包含在包中,您可以使用一个简单的脚本来为您执行cp。我认为最好在BeforeInstall事件期间运行脚本,以便将脚本复制到上

您可以检查以查看如何在appsec文件中设置钩子

Bangxi

您完全可以了解CodeDeploy在安装应用程序之前、之后和期间所做的工作。您只需在hooks部分声明要复制的文件,如下所示:

appspec.yml

您需要做的是在AfterInstall钩子中编辑after_install.sh文件,如下所示:

在安装之后

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
#!/bin/sh
sudo cp /path/to/file /your/app/folder/