Answers:
我建议只使用user-data选项ec2-run-instances
。它使您可以给虚拟机提供某种脚本,该脚本将在首次启动时运行。如果您使用的是ubuntu或debian,则可以使用cloud-init,这会给处理过程带来一些好处。如果使用cloud-init,则可以使用[runcmd]
配置文件的部分来指定引导后运行的任意命令。
感谢SF用户Eric Hammond提供的用户数据页面。查看他的网站 -它拥有有关AWS的大量信息。
编辑:重新读取后,不清楚是要在初始引导还是在每次引导中运行命令。以上说明仅适用于初始引导。如果要在每次引导时运行命令,则有两种选择-您可以通过@reboot
cron指令运行命令,或者可以将脚本添加到中/etc/rc.local
,该脚本将在每次系统引导时运行。
如果您使用的是已cloud-init
安装软件包的AMI (例如Amazon Linux或Ubuntu),则可以简单地将bash脚本(以#!开头)作为用户数据文件传递,并且它将在运行末尾自动运行。引导过程。
例如,它可能很简单:
ec2-run-instances \
--user-data-file /home/root/beginProcess.sh \
--key $USER \
ami-XXXXXXXX
这是我介绍用户数据脚本概念的文章,该概念现在可在主要的EC2 AMI(如Amazon Linux和Ubuntu)中使用: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
/etc/rc.local
都运行它,运转得很好,欢呼