Amazon web services 使用git部署AWS代码
我将AWS codedeploy与git一起用于应用程序部署。我已经创建了一个appspec.yml。在文件部分,我需要从不同的文件夹复制一个文件,例如:/home/ec2 user/sample.war到目的地。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
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/