lavenderguitar
2 years ago
1 changed files with 77 additions and 0 deletions
@ -0,0 +1,77 @@ |
|||
#!/bin/bash |
|||
|
|||
# Gather a list of AWS Instances containing their name, id, private IP address, and Key Pair name |
|||
instances=$(aws ec2 describe-instances --query 'Reservations[].Instances[].[Tags[?Key==`Name`].Value | [0], InstanceId, PrivateIpAddress, KeyName]' --output text) |
|||
|
|||
# Provides that list to the user in concise, readable format |
|||
echo "Here are the instances on this AWS account:" |
|||
echo "$instances" |
|||
echo "" |
|||
|
|||
# Prompt the user whether they would like to run updates on that list |
|||
read -p "Would you like to run updates on these instances? (y/n): " answer |
|||
|
|||
if [[ $answer == "y" ]]; then |
|||
# Loop over the instances and prompt the user whether to perform the updates |
|||
for instance in $instances; do |
|||
name=$(echo $instance | awk '{print $1}') |
|||
id=$(echo $instance | awk '{print $2}') |
|||
private_ip=$(echo $instance | awk '{print $3}') |
|||
key_name=$(echo $instance | awk '{print $4}') |
|||
|
|||
read -p "Do you want to update $name ($private_ip)? (y/n): " update_answer |
|||
|
|||
if [[ $update_answer == "y" ]]; then |
|||
# Use the private IP of the instance and Key Pair name to log in via ssh and perform the security update |
|||
ssh -i $key_name.pem ec2-user@$private_ip "sudo yum check-updates --security" |
|||
|
|||
# Prompt the user to confirm before continuing |
|||
read -p "Review the above list. Are you sure you want to update $name ($private_ip)? (y/n): " review_answer |
|||
|
|||
if [[ $review_answer == "y" ]]; then |
|||
ssh -i $key_name.pem ec2-user@$private_ip "sudo yum update --security" |
|||
fi |
|||
fi |
|||
done |
|||
fi |
|||
|
|||
echo "Done." |
|||
|
|||
# Same script but uses the public DNS record of the instance to access. |
|||
# |
|||
# Gather a list of AWS Instances containing their name, id, public IPv4 DNS, and Key Pair name |
|||
# instances=$(aws ec2 describe-instances --query 'Reservations[].Instances[].[Tags[?Key==`Name`].Value | [0], InstanceId, PublicDnsName, KeyName]' --output text) |
|||
|
|||
# # Provides that list to the user in concise, readable format |
|||
# echo "Here are the instances on this AWS account:" |
|||
# echo "$instances" |
|||
# echo "" |
|||
|
|||
# # Prompt the user whether they would like to run updates on that list |
|||
# read -p "Would you like to run updates on these instances? (y/n): " answer |
|||
|
|||
# if [[ $answer == "y" ]]; then |
|||
# # Loop over the instances and prompt the user whether to perform the updates |
|||
# for instance in $instances; do |
|||
# name=$(echo $instance | awk '{print $1}') |
|||
# id=$(echo $instance | awk '{print $2}') |
|||
# public_dns=$(echo $instance | awk '{print $3}') |
|||
# key_name=$(echo $instance | awk '{print $4}') |
|||
|
|||
# read -p "Do you want to update $name ($public_dns)? (y/n): " update_answer |
|||
|
|||
# if [[ $update_answer == "y" ]]; then |
|||
# # Use the public IPv4 DNS of the instance and Key Pair name to log in via ssh and perform the security update |
|||
# ssh -i $key_name.pem ec2-user@$public_dns "sudo yum check-updates --security" |
|||
|
|||
# # Prompt the user to confirm before continuing |
|||
# read -p "Review the above list. Are you sure you want to update $name ($public_dns)? (y/n): " review_answer |
|||
|
|||
# if [[ $review_answer == "y" ]]; then |
|||
# ssh -i $key_name.pem ec2-user@$public_dns "sudo yum update --security" |
|||
# fi |
|||
# fi |
|||
# done |
|||
# fi |
|||
|
|||
# echo "Done." |
Loading…
Reference in new issue