14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
|
# File 'lib/odania_ops/cli/backup.rb', line 14
def execute(opts=nil)
@type = options[:type]
$logger.info "Starting backup [#{@type}] #{options[:host]} -> [#{options[:target_type]}] #{options[:target_host]} (Jumpbox: #{options[:jumpbox]})"
opts = opts.nil? ? {} : JSON.parse(opts)
backup_script_file = "/tmp/#{Time.now.to_i}_backup.rb"
clazz = "OdaniaOps::Implementations::Backup::#{@type}".constantize.new options[:host], opts
clazz.write backup_script_file
set_jump_host(options[:jumpbox]) unless options[:jumpbox].nil?
server_host = options[:host_user].nil? ? options[:host] : "#{options[:host_user]}@#{options[:host]}"
on server_host, in: :sequence do |host|
within '/tmp' do
server_backup_file = "/tmp/#{@type}_backup.rb"
upload! backup_script_file, server_backup_file
result = capture "sudo #{server_backup_file}"
$logger.info result
end
end
$logger.info "Finished backup [#{@type}] #{options[:host]} -> [#{options[:target_type]}] #{options[:target_host]} (Jumpbox: #{options[:jumpbox]})"
end
|