From 0c056ddbe261b7741926f40be78b806724e24ded Mon Sep 17 00:00:00 2001 From: David Wilson Date: Tue, 27 Feb 2018 13:41:31 +0545 Subject: [PATCH] docs: new Ansible limitation, add new heading Some differences are eventually likely to become permanent, because the existing behaviour is unforgiveable. --- docs/ansible.rst | 28 +++++++++++++++++++++++++++- 1 file changed, 27 insertions(+), 1 deletion(-) diff --git a/docs/ansible.rst b/docs/ansible.rst index b16a1ef8..d3b33825 100644 --- a/docs/ansible.rst +++ b/docs/ansible.rst @@ -23,7 +23,7 @@ significant testing will prove the extension's soundness. Overview -------- -You should **expect a 1.25x - 5x speedup** and a **CPU usage reduction of at +You should **expect a 1.25x - 7x speedup** and a **CPU usage reduction of at least 2x**, depending on network conditions, the specific modules executed, and time spent by the target host already doing useful work. Mitogen cannot speed up a module once it is executing, it can only ensure the module executes as @@ -83,6 +83,32 @@ This is a proof of concept: issues below are exclusively due to code immaturity. * More situations likely exist where the playbook's execution conditions are not respected (``delegate_to``, ``connection: local``, etc.). +* Ansible defaults to requiring pseudo TTYs for most SSH invocations, in order + to allow it to handle ``sudo`` with ``requiretty`` enabled, however it + disables pseudo TTYs for certain commands where standard input is required or + ``sudo`` is not in use. Mitogen does not require this, as it can simply call + :py:func:`pty.openpty` from the SSH user account during ``sudo`` setup. + + A major downside to Ansible's default is that stdout and stderr of any + resulting executed command are merged, with additional carriage return + characters synthesized in the output by the TTY layer. Neither of these + problems are apparent using the Mitogen extension, which may break some + playbooks. + + A future version will emulate Ansible's behaviour, once it is clear precisely + what that behaviour is supposed to be. See `Ansible#14377`_ for related + discussion. + +.. _Ansible#14377: https://github.com/ansible/ansible/issues/14377 + + +Behavioural Differences +----------------------- + + * Ansible with SSH multiplexing enabled causes a string like ``Shared + connection to host closed`` to appear in ``stderr`` output of every executed + command. This never manifests with the Mitogen extension. + Configuration -------------