我已经创建了自己的 AMI 供内部使用。如何在使用此 AMI 启动实例时运行脚本?我该怎么做?
我当前的方法是将脚本(例如 myscript.sh)添加到/etc/rc.d/rc.local
。这对于 AMI 来说是正确的方法吗?
编辑:这是一个场景:
我已经从 EC2 实例创建了一个 AMI(EC2 映像)。现在,当同事使用此映像并启动实例时,我希望脚本在启动实例时仅运行一次。我不希望每次重新启动实例时都运行此脚本。相反,只在第一次启动实例时运行。
答案1
在启动过程中通过“用户数据”提供脚本,它将在首次启动时执行。如果您使用 awscli,请使用选项--user-data
“
$ aws ec2 run-instances --image-id ami-xxxxxxxx --count 1 --instance-type m1.small --key-name foo-key --security-group-ids sg-xxxxxxxx --subnet-id subnet-xxxxxxxx --placement AvailabilityZone=us-west-2a --user-data file://path/to/script
如果您使用 GUI,则用户数据字段隐藏在启动对话框第 3 步底部的“高级”部分中:
答案2
您见过这个吗?本主题介绍如何将用户数据添加到启动项。
http://docs.aws.amazon.com/AWSEC2/latest/UserGuide/user-data.html
这样,您可以在启动时运行一次脚本,但每次启动 AMI 时都必须指定相同的用户数据。您是否希望每次启动此 AMI 时都运行相同的脚本,而无需输入或更改脚本?