Hello. I just tried enabling ssh pipelining in Ansible 1.6, by doing this:
- commenting out “Defaults requiretty” in the source and destination hosts
- adding “pipelining = True” to /etc/ansible.cfg
I timed a playbook with about 100 plays, a few times before and after, and it took around 1:05 each time. Is there anything else I need to try? Both hosts are on RHEL 6.4.
Thanks.
commenting out “Defaults requiretty” in the source and destination hosts
FYI, this refers to the sudoers file. I also tried “Defaults !requiretty”, and the speed was the same.
So, pipelining mode is only usable if you are using the SSH connection type (-c ssh), so I’d first check to make sure you are running on a system where that is the default – i.e. not Enterprise Linux (RHEL, CentOS, etc).
You’ve mentioned you are using RHEL, so this has to be explicitly requested, which is not the default – and due to lack of ControlPersist on this platform (which is why -c ssh is not the default there but is everywhere it’s available) it may not be as performant.
So, by default, your EL system is still using paramiko, which I hope explains things.
The other case is if your playbook uses “su” (not sudo), in which case pipelining is explicitly disabled due to technical limitations.
(I’d recommend maybe considering running from a Fedora – or even Ubuntu – host if you want it full-on optimized)
Makes sense. I’m not really too concerned about the speed, so I’ll leave it alone. Thanks for the explanation.