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

时间:2015-01-16 23:13:25

标签: amazon-web-services amazon-ec2 ansible

我找到了一个用于启动/停止动态创建的ec2实例的脚本,但是如何在库存中启动任何实例?

2 个答案:

答案 0 :(得分:1)

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

1个AWS CLI工具

  1. 下载aws cli tool并在$ HOME / .aws /凭证中设置API密钥

  2. 列出区域us-east-1

  3. 上的所有实例

    确认您要定位的实例。

    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

    3. 上的所有实例

      你应该得到与WAY#1相同的输出。

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

      使用实例ID列表,您可以使用命令逐个启动它们。

      例如,

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

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

答案 1 :(得分:0)

宝马,给你一个出色的创业公司,但你甚至可以总结一下这样的事情: 1)首先获取所有实例的id并将它们保存到文件中

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

2)然后只需运行此命令即可启动所有实例

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

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