Adding docs for the new accelerated mode
This commit is contained in:
parent
d05c61d1f0
commit
ff203dda45
1 changed files with 62 additions and 1 deletions
|
@ -937,10 +937,71 @@ Here is an example::
|
|||
Note that you must have passphrase-less SSH keys or an ssh-agent configured for this to work, otherwise rsync
|
||||
will need to ask for a passphrase.
|
||||
|
||||
Accelerated Mode
|
||||
````````````````
|
||||
|
||||
.. versionadded:: 1.3
|
||||
|
||||
While SSH using the ControlPersist feature is quite fast and scalable, there is a certain amount of overhead involved in
|
||||
creating connections. This can become something of a bottleneck when the number of hosts grows into the hundreds or
|
||||
thousands. To help overcome this, Ansible offers an accelerated connection option. Accelerated mode can be anywhere from
|
||||
2-6x faster than SSH with ControlPersist enabled, and 10x faster than paramiko.
|
||||
|
||||
Accelerated mode works by launching a temporary daemon over SSH. Once the daemon is running, Ansible will connect directly
|
||||
to it via a raw socket connection. Ansible secures this communication by using a temporary AES key that is uploaded during
|
||||
the SSH connection (this key is different for every host, and is also regenerated every time the daemon is started). By default,
|
||||
Ansible will use port 5099 for the accelerated connection, though this is configurable. Once running, the daemon will accept
|
||||
connections for 30 minutes, after which time it will terminate itself and need to be restarted over SSH.
|
||||
|
||||
Accelerated mode offers several improvments over the original fireball mode:
|
||||
|
||||
* No bootstrapping is required, only a single line needs to be added to each play you wish to run in accelerated mode.
|
||||
* Support for sudo commands (see below for more details and caveats).
|
||||
* Fewer requirements! ZeroMQ is no longer required, nor are there any special packages beyond python-keyczar.
|
||||
|
||||
In order to use accelerated mode, simply add `accelerate: true` to your play::
|
||||
|
||||
---
|
||||
- hosts: all
|
||||
accelerate: true
|
||||
tasks:
|
||||
- name: some task
|
||||
command: echo {{ item }}
|
||||
with_items:
|
||||
- foo
|
||||
- bar
|
||||
- baz
|
||||
|
||||
If you wish to change the port Ansible will use for the accelerated connection, just add the `accelerated_port` option::
|
||||
|
||||
---
|
||||
- hosts: all
|
||||
accelerate: true
|
||||
# default port is 5099
|
||||
accelerate_port: 10000
|
||||
|
||||
The `accelerate_port` option can also be specified in the environment variable ACCELERATE_PORT, or in your `ansible.cfg` configuration::
|
||||
|
||||
[accelerate]
|
||||
accelerate_port = 5099
|
||||
|
||||
As noted above, accelerated mode also supports running tasks via sudo, however there are two important caveats:
|
||||
|
||||
* You must remove requiretty from your sudoers options.
|
||||
* Prompting for the sudo password is not yet supported, so the NOPASSWD option is required for commands.
|
||||
|
||||
|
||||
|
||||
Fireball Mode
|
||||
`````````````
|
||||
|
||||
.. versionadded:: 0.8
|
||||
.. versionadded:: 0.8 (deprecated as of 1.3)
|
||||
|
||||
.. note::
|
||||
|
||||
The following section has been deprecated as of Ansible 1.3 in favor of the accelerated mode described above. This
|
||||
documentation is here for users who may still be using the original fireball connection method only, and should not
|
||||
be used for any new deployments.
|
||||
|
||||
Ansible's core connection types of 'local', 'paramiko', and 'ssh' are augmented in version 0.8 and later by a new extra-fast
|
||||
connection type called 'fireball'. It can only be used with playbooks and does require some additional setup
|
||||
|
|
Loading…
Reference in a new issue