Class: AwsDynamicIp

Inherits:
Object
  • Object
show all
Defined in:
lib/aws-dynamic-ip.rb

Class Method Summary collapse

Class Method Details

.fetch_ips(env, role) ⇒ Object



3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
# 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