Skip to content

Instantly share code, notes, and snippets.

@rjhowe
Last active August 28, 2019 16:44
Show Gist options
  • Save rjhowe/e707cdd21b4f4a55d88c81d58b62e2f6 to your computer and use it in GitHub Desktop.
Save rjhowe/e707cdd21b4f4a55d88c81d58b62e2f6 to your computer and use it in GitHub Desktop.
OpenShift 4 IPI aws cli cheatsheet

OpenShift AWS Cheat Sheet

Recreate metadata.json

Steps needed

Move metadata.json to home dir as a dot file

cp metadata.json ~/.metadata.json

Set variables for AWS commands

  • Either add to script and source, or add to bashrc and export
source <(jq -r "to_entries|map(\"\(.key)=\(.value|tostring)\")|.[]" ~/.metadata.json)
region=$(jq -r ".aws.region" ~/.metadata.json)

vpcID=$(aws ec2 describe-vpcs --region ${region}  --filter "Name=tag:Name,Values=$infraID-vpc" --query "Vpcs[0].VpcId")

subnetID=$(aws ec2 describe-subnets --region ${region}   --filter "Name=vpc-id,Values=$vpcID" --filter "Name=tag:Name,Values=$infraID-public-*" --query "Subnets[1].SubnetId")

imageID=`aws ec2 describe-instances --region ${region}  --filters "Name=tag:Name,Values=*$infraID*" --query 'Reservations[1].Instances[*].[ImageId]' --output text`
  • Can add to bashrc to use for quick ec2 describe* commands
  function awsocp {
    region=$(jq -r ".aws.region" ~/.metadata.json)
    source <(jq -r "to_entries|map(\"\(.key)=\(.value|tostring)\")|.[]" ~/.metadata.json)
    aws ec2 describe-${@} --region ${region} --filters "Name=tag:Name,Values=$infraID-*"
   }

AWS describe commands

# VPC 
aws ec2 describe-vpcs --region ${region}  --filter "Name=tag:Name,Values=$infraID-*"
aws ec2 describe-vpcs --region ${region}  --filter "Name=tag:Name,Values=$infraID-*" --query "Vpcs[0].VpcId"

# Elastic IPs 
aws ec2 describe-addresses --region ${region}  --filters "Name=tag-value,Values=$infraID-*" 

# Instances 
aws ec2 describe-instances --region ${region}  --filters "Name=tag:Name,Values=*$infraID-*"
aws ec2 describe-instances --region ${region} --filters "Name=tag:Name,Values=$infraID-*" --query "Reservations[*].Instances[*].[InstanceId]" --output text
aws ec2 describe-instances --region ${region} --filters Name=vpc-id,Values=$vpcID --query 'Reservations[*].Instances[*].{Id:InstanceId,Pub:PublicIpAddress,Pri:PrivateIpAddress,State:State.Name}' --output table


# Others using bashrc function from above
awsocp volumes
awsocp subnets 
awsocp images

awsocp security-groups


# All resources
aws resourcegroupstaggingapi get-resources --region ${region}  --tag-filters "Key=kubernetes.io/cluster/$infraID"

# ELB 
aws elb describe-load-balancers  --region ${region} --query "LoadBalancerDescriptions[?VPCId==\`$vpcID\`]"
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment