class Aerosol::Deploy
Public Instance Methods
do_not_migrate!()
click to toggle source
# File lib/aerosol/deploy.rb, line 50 def do_not_migrate! self.instance_variable_set(:@db_config_path, nil) end
generate_ssh_command(instance)
click to toggle source
# File lib/aerosol/deploy.rb, line 88 def generate_ssh_command(instance) ssh_command = "ssh -o 'UserKnownHostsFile=/dev/null' -o 'StrictHostKeyChecking=no' " unless local_ssh_ref.nil? unless local_ssh_ref.jump.nil? || local_ssh_ref.jump.empty? ssh_command << "-o 'ProxyCommand=ssh -W %h:%p " ssh_command << "#{local_ssh_ref.jump[:user]}@" if local_ssh_ref.jump[:user] ssh_command << "#{local_ssh_ref.jump[:host]}' " end ssh_command << "#{local_ssh_ref.user}@" unless local_ssh_ref.user.nil? end ssh_command << "#{instance.address}" end
generate_ssh_commands()
click to toggle source
# File lib/aerosol/deploy.rb, line 101 def generate_ssh_commands group = Aerosol::AutoScaling.latest_for_tag('Deploy', auto_scaling.namespaced_name) raise "Could not find any auto scaling groups for this deploy (#{name})." if group.nil? ssh_commands = [] with_prefix("[#{name}]") do |logger| logger.info "found group: #{group.auto_scaling_group_name}" instances = group.all_instances raise "Could not find any instances for auto scaling group #{group.namespaced_name}" if instances.empty? instances.each do |instance| logger.info "printing ssh command for #{instance.address}" ssh_commands << generate_ssh_command(instance) end end return ssh_commands end
is_alive?(command = nil, &block)
click to toggle source
# File lib/aerosol/deploy.rb, line 39 def is_alive?(command = nil, &block) fail 'Command and block specified' if command && block @is_alive = block if block @is_alive = command if command @is_alive end
live_check(arg = nil)
click to toggle source
# File lib/aerosol/deploy.rb, line 27 def live_check(arg = nil) case when arg.nil? @live_check when arg.start_with?('/') @live_check = arg else @live_check = "/#{arg}" end @live_check end
live_check_url()
click to toggle source
# File lib/aerosol/deploy.rb, line 46 def live_check_url [ssl ? 'https' : 'http', '://localhost:', app_port, live_check].join end
local_ssh_ref()
click to toggle source
# File lib/aerosol/deploy.rb, line 62 def local_ssh_ref local_ssh || ssh end
migrate?()
click to toggle source
# File lib/aerosol/deploy.rb, line 58 def migrate? !!db_config_path end
migration(opts = {})
click to toggle source
# File lib/aerosol/deploy.rb, line 54 def migration(opts = {}) self.db_config_path(opts[:db_config_path]) end
perform_role_assumption()
click to toggle source
# File lib/aerosol/deploy.rb, line 66 def perform_role_assumption return if assume_role.nil? Aws.config.update( credentials: Aws::AssumeRoleCredentials.new( role_arn: assume_role, role_session_name: "aerosol-#{name}", client: Aerosol::AWS.sts ) ) end
run_post_deploy()
click to toggle source
# File lib/aerosol/deploy.rb, line 77 def run_post_deploy return if post_deploy_command.nil? info "running post deploy: #{post_deploy_command}" if system(post_deploy_command) info "post deploy ran successfully" true else raise "post deploy failed" end end