SSH*_*his 25 linux bash boot amazon-ec2
我在 EC2 实例上有一个脚本可以远程启动另一个实例。
一旦此实例完全加载(完成启动),我希望它自动运行 bash 脚本,执行此操作的最佳方法是什么?
我需要一切都完全启动,基本上 bash 脚本运行图像转换脚本(使用 ImageMagick 并执行几次“wget”命令)
目前,该脚本位于此处:
/home/root/beginProcess.sh
我可以通过执行手动启动它
bash beginProcess.sh
RHEL-6.2-Starter-EBS-i386
还有一个 EBS 卷附加于此,如果有帮助,谢谢!
EEA*_*EAA 34
我建议只使用user-data选项来ec2-run-instances. 它允许您向 VM 提供某种脚本,该脚本将在首次启动时运行。如果您使用的是 ubuntu 或 debian,则可以使用cloud-init,它可以对流程进行一些很好的润色。如果使用 cloud-init,您可以使用[runcmd]配置文件的部分来指定启动后要运行的任意命令。
感谢 SF 用户Eric Hammond提供用户数据页面。查看他的网站- 它有大量关于 AWS 的信息。
编辑:重新阅读后,不清楚您是要在初始启动时还是在每次启动时运行命令。以上说明仅适用于初始启动。如果你想在每次启动时运行一个命令,你有几个选项——你可以通过@rebootcron 指令运行一个命令,或者你可以将脚本添加到/etc/rc.local,它会在每次系统启动时运行。
如果您使用的是cloud-init安装了该软件包的 AMI (例如 Amazon Linux 或 Ubuntu),那么您可以简单地将 bash 脚本(以 #! 开头)作为用户数据文件传递,它会在结束时自动运行启动过程。
例如,它可以很简单:
ec2-run-instances \
--user-data-file /home/root/beginProcess.sh \
--key $USER \
ami-XXXXXXXX
Run Code Online (Sandbox Code Playgroud)
这是我介绍用户数据脚本概念的文章,现在在 Amazon Linux 和 Ubuntu 等主要 EC2 AMI 中可用:http : //alestic.com/2009/06/ec2-user-data-scripts
不幸的是,您似乎想要使用 RHEL AMI。我运行了一个副本,但在第一次启动时找不到任何对 cloud-init 或运行用户数据脚本的引用,也没有对相同的工作进行测试。
我并不是说您应该为此切换 Linux 发行版,但 Amazon Linux 基于 RHEL,因此这可能对您有用。
这是我写的一篇文章,如果它第一次不起作用,它可能会帮助您调试用户数据脚本:http : //alestic.com/2010/12/ec2-user-data-output
| 归档时间: |
|
| 查看次数: |
66278 次 |
| 最近记录: |