在aws弹性beanstalk中创建.ebextensions文件夹

时间:2014-11-07 09:06:44

标签: shell amazon-web-services elastic-beanstalk

我正在尝试部署一个shellcript脚本,以便在aws弹性beanstalk上自动调度触发器时安装程序。

我在google上搜索过,这一切都指向.ebextensions的创建,以便在启动时使用配置文件来安装程序 我可以知道如何创建这个吗?

非常感谢您提前提供的帮助

2 个答案:

答案 0 :(得分:14)

您需要执行以下操作(显然符合您的要求):

在打包软件的根目录中创建一个名为 .ebextensions

的文件夹
drwxr-xr-x 4 root root     4096 Sep 30 13:39 .
dr-xr-x--- 7 root root     4096 Nov  4 15:22 ..
drwxr-xr-x 2 root root     4096 Nov  4 15:22 .ebextensions

在.ebextensions文件夹中,创建两个名为 02_files.config 03_container_commands.config

的文件
-rw-r--r-- 1 root root 11334 Jul 25 12:26 02_files.config
-rw-r--r-- 1 root root   960 Nov  4 11:22 03_container_commands.config

02_files.config 的内容应包含shell脚本的内容:

files:

  "/path/to/your/shellscript/myscript.sh" :
    mode: "000755"
    owner: root
    group: root
    content: |
      #!/bin/sh
      echo "Hello World!" >> /var/log/myscript.out

03_container_commands.config 的内容应包含运行shell脚本的命令:

container_commands:

  01_runmyshellscript:
    command: "/path/to/your/shellscript/myscript.sh"

现在,当您上传代码时,它将在 /path/to/your/shellscript/myscript.sh 中创建您的shell脚本,然后执行它发送 Hello World! /var/log/myscript.out

答案 1 :(得分:6)

你需要明白Elastic Beanstalk并不神奇。它只是启动EC2服务器并按特定顺序在它们上运行一堆shell脚本。一旦你意识到这一点,你可以要求Elastic Beanstalk在启动服务器时执行你的脚本。有关如何让EB执行您的资料的完整文档是here 在您的情况下,您需要让EB执行container_commands,这基本上是在您的应用程序设置之后运行的脚本。
首先,将趋势微脚本添加到应用程序源中,以便在运行时找到它。我们假设它在scripts/trendmicro.sh 然后,要求EB执行脚本就像向应用程序源添加文件一样简单。

您可以使用以下内容添加名为/.ebextensions/container_commands.config的文件:

container_commands:

  trent_micro_startup:
    command: "scripts/trendmicro.sh"