AWS Elastic Beanstalk Post Deploy脚本

时间:2015-05-16 02:56:18

标签: ruby-on-rails amazon-web-services amazon-ec2 elastic-beanstalk

我试图将部署后的脚本添加到我的Elastic Beanstalk中。我已经阅读了一些博客文章(阅读参考资料),其中提到将配置文件添加到.elasticbeanstalk目录。配置文件应该创建一个shell脚本并将其复制到目录:

/opt/elasticbeanstalk/hooks/appdeploy/post

在我的.elasticbeanstalk文件夹中,我有以下文件:

config.yml

    branch-defaults:
      staging:
        environment: env-name
    global:
      application_name: app-name
      default_ec2_keyname: aws-eb
      default_platform: 64bit Amazon Linux 2015.03 v1.3.1 running Ruby 2.2 (Passenger Standalone)
      default_region: us-west-2
      profile: eb-cli
      sc: git

test.config(我添加的配置,用于测试部署后脚本的工作原理):

files:
  "/opt/elasticbeanstalk/hooks/appdeploy/post/01_test.sh":
    mode: "000755"
    owner: root
    group: root
    content: |
      #!/usr/bin/env bash
      # This is my test shell script

我运行eb deploy之后,shell脚本不会被复制到上面的目录中。我的/opt/elasticbeanstalk/appdeploy/post目录为空。 .elasticbeanstalk目录中的/var/app/current/文件夹正确无误。我也无法在引用新脚本或错误的日志文件中看到任何内容。我已经检查了eb-tools.logeb-activity.logcron,并为这些文件周围的关键字搜索了所有日志。但是,没有运气。

提前感谢您的任何帮助/建议!

参考文献:

1 个答案:

答案 0 :(得分:4)

删除配置文件的正确位置是应用中的.ebextensions目录,而不是. elasticbeanstalk。然后,您应该在/ opt / elasticbeanstalk / hooks / appdeploy / post目录中看到您的shell脚本。

正如论坛帖子所述 “直接将文件放入钩子目录是有风险的,因为这不是文档化的方法,在某些容器中有所不同,并且可能在将来发生变化”