有人能告诉我如何在所有属于自动缩放组的ec2实例上运行shell脚本吗?
这个场景是,我有一个脚本,我想要运行在许多ec2实例上,这些实例作为自动缩放组的一部分自动打开。本机方法是对每个实例进行SSH并运行脚本。我正在寻找一种方法,当我在一个ec2实例上运行它或任何更好的方法时,它可以在所有实例上自动运行?
提前谢谢。
发布于 2015-04-24 01:30:13
你可以用很多不同的方式来实现..。
或
投入你的时间,使你的基础设施自动化在适当的工具,如木偶,厨师。有了木偶集体,你就可以施魔法,包括你问过的东西。
更新:
当您将实例添加到自动标度组新标记name=aws:autoscaling:groupName时,添加了value=name_of_assigned_autoscaling_group,因此很容易找到它搜索该标记。
$ asgName=testASG
$ aws ec2 describe-instances --filters Name=tag-key,Values='aws:autoscaling:groupName' Name=tag-value,Values=$asgName --output text --query 'Reservations[*].Instances[*].[InstanceId,PublicIpAddress]'
您将从上面的命令获得的输出是实例名称和公共IP:
i-4c42aabc 52.1.x.y
你可以用这是你的剧本。
发布于 2017-01-24 07:12:46
您将希望将该shell脚本添加到新的启动Config中的用户数据中,然后更新自动标度组。
https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/user-data.html#user-data-shell-scripts
更新发射Config
如果要更改自动缩放组的启动配置,则必须创建启动配置,然后使用新的启动配置更新自动缩放组。更改自动缩放组的启动配置时,任何新实例都将使用新的配置参数启动,但现有实例不会受到影响。
https://docs.aws.amazon.com/autoscaling/latest/userguide/LaunchConfiguration.html
发布于 2015-04-24 06:35:21
我会用厨师来做。Opsworks (一种aws产品)是主厨,加上许多你想做的事情,并给你更多的灵活性。
https://stackoverflow.com/questions/29841818
复制