synced_folders/rsync: SSH control for faster rsync
This commit is contained in:
parent
2ade66443e
commit
45a8a5907f
|
@ -185,7 +185,10 @@ module VagrantPlugins
|
||||||
|
|
||||||
ssh_info = opts[:machine].ssh_info
|
ssh_info = opts[:machine].ssh_info
|
||||||
begin
|
begin
|
||||||
|
start = Time.now
|
||||||
RsyncHelper.rsync_single(opts[:machine], ssh_info, opts[:opts])
|
RsyncHelper.rsync_single(opts[:machine], ssh_info, opts[:opts])
|
||||||
|
finish = Time.now
|
||||||
|
@logger.info("Time spent in rsync: #{finish-start} (in seconds)")
|
||||||
rescue Vagrant::Errors::MachineGuestNotReady
|
rescue Vagrant::Errors::MachineGuestNotReady
|
||||||
# Error communicating to the machine, probably a reload or
|
# Error communicating to the machine, probably a reload or
|
||||||
# halt is happening. Just notify the user but don't fail out.
|
# halt is happening. Just notify the user but don't fail out.
|
||||||
|
|
|
@ -66,9 +66,17 @@ module VagrantPlugins
|
||||||
proxy_command = "-o ProxyCommand='#{ssh_info[:proxy_command]}' "
|
proxy_command = "-o ProxyCommand='#{ssh_info[:proxy_command]}' "
|
||||||
end
|
end
|
||||||
|
|
||||||
|
# Create the path for the control sockets. We used to do this
|
||||||
|
# in the machine data dir but this can result in paths that are
|
||||||
|
# too long for unix domain sockets.
|
||||||
|
controlpath = File.join(Dir.tmpdir, "ssh.#{rand(1000)}")
|
||||||
|
|
||||||
rsh = [
|
rsh = [
|
||||||
"ssh -p #{ssh_info[:port]} " +
|
"ssh -p #{ssh_info[:port]} " +
|
||||||
proxy_command +
|
proxy_command +
|
||||||
|
"-o ControlMaster=auto " +
|
||||||
|
"-o ControlPath=#{controlpath} " +
|
||||||
|
"-o ControlPersist=10m " +
|
||||||
"-o StrictHostKeyChecking=no " +
|
"-o StrictHostKeyChecking=no " +
|
||||||
"-o IdentitiesOnly=true " +
|
"-o IdentitiesOnly=true " +
|
||||||
"-o UserKnownHostsFile=/dev/null",
|
"-o UserKnownHostsFile=/dev/null",
|
||||||
|
|
Loading…
Reference in New Issue