Skip to content

Instantly share code, notes, and snippets.


Dan Farrell farrellit

View GitHub Profile
# find security group of instance
securitygroups=`aws --profile dev ec2 describe-instances --region us-east-2 --instance-id $iid --query Reservations[*].Instances[*].SecurityGroups[*][GroupId] --output text`
# see open rules ( there's usually not many )
aws --profile dev --region us-east-2 ec2 describe-security-groups --group-ids $securitygroups --query '*[*][GroupId,IpPermissions[?FromPort!=null].[FromPort,ToPort,IpRanges[*].CidrIp]]' --output text
# find subnet
subnet=`aws --profile dev ec2 describe-instances --region us-east-2 --instance-id $iid --query Reservations[*].Instances[*][SubnetId] --output text`
# now check default route. If it's through an IGW, we should be good!
aws ec2 --region us-east-2 --profile dev describe-route-tables --filters Name=association.subnet-id,Values=$subnet --query RouteTables[*].Routes[?DestinationCidrBlock=='``']
# get it's public IP
View gist:4e526552f1b322706d8d0003d607edfe
aws route53 list-hosted-zones --query HostedZones[?Id!=null].Id --output text | grep -v None | xargs -n 1 aws route53 list-resource-record-sets --query 'ResourceRecordSets[?AliasTarget!=null][AliasTarget.DNSName]' --hosted-zone-id --output text | grep -F
aws route53 list-hosted-zones --query HostedZones[?Id!=null].Id --output text \
| grep -v None \
| xargs -n 1 -P 10 \
aws route53 list-resource-record-sets \
--query 'ResourceRecordSets[?AliasTarget!=null][AliasTarget.DNSName]' \
--output text --hosted-zone-id | grep -F
cmd='make r53'
while true; do newdate=`stat -f %m `; [[ "$olddate" == "$newdate" ]] || { olddate="$newdate"; $cmd; }; sleep 0.25; done
farrellit / ec2-describe-instances.go
Last active Dec 13, 2019
golang awssdk ec2 describe-instances
View ec2-describe-instances.go
package main
import (
func main() {
View gist:8cc1c16449ee04170103a73bec1c85d1
# find directories containing .git subdirs
find ~/ -type d -name '.git' -print0 | xargs -n 1 -0 dirname \
| xargs -I % -n 1 bash -c 'cd "%" && pwd 1>&2; (git status --porcelain| grep -q . && [[ ! -n "`git diff`" ]] ) || echo %'\
| xargs -I % bash -c '[[ -n "`cd %; git status --porcelain; git diff;`" ]] && echo %' \
| tee /dev/stderr | sort > purportedly-empty-repos.txt
#That makes sure you don't have any uncommitted changes. But it still doesn't check to make sure you don't have unpushed commits.
# remove containers which have exited
docker ps -a | awk '/Exited[ ]\(/ {print $1}' | xargs docker rm
# remove images without tag nor repo
docker images | awk '/^<none>[[:space:]]*<none>/ {print $3}' | xargs docker rmi
View overwrite-ssh-pubkey
#pubkey=... # default should suffice if you have the default key location
ssh $ip "bash -c 'mkdir -p ~/.ssh; chmod 0700 ~/.ssh; cat > ~/.ssh/authorized_keys'" < ${pubkey:-~/.ssh/
farrellit /
Last active Oct 25, 2018
thoughts on git commands for automatic k8s branch deployments

Git commands for a slim deployment pipeline for github branches

get current branch

TODO: what happens if you're not on a branch?

git rev-parse --abbrev-ref HEAD

Get upstram of current branch

farrellit /
Last active Sep 19, 2019
shell inline python invocation to transform yaml to json
python -c "import yaml, sys, json; print(json.dumps(yaml.safe_load("