I have list of IP addressed, I want to find if instances associated with the IP address are still running or terminated. I am launching and terminating lot of instances on daily basis, just want to remove their certificates from puppetmaster.
If there is any alternative method, I can achieve my goal, I can do that.
aws ec2 describe-instances --filter Name=ip-address,Values=IP_1,..IP_N
Should do what you need.
use the filter name of
private-ip-address
to select using private address in your VPC.Pipe through something like
jq -r '.Reservations[].Instances[] | .InstanceId, .PublicIpAddress'
if you want the corresponding InstanceID
You can use --query and --output formats if you want to use this in a bash script.
This will give you text response without json formatting
An alternative approach would be to use CloudWatch Events to listen for EC2 instances being terminated, and have the listener (which could be a Lambda function, or some custom service listening to SQS) remove the corresponding certificates from Puppet.
References: