我有安装travis来为节点应用程序aws codeDeploy。现在可以将最新代码正确部署到EC2,但是我需要再次手动重新启动节点应用程序才能使更改生效。
如何在codeDeploy之后自动重启节点应用程序?我想我可以通过在appspec.yml中设置afterInstall来做到这一点,但是我发现许多教程/演练都没有提到这一点,所以我想知道这是重启节点应用程序的唯一/最佳方法。
答案 0 :(得分:0)
您应该使用appspec.yml中的ApplicationStart挂钩。从AWS文档:
安装后–您可以将此部署生命周期事件用于配置应用程序或更改文件权限之类的任务。
ApplicationStart –您通常使用此部署生命周期事件来重新启动在ApplicationStop期间停止的服务。
答案 1 :(得分:0)
您可以使用pm2或永久使用它,并且可以在代码部署后重新启动节点。您的appspec.yml应该如下所示
version: 0.0
os: linux
files:
- source: /deployment.zip
destination: /home/ubuntu/PorjDir/
hooks:
BeforeInstall:
- location: stop_server.sh
timeout: 300
runas: ubuntu
AfterInstall:
- location: start_server.sh
timeout: 300
runas: ubuntu
注意:您需要在项目中创建stop_server.sh和start_server.sh,并且需要将其导出为工件,以便代码部署代理可以使用它。
start_server.sh应该包含以下内容:
sudo /usr/bin/pm2 restart appname
希望这对您有帮助!