class AwsDynamicIp

Public Class Methods

fetch_ips(env, role) click to toggle source
# File lib/aws-dynamic-ip.rb, line 3
def self.fetch_ips(env, role)
  client = ::Aws::EC2::Client.new(region: 'us-west-2' || ENV['AWS_REGION'])
  ec2 = ::Aws::EC2::Resource.new(client: client)
  ips = []
  ec2.instances({ filters:
                    [
                      { name: 'tag:env', values: [env.to_s]},
                      { name: 'tag:role', values: [role]},
                      { name: 'instance-state-name', values: ['running']}
                    ]
                }).each do |instance|
    if instance.public_ip_address
      ips << instance.public_ip_address
    else
      ips << instance.private_ip_address
    end
  end

  puts "Fetched ips for #{env}:#{role} :: #{ips.join(',')}"
  return ips
end