Como criar uma AMI excluindo todos os volumes anexados para todas as instâncias no VPC usando shell script

Como criar uma AMI excluindo todos os volumes anexados para todas as instâncias no VPC usando shell script

Eu escrevi um script para encontrar o ID da instância da VPC e criar AMI de cada ID da instância:

#!/bin/bash
#Script to Automate AMI backup

echo "----------------------------------\n   `date`   \n----------------------------------"

aws ec2 describe-instances --filters Name=vpc-id,Values=vpc-1c927479 |   awk '{ print $8 }' | sort -n   | grep  "i-" > /tmp/instanceid.txt


echo "Starting the Daily AMI creation: "

#To create AMI from instance-id 

for i in $(cat /tmp/instanceid.txt); do
        echo "Creating AMI for Instance id $i ......."

echo "instance-`date +%d%b%y`-$i" > /tmp/aminame.txt

aws ec2 create-image --instance-id $i --name "`cat /tmp/aminame.txt`" --description "This is created by ami-backup.sh" --no-reboot | grep -ir ami | awk '{print $4}' > /tmp/amiID.txt

echo  "AMI Name is: `cat /tmp/aminame.txt`\n"

echo done 

done

Mas eu quero criar AMIs excluindo volumes anexados para cada volume!

ec2-create-image --block-device-mapping /dev/sdh=none

Isso criará um ami sem volumes anexados, mas /dev/sdh será diferente para cada instância, então como posso automatizar esta parte? alguma dica!

Responder1

Comando: $ aws ec2 descreva-images --image-ids ami-xxxx |grep "/dev" | awk '{imprimir $2}'

Saída :

/dev/sda1

É assim que podemos encontrar a lista de volumes anexados e passá-la para "ec2-create-image --block-device-mapping /dev/sdh=none"

informação relacionada