ansible(1)
=========
:doctype:manpage
:man source:   Ansible
:man version:  %VERSION%
:man manual:   System administration commands

NAME
----
ansible-pull - set up a remote copy of ansible on each managed node


SYNOPSIS
--------
ansible -d DEST -U URL [options] [ <filename.yml> ]


DESCRIPTION
-----------

*Ansible* is an extra-simple tool/framework/API for doing \'remote things' over
SSH.

Use ansible-pull to set up a remote copy of ansible on each managed
node, each set to run via cron and update playbook source via
a source repository. This inverts the default *push* architecture of
ansible into a *pull* architecture, which has near-limitless scaling
potential.

The setup playbook can be tuned to change the cron frequency, logging
locations, and parameters to ansible-pull.

This is useful both for extreme scale-out as well as periodic
remediation. Usage of the 'fetch' module to retrieve logs from
ansible-pull runs would be an excellent way to gather and analyze
remote logs from ansible-pull.


OPTIONAL ARGUMENT
-----------------

*filename.yml*::

The name of one the YAML format files to run as an ansible playbook.  This can
be a relative path within the checkout.  If not provided, ansible-pull
will look for a playbook based on the host's fully-qualified domain name, on the
host hostname and finally a playbook named *local.yml*.


OPTIONS
-------

*-d* 'DEST', *--directory=*'DEST'::

Directory to checkout repository into. If not provided, a subdirectory of
~/.ansible/pull/ will be used.

*-U* 'URL', *--url=*'URL'::

URL of the playbook repository to checkout.

*-C* 'CHECKOUT', *--checkout=*'CHECKOUT'::

Branch/Tag/Commit to checkout.  If not provided, uses default behavior
of module used to check out playbook repository.

*-f*, *--force*::

Force running of playbook even if unable to update playbook repository.  This
can be useful, for example, to enforce run-time state when a network
connection may not always be up or possible.

*-i* 'PATH', *--inventory=*'PATH'::

The 'PATH' to the inventory hosts file.  This can be a relative path within
the checkout.

*--purge*::

Purge the checkout after the playbook is run.

*-m* 'NAME', *--module-name=*'NAME'::

Module used to checkout playbook repository.  Defaults to git.

*-o*, *--only-if-changed*::

Run the playbook only if the repository has changed

AUTHOR
------

Ansible was originally written by Michael DeHaan. See the AUTHORS file
for a complete list of contributors.


COPYRIGHT
---------

Copyright © 2012, Michael DeHaan

Ansible is released under the terms of the GPLv3 License.


SEE ALSO
--------

*ansible*(1), *ansible-playbook*(1), *ansible-doc*(1)

Extensive documentation is available in the documentation site:
<http://docs.ansible.com>. IRC and mailing list info can be found
in file CONTRIBUTING.md, available in: <https://github.com/ansible/ansible>
