Trim references to fireball as we want folks using accelerate or pipelining options. Fireball is pretty well deprecated at this point, but will still be part of the release.
This commit is contained in:
parent
79645535c0
commit
5443ddec75
6 changed files with 20 additions and 100 deletions
|
@ -14,7 +14,7 @@ as often.
|
|||
Connection Type Plugins
|
||||
-----------------------
|
||||
|
||||
By default, ansible ships with a 'paramiko' SSH, native ssh (just called 'ssh'), 'local' connection type, and an accelerated connection type named 'fireball' (superseded in 1.3 by :doc:`playbooks_acceleration`) -- there are also some minor players like 'chroot' and 'jail'. All of these can be used
|
||||
By default, ansible ships with a 'paramiko' SSH, native ssh (just called 'ssh'), 'local' connection type, and there are also some minor players like 'chroot' and 'jail'. All of these can be used
|
||||
in playbooks and with /usr/bin/ansible to decide how you want to talk to remote machines. The basics of these connection types
|
||||
are covered in the :doc:`intro_getting_started` section. Should you want to extend Ansible to support other transports (SNMP? Message bus?
|
||||
Carrier Pigeon?) it's as simple as copying the format of one of the existing modules and dropping it into the connection plugins
|
||||
|
|
|
@ -48,7 +48,7 @@ Connection Type, Connection Plugin
|
|||
By default, Ansible talks to remote machines through pluggable libraries. Ansible supports native OpenSSH ('ssh'), or a Python
|
||||
implementation called 'paramiko'. OpenSSH is preferred if you are using a recent version, and also enables some features
|
||||
like Kerberos and jump hosts. This is covered in the getting started section.
|
||||
There are also other connection types like 'fireball' mode, which must be bootstrapped
|
||||
There are also other connection types like 'accelerate' mode, which must be bootstrapped
|
||||
over one of the SSH-based connection types but is very fast, and local mode, which acts on the local system.
|
||||
Users can also write their own connection plugins.
|
||||
|
||||
|
@ -81,15 +81,6 @@ A filter plugin is something that most users will never need to understand. The
|
|||
are more or less only of use to people who know what Jinja2 filters are. If you need them, you can learn how to write them in the API
|
||||
docs section.
|
||||
|
||||
Fireball Mode
|
||||
+++++++++++++
|
||||
|
||||
By default, Ansible uses SSH for connections -- either paramiko or native OpenSSH, a common alternative. (Ansible tries to use
|
||||
'ssh' by default if possible in Ansible 1.2.1 and later, but previously defaulted to paramiko). Some users
|
||||
may want to execute operations even faster though, and they can if they opt to run their tasks using an ephemeral 'fireball' message bus. What happens in this mode is that Ansible
|
||||
will start talking to a node over SSH, and then set up a secure, temporary message bus that authenticates only a single machine, and that will
|
||||
self destruct after a set period of time. This means the bus does not allow management of any kind after the time interval has expired.
|
||||
|
||||
Forks
|
||||
+++++
|
||||
|
||||
|
@ -398,7 +389,7 @@ constructs like loops and if statements.
|
|||
Transport
|
||||
+++++++++
|
||||
|
||||
Ansible uses "Connection Plugins" to define types of available transports. These are simply how Ansible will reach out to managed systems. Transports included are paramiko, SSH (using OpenSSH), fireball (an SSH-bootstrapped accelerated connection plugin), and local.
|
||||
Ansible uses "Connection Plugins" to define types of available transports. These are simply how Ansible will reach out to managed systems. Transports included are paramiko, SSH (using OpenSSH), and local.
|
||||
|
||||
When
|
||||
++++
|
||||
|
|
|
@ -3,18 +3,22 @@ Accelerated Mode
|
|||
|
||||
.. versionadded:: 1.3
|
||||
|
||||
.. note:
|
||||
You Might Not Need This!
|
||||
````````````````````````
|
||||
|
||||
Are you running Ansible 1.5 or later? If so, you may not need accelerate mode due to a new feature called "SSH pipelining" and should read the :ref:`pipelining` section of the documentation.
|
||||
Are you running Ansible 1.5 or later? If so, you may not need accelerate mode due to a new feature called "SSH pipelining" and should read the :ref:`pipelining` section of the documentation.
|
||||
|
||||
For users on 1.5 and later, accelerate mode only makes sense if you are (A) are managing from an Enterprise Linux 6 or earlier host
|
||||
For users on 1.5 and later, accelerate mode only makes sense if you are (A) are managing from an Enterprise Linux 6 or earlier host
|
||||
and still are on paramiko, or (B) can't enable TTYs with sudo as described in the pipelining docs.
|
||||
|
||||
If you can use pipelining, Ansible will reduce the amount of files transferred over the wire,
|
||||
making everything much more efficient, and performance will be on par with accelerate mode in nearly all cases, possibly excluding very large file transfer. Because less moving parts are involved, pipelining is better than accelerate mode for nearly all use cases.
|
||||
If you can use pipelining, Ansible will reduce the amount of files transferred over the wire,
|
||||
making everything much more efficient, and performance will be on par with accelerate mode in nearly all cases, possibly excluding very large file transfer. Because less moving parts are involved, pipelining is better than accelerate mode for nearly all use cases.
|
||||
|
||||
Accelerate mode remains around in support of EL6
|
||||
control machines and other constrained environments.
|
||||
Accelerate mode remains around in support of EL6
|
||||
control machines and other constrained environments.
|
||||
|
||||
Accelerate Mode Details
|
||||
```````````````````````
|
||||
|
||||
While OpenSSH using the ControlPersist feature is quite fast and scalable, there is a certain small amount of overhead involved in
|
||||
using SSH connections. While many people will not encounter a need, if you are running on a platform that doesn't have ControlPersist support (such as an EL6 control machine), you'll probably be even more interested in tuning options.
|
||||
|
@ -30,7 +34,7 @@ the SSH connection (this key is different for every host, and is also regenerate
|
|||
|
||||
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 improvements over the original fireball mode from which it was based:
|
||||
Accelerated mode offers several improvements over the (deprecated) original fireball mode from which it was based:
|
||||
|
||||
* 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) is available.
|
||||
|
@ -68,79 +72,4 @@ As noted above, accelerated mode also supports running tasks via sudo, however t
|
|||
* You must remove requiretty from your sudoers options.
|
||||
* Prompting for the sudo password is not yet supported, so the NOPASSWD option is required for sudo'ed commands.
|
||||
|
||||
.. _fireball_mode:
|
||||
|
||||
Fireball Mode
|
||||
`````````````
|
||||
|
||||
.. 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
|
||||
outside the lines of Ansible's normal "no bootstrapping" philosophy. You are not required to use fireball mode
|
||||
to use Ansible, though some users may appreciate it.
|
||||
|
||||
Fireball mode works by launching a temporary 0mq daemon from SSH that by default lives for only 30 minutes before
|
||||
shutting off. Fireball mode, once running, uses temporary AES keys to encrypt a session, and requires direct
|
||||
communication to given nodes on the configured port. The default is 5099. The fireball daemon runs as any user you
|
||||
set it down as. So it can run as you, root, or so on. If multiple users are running Ansible as the same batch of hosts,
|
||||
take care to use unique ports.
|
||||
|
||||
Fireball mode is roughly 10 times faster than paramiko for communicating with nodes and may be a good option
|
||||
if you have a large number of hosts::
|
||||
|
||||
---
|
||||
|
||||
# set up the fireball transport
|
||||
- hosts: all
|
||||
gather_facts: no
|
||||
connection: ssh # or paramiko
|
||||
sudo: yes
|
||||
tasks:
|
||||
- action: fireball
|
||||
|
||||
# these operations will occur over the fireball transport
|
||||
- hosts: all
|
||||
connection: fireball
|
||||
tasks:
|
||||
- shell: echo "Hello {{ item }}"
|
||||
with_items:
|
||||
- one
|
||||
- two
|
||||
|
||||
In order to use fireball mode, certain dependencies must be installed on both ends. You can use this playbook as a basis for initial bootstrapping on
|
||||
any platform. You will also need gcc and zeromq-devel installed from your package manager, which you can of course also get Ansible to install::
|
||||
|
||||
---
|
||||
- hosts: all
|
||||
sudo: yes
|
||||
gather_facts: no
|
||||
connection: ssh
|
||||
tasks:
|
||||
- easy_install: name=pip
|
||||
- pip: name={{ item }} state=present
|
||||
with_items:
|
||||
- pyzmq
|
||||
- pyasn1
|
||||
- PyCrypto
|
||||
- python-keyczar
|
||||
|
||||
Fedora and EPEL also have Ansible RPM subpackages available for fireball-dependencies.
|
||||
|
||||
Also see the module documentation section.
|
||||
|
||||
.. seealso::
|
||||
|
||||
:doc:`playbooks`
|
||||
Introductory playbook information
|
||||
`User Mailing List <http://groups.google.com/group/ansible-devel>`_
|
||||
Have a question? Stop by the google group!
|
||||
`irc.freenode.net <http://irc.freenode.net>`_
|
||||
#ansible IRC chat channel
|
||||
|
||||
|
|
|
@ -156,6 +156,7 @@ ANSIBLE_SSH_ARGS = get_config(p, 'ssh_connection', 'ssh_args', 'AN
|
|||
ANSIBLE_SSH_CONTROL_PATH = get_config(p, 'ssh_connection', 'control_path', 'ANSIBLE_SSH_CONTROL_PATH', "%(directory)s/ansible-ssh-%%h-%%p-%%r")
|
||||
ANSIBLE_SSH_PIPELINING = get_config(p, 'ssh_connection', 'pipelining', 'ANSIBLE_SSH_PIPELINING', False, boolean=True)
|
||||
PARAMIKO_RECORD_HOST_KEYS = get_config(p, 'paramiko_connection', 'record_host_keys', 'ANSIBLE_PARAMIKO_RECORD_HOST_KEYS', True, boolean=True)
|
||||
# obsolete -- will be formally removed in 1.6
|
||||
ZEROMQ_PORT = get_config(p, 'fireball_connection', 'zeromq_port', 'ANSIBLE_ZEROMQ_PORT', 5099, integer=True)
|
||||
ACCELERATE_PORT = get_config(p, 'accelerate', 'accelerate_port', 'ACCELERATE_PORT', 5099, integer=True)
|
||||
ACCELERATE_TIMEOUT = get_config(p, 'accelerate', 'accelerate_timeout', 'ACCELERATE_TIMEOUT', 30, integer=True)
|
||||
|
|
|
@ -9,10 +9,9 @@ url='http://www.ansible.com'
|
|||
license=('GPL3')
|
||||
depends=('python2' 'python2-paramiko' 'python2-jinja' 'python2-yaml')
|
||||
makedepends=('git' 'asciidoc' 'fakeroot')
|
||||
optdepends=('python2-pyzmq: needed for fireball mode'
|
||||
'python2-pyasn1: needed for fireball mode'
|
||||
'python2-crypto: needed for fireball mode'
|
||||
'python2-keyczar: needed for fireball mode')
|
||||
optdepends=('python2-pyasn1: needed for accelerated mode'
|
||||
'python2-crypto: needed for accelerated mode'
|
||||
'python2-keyczar: needed for accelerated mode')
|
||||
conflicts=('ansible')
|
||||
provides=('ansible')
|
||||
backup=('etc/ansible/ansible.cfg')
|
||||
|
|
|
@ -1,6 +1,6 @@
|
|||
This portfile installs ansible from the git repository, it will install the
|
||||
latest and greatest version of ansible. This portfile does not install the
|
||||
required dependencies to run in fireball mode.
|
||||
required dependencies to run in accelerated mode.
|
||||
|
||||
## Installing the stable version of ansible via macports
|
||||
|
||||
|
|
Loading…
Reference in a new issue