2015-11-04 70 views

回答

1

推出更多類似這樣的是一個嚮導,沒有CLI等同於它。您需要獲取第一個實例屬性並使用它們來激活具有相同屬性的秒實例(除了對實例唯一的屬性)。 link爲awscli添加了--clone選項。一探究竟。

+0

helloV,我想在您發送的鏈接的工具,但同時它直接複製實例比如有的屬性,在「發動更多類似這樣的」我仍然給我不同的行爲。修改和擴展它可能是值得的,但如果它可以更改爲更接近地複製嚮導。 –

0

這可能不是你要找的答案,但你如果你能Cloud Formation描述你的初始實例,那麼你就可以創建更喜歡它:

aws cloudformation create-stack --region your-region --template-body file://path-to-your-instance-description.json stack-name-must-be-unique 
4

這裏的工作(雖然哈克)的方式來建立一個實例與另一個實例的副本:

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 
+0

這可能是一個好主意,加上'--output text'在所有相關的地方 - 默認值是JSON和很多人不改變這種狀況。 – Guss