Getting Started =============== How to download ansible and get started using it .. seealso:: :doc:`examples` Examples of basic commands :doc:`playbooks` Learning ansible's configuration management language Requirements ```````````` Requirements for Ansible are extremely minimal. If you are running python 2.6 on the **overlord** machine (the machine that you'll be talking to the other machines from), 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 `_ * ``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 the ansible.github.com project only) Getting Ansible ``````````````` Tagged releases are available as tar.gz files from the Ansible github project page: * `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 Set up SSH agent to avoid retyping passwords:: ssh-agent bash ssh-add ~/.ssh/id_rsa Now ping all your nodes:: ansible all -m ping Now run a live command on all of your nodes:: ansible all /bin/echo hello Congratulations. You've just contacted your nodes with Ansible. It's now time to read some of the more real-world examples, and explore what you can do with different modules, as well as the Ansible playbooks language. Ansible is not just about running commands, but you already have a working infrastructure!