#!/bin/bash set -e -u MM=5.0 REVISION=10 PREV_REVISION=$(($REVISION - 1)) declare -a REGIONS=($(aws ec2 describe-regions --region eu-west-1 --query "Regions[*].RegionName" --output text)) for region in "${REGIONS[@]}"; do # To list images with Tags: # aws ec2 describe-images --region "$region" --filters "Name=name,Values=* ${MM} *rev. $REVISION*" --query 'Images[*].[ImageId,Name,Tags[*].[Value]]' ## Make PREV revision images private amis=$(aws ec2 describe-images --region "$region" --filters "Name=name,Values=* ${MM} *rev. $PREV_REVISION*" | jq -r '.Images[].ImageId') for ami in "${amis[@]}"; do echo "#### Doing $region ami $ami" aws ec2 modify-image-attribute --region "$region" --image-id "$ami" --launch-permission 'Remove=[{Group=all}]' aws ec2 describe-image-attribute --region "$region" --image-id "$ami" --attribute launchPermission done ## Check if NEXT revision images are public amis=$(aws ec2 describe-images --region "$region" --filters "Name=name,Values=* ${MM} *rev. $REVISION*" | jq -r '.Images[].ImageId') for ami in "${amis[@]}"; do echo "#### Doing $region ami $ami" aws ec2 describe-image-attribute --region "$region" --image-id "$ami" --attribute launchPermission # aws ec2 create-tags --region "$region" --resources "$ami" --tags "Key=Name,Value=UCS-$NEXT" # aws ec2 modify-image-attribute --region "$region" --image-id "$ami" --launch-permission 'Add=[{Group=all}]' # aws ec2 describe-images --region "$region" --image-id "$ami" done done