使用特定代码为实例启动和重启配置Amazon EC2用户数据

时间:2019-07-03 18:01:10

标签: amazon-web-services amazon-ec2

我正在创建一个AWS EC2启动模板,该模板在User Data字段中包含命令,以在首次启动实例时执行操作(程序包更新,安装软件,格式化EBS卷等)。除此之外,我还想在实例重新启动或随后启动时执行任务,例如安装现有的EBS卷以及配置和安装易失性SSD卷。我看到当实例在这里重新启动时,可以使用MIME类型运行代码:

https://aws.amazon.com/premiumsupport/knowledge-center/execute-user-data-ec2/

因此,我可以在启动实例后明确地修改用户数据,但这很麻烦,因为它可能需要人工干预或需要等待实例执行了初始的用户数据代码,在实例初始化时运行。

我的问题是:

能否将多部分MIME格式配置为运行将在实例初始化时执行的代码,以及将在每次实例重新启动时运行的其他代码?

1 个答案:

答案 0 :(得分:0)

我了解您要实现的目标是使用Userdata传递两组命令。一组将在实例创建时执行,另一组应在每次重新启动时执行。请让我知道我是否误解了。

对于第一部分,您可以使用已经知道的Userdata本身。对于应该在每次重新引导时运行的命令,您可以利用rc.local

脚本/etc/rc.local供系统管理员使用。传统上,它是在启动所有常规系统服务之后,切换到多用户运行级别的过程结束时执行的。等等。您可以使用它来启动定制服务或安装其他卷。

要写入/etc/rc.local中,可以从S3下载命令集并复制到文件中,也可以简单地回显它。示例:

echo 'echo HelloWorld' >> /etc/rc.local

希望这会有所帮助。