class Capistrano::Asg::LaunchConfiguration
Create launch configuration
Attributes
region_config[R]
Public Class Methods
create(ami, region_config = {}) { |lc| ... }
click to toggle source
# File lib/capistrano/asg/launch_configuration.rb, line 7 def self.create(ami, region_config = {}, &_block) lc = new(region_config) lc.cleanup do lc.save(ami) yield lc end end
new(region_config = {})
click to toggle source
# File lib/capistrano/asg/launch_configuration.rb, line 15 def initialize(region_config = {}) @region_config = region_config end
Public Instance Methods
attach_to_autoscale_group!()
click to toggle source
# File lib/capistrano/asg/launch_configuration.rb, line 39 def attach_to_autoscale_group! info "Attaching Launch Configuration #{aws_counterpart.name} to AutoScaling Group #{autoscaling_group.name}" autoscaling_group.update( launch_configuration_name: aws_counterpart.name ) end
destroy(launch_configurations = [])
click to toggle source
# File lib/capistrano/asg/launch_configuration.rb, line 46 def destroy(launch_configurations = []) launch_configurations.each do |lc| info "Deleting old Launch Configuration: #{lc.name}" lc.delete end end
save(ami)
click to toggle source
# File lib/capistrano/asg/launch_configuration.rb, line 19 def save(ami) info "Creating an EC2 Launch Configuration for AMI: #{ami.aws_counterpart.id}" ec2_instance = ec2_resource.instance(base_ec2_instance.id) with_retry do @aws_counterpart = autoscaling_resource.create_launch_configuration( launch_configuration_name: name, image_id: ami.aws_counterpart.id, instance_type: instance_size, security_groups: ec2_instance.security_groups.map(&:group_id), associate_public_ip_address: region_config.fetch(:aws_launch_configuration_associate_public_ip, true), instance_monitoring: { enabled: fetch(:aws_launch_configuration_detailed_instance_monitoring, true) }, user_data: region_config.fetch(:aws_launch_configuration_user_data, nil), iam_instance_profile: ec2_instance.iam_instance_profile.arn ) end end
Private Instance Methods
deployed_with_asg?(lc)
click to toggle source
# File lib/capistrano/asg/launch_configuration.rb, line 63 def deployed_with_asg?(lc) lc.name.include? region_config.fetch(:aws_lc_name_prefix, "cap-asg-#{environment}-#{autoscaling_group_name}-lc") end
instance_size()
click to toggle source
# File lib/capistrano/asg/launch_configuration.rb, line 59 def instance_size region_config.fetch(:aws_autoscale_instance_size, 'm1.small') end
name()
click to toggle source
# File lib/capistrano/asg/launch_configuration.rb, line 55 def name timestamp region_config.fetch(:aws_lc_name_prefix, "cap-asg-#{environment}-#{autoscaling_group_name}-lc") end
trash()
click to toggle source
# File lib/capistrano/asg/launch_configuration.rb, line 67 def trash autoscaling_resource.launch_configurations.to_a.select do |lc| deployed_with_asg? lc end end