Ansible copy module takes lot of time on same machine

I am using Ansible to copy a file from Debian to XP running on the same machine on Virtualbox. Copying the file (437KB) using ssh as transport is taking 5 secs. I profiled the same copy operation using scp and that takes ~820ms.

I am using ssh 5.5 on Debian squeeze and hence don’t have ControlPersist support. I have set in ansible.cfg: [defaults] … transport = ssh

[ssh_connection] ssh_args = -o GSSAPIAuthentication=no -o GSSAPIKeyExchange=no -o AddressFamily=inet -o Ciphers=arcfour,blowfish-cbc scp_if_ssh = True

I am using Ansible 1.6.6.

How can I better the speed, close to that of scp? Am I missing some configuration?

Can someone help me in solving this problem? This delay shows up in all things I execute using Ansible, thus making making my projects extremely slow. Tried several options on the net (that’s why you see the ssh_args customized) but nothing fixed or bettered it.

have you tried switching to paramiko as a transport? the default ‘smart’ would use whichever is more optimal for your system.

Yes, I had tried that – it pushes the CPU to max power and takes almost similar time.

You can refer to http://www.ansible.com/blog/ansible-performance-tuning for tuning tips.

Hi Michael,

I looked into the link. Note that I don’t have ssh 5.6+ to use ControlPersist feature. Tried with paramiko, but with no change.

#1 In my first query, I had minimized the problem to the copy module. Copy module takes ~5 secs while scp takes < 1sec. I tried several options, but with no outcome. Can you help me in solving this?

#2 I am on Debian squeeze and hence there is no ssh version > 5.5. I don’t want to mess with the setup, as I login to my external servers. If I compile ssh 5.6+, can I provide to Ansible the path to the binary?

I look forward to your inputs.