如何从命令行复制ec2“像这样启动”?

Ham*_*lhi 5 amazon-ec2 amazon-web-services

aws ec2界面上有一个名为“像这样启动更多”的按钮,可启动第二个实例(如所选实例)。据我所知,aws命令行界面中没有类似的功能。

Ken*_*n J 5

这是一种将实例构建为另一个实例的副本的有效方法(尽管很笨拙):

function cloneinstance {
  awsinstanceid=$1
  region=$2
  export AWS_DEFAULT_REGION=$region
  ami=$(aws ec2 describe-instances --instance-ids $awsinstanceid | grep INSTANCES | awk '{print $7}')
  privatekey=$(aws ec2 describe-instances --instance-ids $awsinstanceid | grep INSTANCES | awk '{print $10}')
  securitygroup=$(aws ec2 describe-instances --instance-ids $awsinstanceid | grep SECURITYGROUPS | awk '{print $2}')
  instancetype=$(aws ec2 describe-instances --instance-ids $awsinstanceid | grep INSTANCES | awk '{print $9}')
  subnet=$(aws ec2 describe-instances --instance-ids $awsinstanceid | grep NETWORKINTERFACES | awk '{print $9}')

  awsinstancedata=$(aws ec2 run-instances --image-id $ami --key-name $privatekey --security-group-ids $securitygroup --instance-type $instancetype --subnet-id $subnet)
  awsinstanceid=$(echo $awsinstancedata | awk '{print $9}')

  # AWS CLI sucks and doesn't return error codes so have to look for a valid id
  if [[ "$awsinstanceid" == i-* ]]; then echo -e "\t\tSuccessfully created. Instance ID: $awsinstanceid"; else echo -e "\t\tSomething went wrong. Check your configuration."; exit 1; fi 
  echo -e "\t\tWaiting for it to come up..."
  aws ec2 wait instance-running --instance-ids $awsinstanceid
  echo -e "\t\tServer is up and ready"
}

cloneinstance i-12345678 us-west-1
Run Code Online (Sandbox Code Playgroud)


hel*_*loV 1

启动更多就像这是一个向导,并且没有与之等效的 CLI。您需要获取第一个实例属性并使用它们来启动具有相同属性的第二个实例(实例特有的属性除外)。该链接将 --clone 选项添加到 awscli。一探究竟。