Skip to content

Instantly share code, notes, and snippets.

Show Gist options
  • Save okisanjp/2065d5d49b9e06501b00c90b72ff30af to your computer and use it in GitHub Desktop.
Save okisanjp/2065d5d49b9e06501b00c90b72ff30af to your computer and use it in GitHub Desktop.
#!/bin/bash -u
echo "=============================================="
echo "Started : Create AMI for production Deploy"
echo "=============================================="
TAG_NAME='EC2_TAG_NAME_OF_INSTANCE'
echo "Target Instance : ${TAG_NAME}"
INSTANCE_ID=$( \
aws ec2 describe-instances \
--filter "Name=tag:Name,Values=${TAG_NAME}" \
--query "Reservations[].Instances[].InstanceId" \
--output text \
)
IMAGE_NAME="${TAG_NAME}-$( date '+%Y-%m-%d-%H-%I-%S' )"
echo "Image Name : ${IMAGE_NAME}"
aws ec2 create-image \
--instance-id ${INSTANCE_ID} \
--name ${IMAGE_NAME} \
--description "${IMAGE_NAME}" \
--no-reboot
STATE=""
while [ "${STATE}" != "available" ]
do
echo "$( date '+%Y/%m/%d/ %H:%I:%S' ) :now creating..."
STATE=$( \
aws ec2 describe-images \
--filters Name=name,Values="${IMAGE_NAME}" \
--query "Images[?Name == \`${IMAGE_NAME}\`].State" \
--output text \
)
sleep 30
done
echo "=============================================="
echo "Finished : Create AMI for production Deploy"
echo "=============================================="
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment