ssh command changed to net/ssh lib
This commit is contained in:
parent
c016d777e2
commit
0c6d07b606
@ -2,6 +2,7 @@ require "lib/knife/knife_factory"
|
|||||||
require "workers/worker"
|
require "workers/worker"
|
||||||
require "workers/delete_server_worker"
|
require "workers/delete_server_worker"
|
||||||
require "hooks"
|
require "hooks"
|
||||||
|
require 'net/ssh'
|
||||||
|
|
||||||
module Devops
|
module Devops
|
||||||
module Executor
|
module Executor
|
||||||
@ -312,15 +313,26 @@ module Devops
|
|||||||
res = delete_from_chef_server(@server.chef_node_name)
|
res = delete_from_chef_server(@server.chef_node_name)
|
||||||
begin
|
begin
|
||||||
new_name = "/etc/chef.backup_#{Time.now.strftime("%d-%m-%Y_%H.%M.%S")}"
|
new_name = "/etc/chef.backup_#{Time.now.strftime("%d-%m-%Y_%H.%M.%S")}"
|
||||||
# r = `ssh -i #{cert_path} -q #{@server.remote_user}@#{@server.private_ip} rm -Rf /etc/chef`
|
cmd = (@server.remote_user == 'root' ? "" : "sudo ")
|
||||||
cmd = "ssh -i #{cert_path} -q #{@server.remote_user}@#{@server.private_ip} \"/bin/sh -c 'if [[ -d /etc/chef ]]; then mv /etc/chef #{new_name}; else echo not found; fi'\""
|
cmd = cmd + "/bin/sh -c 'if [[ -d /etc/chef ]]; then mv /etc/chef #{new_name} && echo ok; else echo not found; fi'"
|
||||||
DevopsLogger.logger.info("Trying to run command '#{cmd}'")
|
DevopsLogger.logger.info("SSH: trying to run command '#{cmd}'")
|
||||||
r = `#{cmd}`.strip
|
Net::SSH.start(@server.private_ip, @server.remote_user, :keys => [cert_path]) do |session|
|
||||||
if r == 'not found'
|
session.open_channel do |channel|
|
||||||
res[:server] = "Directory '/etc/chef' does not exists"
|
channel.request_pty(:modes => { Net::SSH::Connection::Term::ECHO => 0 }) do |c, success|
|
||||||
else
|
raise "could not request pty" unless success
|
||||||
raise(r) unless $?.success?
|
channel.exec cmd
|
||||||
res[:server] = "'/etc/chef' renamed to '#{new_name}'"
|
channel.on_data do |c_, data|
|
||||||
|
if data == 'not found'
|
||||||
|
res[:server] = "Directory '/etc/chef' does not exists"
|
||||||
|
elsif data == 'ok'
|
||||||
|
res[:server] = "'/etc/chef' renamed to '#{new_name}'"
|
||||||
|
else
|
||||||
|
DevopsLogger.logger.error "Unexpected error: " + data
|
||||||
|
raise(data)
|
||||||
|
end
|
||||||
|
end
|
||||||
|
end
|
||||||
|
end
|
||||||
end
|
end
|
||||||
rescue => e
|
rescue => e
|
||||||
DevopsLogger.logger.error "Unbootstrap error: " + e.message
|
DevopsLogger.logger.error "Unbootstrap error: " + e.message
|
||||||
|
|||||||
Loading…
Reference in New Issue
Block a user