Ham*_*lhi 5 amazon-ec2 amazon-web-services
aws ec2界面上有一个名为“像这样启动更多”的按钮,可启动第二个实例(如所选实例)。据我所知,aws命令行界面中没有类似的功能。
这是一种将实例构建为另一个实例的副本的有效方法(尽管很笨拙):
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)
| 归档时间: |
|
| 查看次数: |
1322 次 |
| 最近记录: |