为什么我的 AWS CodeDeploy 在部署后无法运行我的脚本?



我正在使用codedeploy将我的应用程序部署到由自动缩放组创建的EC2实例。

应用程序部署罚款并移至其正确的文件映射位置,但是我的AfterInstallation脚本从未执行。我可以在日志中看到它试图使脚本可执行并通过该阶段,但永远不会被执行。

这是我的appspec.yml

version: 0.0
os: linux
files:
  - source: /
    destination: /opt/lobby
hooks:
  AfterInstall:
    - location: bootstrap.sh
      timeout: 30
      runas: root

这是脚本

#!/bin/bash
nohup nodejs lobby.js &
echo "finished"

我看不到打印的回声,也没有看到与lobby.js相关的任何过程。我可以通过在部署后键入./bootstrap.sh来验证该脚本是否有效,这可以正常工作。这个钩子应该为我做这个。

这需要是背景任务,因为我将在此脚本中运行多个应用程序,但是现在只显示一个应用程序才能使其正常工作。


编辑:

我已转介http://docs.aws.amazon.com/codedeploy/latest/userguide/reference-pappspec-file-structure-structure-hooks.html#appspecepspec-hooks-hooks-server,并尝试通过验证和验证后的后安装和验证后的后置和afterallyallafficate和afterallyAllyAllowTrafficeTICe和afterallowtraffice。(但我不使用LoadBalancer)

问题

为什么我的安装脚本未被调用,或者是这样?

afterinstall:安装后脚本包含在安装应用程序后需要执行任务。

插入脚本的示例:

#!/bin/bash
cd /home/ubuntu/production/weone-backend
sudo chown -R ubuntu:ubuntu /home/ubuntu/production
sudo NODE_ENV=production nohup nodejs app.js > /dev/null 2> /dev/null < /dev/null &

在上面的脚本中,我们正在更改应用程序文件夹的所有权&amp;启动申请过程。

注意:使用" /dev/null 2> /dev/null < /dev/null &"自动从Nohup Shell中脱颖而出,否则您的codedeploy会陷入afterinstall事件。

https://www.oodlestechnologies.com/blogs/aws-codedeploy

相关内容

  • 没有找到相关文章

最新更新