我正在尝试部署一个shellcript脚本,以便在aws弹性beanstalk上自动调度触发器时安装程序。
我在google上搜索过,这一切都指向.ebextensions的创建,以便在启动时使用配置文件来安装程序 我可以知道如何创建这个吗?
非常感谢您提前提供的帮助
答案 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"