如何在第一次启动实例时在Amazon EC2中运行脚本?

我为了内部目的而制作了自己的AMI。 如何在使用此AMI启动实例时运行脚本? 我怎样才能做到这一点?

我目前的做法是将脚本myscript.sh添加到/etc/rc.d/rc.local 。 这是AMI的正确方法吗?

编辑:这是一个场景:

我已经从EC2实例创build了AMI(EC2映像)。 现在,当一个同事使用这个镜像并启动一个实例时,我想让一个脚本在启动的时候只运行一次。 每次重启实例时,我都不想让它运行。 相反,只有在第一次启动实例的时候。

在启动过程中通过“用户数据”提供脚本,并在第一次启动时执行。 如果您使用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步底部的“高级”部分中: 在这里输入图像说明

你见过这个吗? 本主题介绍如何将用户数据添加到启动。

http://docs.aws.amazon.com/AWSEC2/latest/UserGuide/user-data.html

这使您可以在启动时运行一次脚本,但每次启动AMI时都必须指定相同的用户数据。 您是否希望每次AMI启动时都运行相同的脚本,而无需input脚本或更改的可能性?