Getting Started
===============

How to download ansible and get started using it

.. seealso::

   :doc:`examples`
       Examples of basic commands
   :doc:`YAMLScripts`
       Complete documentation of the YAML syntax `ansible` understands for playbooks.
   :doc:`playbooks`
       Learning ansible's configuration management language
   :doc:`modules`
       Learn about modules that ship with ansible

Requirements
````````````

Requirements are extremely minimal.

If you are running python 2.6 on the **overlord** machine, you will
need:

* ``paramiko``
* ``PyYAML``
* ``python-jinja2`` (for playbooks)

If you are running less than Python 2.6, you will also need:

* The Python 2.4 or 2.5 backport of the ``multiprocessing`` module

  - `Installation and Testing Instructions <http://code.google.com/p/python-multiprocessing/wiki/Install>`_

* ``simplejson``

On the managed nodes, to use templating, you will need:

* ``python-jinja2`` (you can install this with ansible)

Developer Requirements
``````````````````````

For developers, you may wish to have:

* ``asciidoc`` (for building manpage documentation)
* ``python-sphinx`` (for building content for ansible.github.com)


Getting Ansible
```````````````

Tagged releases are available as tar.gz files from the Ansible github
project page:

* `Ansible/downloads <https://github.com/ansible/ansible/downloads>`_

You can also clone the git repository yourself and install Ansible in
one of two ways:


Python Distutils
++++++++++++++++

You can also install Ansible using Python Distutils::

    $ git clone git://github.com/ansible/ansible.git
    $ cd ./ansible
    $ sudo make install

Via RPM
+++++++

In the near future, pre-built RPMs will be available through your distribution. Until that time you
can use the ``make rpm`` command::

    $ git clone git://github.com/ansible/ansible.git
    $ cd ./ansible
    $ make rpm
    $ sudo rpm -Uvh ~/rpmbuild/RPMS/noarch/ansible-1.0-1.noarch.rpm

Your first commands
```````````````````

Edit /etc/ansible/hosts and put one or more remote systems in it, for which you have your SSH
key in ``authorized_keys``::

    192.168.1.50
    aserver.example.org
    bserver.example.org

Now try this:

    ssh-agent bash
    ssh-add ~/.ssh/id_rsa
    ansible all -m ping

Congratulations.  You've just contacted your nodes with Ansible.  It's now time to read some
of the more real-world examples.

