Last active
March 14, 2022 15:10
-
-
Save infamousjoeg/3d782cdda602d141c7b926af85b8dc4f to your computer and use it in GitHub Desktop.
Bash Helper Script for AWS Lab using Summon
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
#!/bin/bash | |
if [[ "$1" == "list" ]]; then | |
echo "Running Instances:" | |
echo "==================" | |
summon --provider ring.py -e aws -f ~/secrets.yml aws ec2 describe-instances | jq -r '.Reservations[].Instances[] | select( .State.Name == "running") | .Tags[] | select ( .Key == "Name" ) | .Value' | |
echo "" | |
echo "Stopped Instances:" | |
echo "==================" | |
summon --provider ring.py -e aws -f ~/secrets.yml aws ec2 describe-instances | jq -r '.Reservations[].Instances[] | select( .State.Name == "stopped") | .Tags[] | select ( .Key == "Name" ) | .Value' | |
exit 0 | |
fi | |
if [[ "$1" == "fix" ]]; then | |
public_ipv4=$(curl -s ipinfo.io/ip || echo "Can't get public IPv4 address"; exit 1) | |
echo "Fixed security group rules:" | |
echo "=======================================" | |
security_group_ids=$(summon --provider ring.py -e aws -f ~/secrets.yml aws ec2 describe-security-group-rules | jq -r '.SecurityGroupRules[] | select( .Description == "GlobalProtect") | "\(.SecurityGroupRuleId),\(.GroupId),\(.IpProtocol),\(.FromPort),\(.ToPort)"' > /dev/null) | |
for ids in $security_group_ids; do | |
rule_id=$(echo "$ids" | cut -d, -f1) | |
group_id=$(echo "$ids" | cut -d, -f2) | |
protocol=$(echo "$ids" | cut -d, -f3) | |
from_port=$(echo "$ids" | cut -d, -f4) | |
to_port=$(echo "$ids" | cut -d, -f5) | |
summon -p ring.py -e aws -f ~/secrets.yml aws ec2 modify-security-group-rules --group-id "$group_id" --security-group-rules SecurityGroupRuleId="$rule_id",SecurityGroupRule=\{IpProtocol="$protocol",FromPort="$from_port",ToPort="$to_port",CidrIpv4="$public_ipv4"/32\} | |
echo "$rule_id in $group_id" | |
done | |
echo "Finished." | |
exit 0 | |
fi | |
instance_id=$(summon --provider ring.py -e aws-instances -f ~/secrets.yml printenv "$2") | |
summon --provider ring.py -e aws -f ~/secrets.yml aws ec2 "$1"-instances --instance-id "$instance_id" |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
aws: | |
AWS_ACCESS_KEY_ID: !var aws/access_key_id | |
AWS_SECRET_ACCESS_KEY: !var aws/secret_access_key | |
aws-instances: | |
aap: i-0d6ce4c85c1ad69a0 | |
aap2: i-0bbd99bee631fd26f | |
components: i-00ff23e87d17b0b91 | |
dc: i-03cd63ce38a223e3e | |
vault: i-07f0768b169fb44ff | |
streisand: i-0d15c8f860656a0cd | |
conjur: i-0baecb6c9faa4fa56 | |
kops-controller: i-0ea4de964f0cb722c | |
kops-worker: i-0fbfe4f48eb45a33e | |
jenkins: i-013819134a6e7c536 | |
mc: i-094c9ecbe2f623a1e | |
psm: i-04eb1e65f95e5a0db | |
poc: i-0a80270aee237af6c | |
ghost: i-0e20a3b5767102741 | |
tomcat: i-06f362daea3a1f56a | |
algo: i-009a7c864b039debe | |
kops: | |
S3_ACCESS_KEY_ID: !var aws/access_key_id | |
S3_SECRET_ACCESS_KEY: !var aws/secret_access_key | |
AWS_ACCESS_KEY_ID: !var aws/access_key_id | |
AWS_SECRET_ACCESS_KEY: !var aws/secret_access_key |
To use aliases, add the below to your ~/.zshrc
or ~/.bashrc
file in your User's home directory.
alias aws-list='~/aws-instances.sh list'
alias aws-start='~/aws-instances.sh start '
alias aws-stop='~/aws-instances.sh stop '
$ aws-list
$ aws-start poc
$ aws-stop poc
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
https://github.com/cyberark/summon-keyring