如何在 Ansible 中启动所有 AWS EC2 实例

How can I start all AWS EC2 instances in Ansible

我找到了一个用于 starting/stopping 动态创建的 ec2 实例的脚本,但是如何启动我的清单中的任何实例?

您似乎在谈论脚本,而不是 SDK。所以有两个工具可以完成这项工作。

1 个 AWS CLI 工具

  1. 下载aws cli tool并在$HOME/.aws/credentials

  2. 中设置API键
  3. 列出区域 us-east-1 上的所有实例

确认您的目标实例。

aws ec2 describe-instances --query 'Reservations[].Instances[].InstanceId' --region us-east-1 --output text

2 个 Amazon EC2 命令行界面工具

  1. download and setup instruction

  2. 列出区域 us-east-1 上的所有实例

您应该得到与方式 #1 相同的输出。

ec2-describe-instances --region us-west-2 |awk '/INSTANCE/{print }'

有了实例ID列表,就可以用你的命令一个一个启动了。

例如实例名称保存在文件instance.list

while read instance
do
  echo "Starting instance $instance ..."
  ec2-start-instances "$linstance"
done  < instance.list

宝马,给你一个优秀的启动,但你甚至可以这样总结: 1)先获取所有实例的id,存入文件

aws ec2 describe-instances --query 'Reservations[].Instances[].InstanceId' --region us-east-1 --output text >> id.txt

2) 然后只需运行这个命令来启动所有实例

for id in $(awk '{print }' id.txt); do echo "starting the following instance $id"; aws ec2 start-instances --instance-ids --region us-east-1 $id; done

请更改区域,我认为您已正确安装和设置 AWS CLI 工具。谢谢