Ank*_*ain 5 shell amazon-ec2 amazon-web-services autoscaling
谁能告诉我如何在属于自动扩展组的所有 ec2 实例上运行 shell 脚本?
场景是,我有一个脚本想要在许多 ec2 实例上运行,这些实例作为自动扩展组的一部分自动打开。本机方法是通过 SSH 连接到每个实例并运行脚本。我正在寻找一种方法,当我在其中一个 ec2 实例上运行它时,它可以在所有实例上自动运行,或者有更好的方法吗?
提前致谢。
您可以通过多种不同的方式实施...
使用 awscli 获取自动缩放组中的所有实例 aws autoscaling describe-auto-scaling-groups --auto-scaling-group-name myTestGroup
SSHkit是在远程服务器上运行命令的有趣工具
或者
投入时间使用 puppet、chef 等适当的工具来实现基础设施的自动化。使用 puppet mcollective,您可以施展魔法,包括您所询问的内容。
更新:
当您将实例添加到自动缩放组时,会添加新标签 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
您可以使用这是您的脚本...