root/lib/proxy/puppet/puppet_ssh.rb @ 7e3ca5c2
13ed4712 | Hannes Schaller | require 'proxy/puppet'
|
|
module Proxy::Puppet
|
|||
class PuppetSSH < Runner
|
|||
def run
|
|||
cmd = []
|
|||
7e3ca5c2 | Michael Moll | cmd.push(which('sudo')) if SETTINGS.puppetssh_sudo
|
|
cmd.push(which('ssh'))
|
|||
13ed4712 | Hannes Schaller | cmd.push("-l #{SETTINGS.puppetssh_user}") if SETTINGS.puppetssh_user
|
|
if (file = SETTINGS.puppetssh_keyfile)
|
|||
if File.exists?(file)
|
|||
cmd.push("-i #{file}")
|
|||
else
|
|||
logger.warn("Unable to access SSH private key:#{file}, ignoring...")
|
|||
end
|
|||
end
|
|||
if cmd.include?(false)
|
|||
logger.warn 'sudo or the ssh binary is missing.'
|
|||
return false
|
|||
end
|
|||
7e3ca5c2 | Michael Moll | ssh_command = escape_for_shell(SETTINGS.puppetssh_command || 'puppet agent --onetime --no-usecacheonfailure')
|
|
13ed4712 | Hannes Schaller | nodes.each do |node|
|
|
shell_command(cmd + [escape_for_shell(node), ssh_command], false)
|
|||
end
|
|||
end
|
|||
end
|
|||
7e3ca5c2 | Michael Moll | end
|