module AwsHelper
Constants
- IP_TYPES
Public Instance Methods
get_instances(aws_region, aws_access_key_id, aws_secret_access_key, aws_autoscaling_group_name, aws_ip_type)
click to toggle source
# File lib/capistrano/helpers/aws_helper.rb, line 6 def get_instances(aws_region, aws_access_key_id, aws_secret_access_key, aws_autoscaling_group_name, aws_ip_type) aws_credentials = Aws::Credentials.new(aws_access_key_id, aws_secret_access_key) retrieve_ec2_instances(aws_region, aws_autoscaling_group_name, aws_credentials, aws_ip_type) end
Private Instance Methods
fetch_autoscaling_group_instances(aws_region, autoscaling_group_name, aws_credentials)
click to toggle source
# File lib/capistrano/helpers/aws_helper.rb, line 32 def fetch_autoscaling_group_instances(aws_region, autoscaling_group_name, aws_credentials) as = Aws::AutoScaling::Client.new(region: aws_region, credentials: aws_credentials) as_groups = as.describe_auto_scaling_groups( auto_scaling_group_names: [autoscaling_group_name], max_records: 1, ).auto_scaling_groups # info("Auto Scaling Groups: #{as_groups}") as_group = as_groups[0] # info("Auto Scaling Group instances: #{as_group.instances}") as_group.instances end
retrieve_ec2_instances(aws_region, autoscaling_group_name, aws_credentials, aws_ip_type)
click to toggle source
# File lib/capistrano/helpers/aws_helper.rb, line 13 def retrieve_ec2_instances(aws_region, autoscaling_group_name, aws_credentials, aws_ip_type) instances = fetch_autoscaling_group_instances(aws_region, autoscaling_group_name, aws_credentials) if instances.empty? autoscaling_dns = [] else instance_ids = instances.map(&:instance_id) ec2 = Aws::EC2::Resource.new(region: aws_region, credentials: aws_credentials) # info("Auto Scaling Group instances ids: #{instance_ids}") aws_ip_type = 'public_dns_name' unless IP_TYPES.include? aws_ip_type autoscaling_dns = instance_ids.map do |instance_id| ec2.instance(instance_id).send(aws_ip_type.to_sym) end end autoscaling_dns end