Cómo crear una AMI excluyendo todos los volúmenes adjuntos para todas las instancias dentro de VPC usando un script de shell

Cómo crear una AMI excluyendo todos los volúmenes adjuntos para todas las instancias dentro de VPC usando un script de shell

He escrito un script para encontrar el ID de instancia de VPC y crear AMI de cada ID de instancia:

#!/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

¡Pero quiero crear AMI excluyendo los volúmenes adjuntos para cada volumen!

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

Esto creará ami sin volúmenes adjuntos, pero /dev/sdh será diferente para cada instancia, entonces, ¿cómo puedo automatizar esta parte? cualquier pista!

Respuesta1

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

Producción :

/dev/sda1

Así es como podemos encontrar la lista de volúmenes adjuntos y pasarla a "ec2-create-image --block-device-mapping /dev/sdh=none"

información relacionada