Method: Beaker::HostPrebuiltSteps#copy_ssh_to_root
- Defined in:
- lib/beaker/host_prebuilt_steps.rb
#copy_ssh_to_root(host, opts) ⇒ Object
Make it possible to log in as root by copying the current users ssh keys to the root account
334 335 336 337 338 339 340 341 342 343 344 345 346 347 348 349 350 351 352 353 354 355 356 357 |
# File 'lib/beaker/host_prebuilt_steps.rb', line 334 def copy_ssh_to_root host, opts logger = opts[:logger] block_on host do |host| logger.debug "Give root a copy of current user's keys, on #{host.name}" if host['platform'] =~ /windows/ and host.is_cygwin? host.exec(Command.new('cp -r .ssh /cygdrive/c/Users/Administrator/.')) host.exec(Command.new('chown -R Administrator /cygdrive/c/Users/Administrator/.ssh')) elsif host['platform'] =~ /windows/ and not host.is_cygwin? host.exec(Command.new("if exist .ssh (xcopy .ssh C:\\Users\\Administrator\\.ssh /s /e)")) elsif host['platform'] =~ /osx/ host.exec(Command.new('sudo cp -r .ssh /var/root/.'), {:pty => true}) elsif host['platform'] =~ /freebsd/ host.exec(Command.new('sudo cp -r .ssh /root/.'), {:pty => true}) elsif host['platform'] =~ /openbsd/ host.exec(Command.new('sudo cp -r .ssh /root/.'), {:pty => true}) elsif host['platform'] =~ /solaris-10/ host.exec(Command.new('sudo cp -r .ssh /.'), {:pty => true}) elsif host['platform'] =~ /solaris-11/ host.exec(Command.new('sudo cp -r .ssh /root/.'), {:pty => true}) else host.exec(Command.new('sudo su -c "cp -r .ssh /root/."'), {:pty => true}) end end end |