2012-03-10 03:50:00 +01:00
|
|
|
Downloads & Getting Started
|
|
|
|
===========================
|
2012-03-07 17:35:18 +01:00
|
|
|
|
2012-03-08 19:36:47 +01:00
|
|
|
Requirements
|
|
|
|
````````````
|
|
|
|
|
2012-03-09 04:50:00 +01:00
|
|
|
Requirements for Ansible are extremely minimal.
|
2012-03-08 19:36:47 +01:00
|
|
|
|
2012-04-13 04:23:16 +02:00
|
|
|
If you are running python 2.6 or later on the **overlord** machine (the machine
|
2012-03-18 17:55:18 +01:00
|
|
|
that you'll be talking to the remote machines from), you will need:
|
2012-03-08 19:36:47 +01:00
|
|
|
|
|
|
|
* ``paramiko``
|
|
|
|
* ``PyYAML``
|
|
|
|
* ``python-jinja2`` (for playbooks)
|
|
|
|
|
2012-04-13 04:23:16 +02:00
|
|
|
If you are only running Python 2.5, you will also need:
|
2012-03-08 19:36:47 +01:00
|
|
|
|
2012-04-13 04:23:16 +02:00
|
|
|
* The Python 2.5 backport of the ``multiprocessing`` module (`see here <http://code.google.com/p/python-multiprocessing/wiki/Install>`_)
|
2012-03-18 17:55:18 +01:00
|
|
|
* ``python-simplejson``
|
2012-03-08 19:36:47 +01:00
|
|
|
|
2012-03-18 17:55:18 +01:00
|
|
|
On the managed nodes, to use templates, you will also need:
|
2012-03-08 19:36:47 +01:00
|
|
|
|
2012-03-18 17:41:00 +01:00
|
|
|
* ``python-jinja2`` (you can easily install this using ansible)
|
2012-03-08 19:36:47 +01:00
|
|
|
|
2012-04-13 04:23:16 +02:00
|
|
|
And if you have any managed-nodes with python older than 2.6, you will also need:
|
|
|
|
|
|
|
|
* ``python-simplejson``
|
|
|
|
|
2012-03-08 19:36:47 +01:00
|
|
|
Getting Ansible
|
|
|
|
```````````````
|
|
|
|
|
2012-03-18 17:41:00 +01:00
|
|
|
As the project is still pretty new, you will probably want to clone
|
|
|
|
the git checkout, so you can keep up with all of the latest features,
|
2012-03-18 17:55:18 +01:00
|
|
|
and also easily contribute back to the project (if you want).
|
2012-03-18 17:41:00 +01:00
|
|
|
|
2012-03-17 22:00:41 +01:00
|
|
|
Instructions for installing from source are below.
|
2012-03-08 19:36:47 +01:00
|
|
|
|
2012-03-18 17:55:18 +01:00
|
|
|
You may also wish to follow the `Github project <https://github.com/ansible/ansible>`_ if
|
2012-03-17 22:00:41 +01:00
|
|
|
you have a github account. This is also where we keep the issue tracker for sharing
|
2012-03-18 17:55:18 +01:00
|
|
|
bugs and feature ideas.
|
2012-03-08 19:36:47 +01:00
|
|
|
|
2012-03-18 17:41:00 +01:00
|
|
|
Running From Checkout
|
|
|
|
+++++++++++++++++++++
|
|
|
|
|
|
|
|
Ansible is trivially easy to run from a checkout, root permissions are not required
|
|
|
|
to use it::
|
|
|
|
|
|
|
|
$ git clone git://github.com/ansible/ansible.git
|
|
|
|
$ cd ./ansible
|
|
|
|
$ source ./hacking/env-setup
|
2012-03-18 17:45:23 +01:00
|
|
|
|
2012-03-18 17:55:18 +01:00
|
|
|
You can optionally specify an inventory file (see doc:`patterns`) other than /etc/ansible/hosts::
|
2012-03-18 17:45:23 +01:00
|
|
|
|
2012-04-13 03:33:54 +02:00
|
|
|
$ echo "127.0.0.1" > ~/ansible_hosts
|
2012-03-18 17:41:00 +01:00
|
|
|
$ export ANSIBLE_HOSTS=~/ansible_hosts
|
|
|
|
|
2012-03-18 17:45:23 +01:00
|
|
|
Now let's test things::
|
|
|
|
|
|
|
|
$ ansible all -m ping --ask-pass
|
2012-03-18 17:41:00 +01:00
|
|
|
|
2012-03-08 19:36:47 +01:00
|
|
|
|
2012-03-17 22:00:41 +01:00
|
|
|
Make Install
|
|
|
|
++++++++++++
|
|
|
|
|
2012-03-18 17:55:18 +01:00
|
|
|
If you are not working from a distribution where Ansible is packaged yet, you can install Ansible
|
|
|
|
using "make install". This is done through `python-distutils`::
|
2012-03-08 19:36:47 +01:00
|
|
|
|
|
|
|
$ git clone git://github.com/ansible/ansible.git
|
|
|
|
$ cd ./ansible
|
|
|
|
$ sudo make install
|
|
|
|
|
2012-03-17 22:00:41 +01:00
|
|
|
|
2012-03-08 19:36:47 +01:00
|
|
|
Via RPM
|
|
|
|
+++++++
|
|
|
|
|
2012-03-18 17:55:18 +01:00
|
|
|
In the near future, pre-built packages will be available through your
|
|
|
|
distribution. Until that time, you can use the ``make rpm`` command to
|
|
|
|
build an RPM you can distribute and install::
|
2012-03-08 19:36:47 +01:00
|
|
|
|
|
|
|
$ git clone git://github.com/ansible/ansible.git
|
|
|
|
$ cd ./ansible
|
|
|
|
$ make rpm
|
2012-03-17 22:00:41 +01:00
|
|
|
$ sudo rpm -Uvh ~/rpmbuild/RPMS/noarch/ansible-*.noarch.rpm
|
|
|
|
|
2012-03-18 17:55:18 +01:00
|
|
|
Note that if you are tracking the upstream source (i.e. git), the RPM revision will not be
|
2012-03-17 22:00:41 +01:00
|
|
|
bumped with every source code change. To get around this, you can use
|
|
|
|
rpm `-Uvh` with `--force` when RPM tells you the package is still at the
|
2012-03-18 17:41:00 +01:00
|
|
|
same version. This is perfectly safe to do.
|
|
|
|
|
2012-03-18 17:55:18 +01:00
|
|
|
Other Package Distributions
|
|
|
|
+++++++++++++++++++++++++++
|
|
|
|
|
2012-04-18 01:54:23 +02:00
|
|
|
`Gentoo eBuilds are here <https://github.com/uu/ubuilds>`_
|
|
|
|
|
|
|
|
Debian packages are in progress.
|
|
|
|
|
|
|
|
If you would like to package Ansible for Homebrew, BSD, or others,
|
|
|
|
please stop by the mailing list and say hi.
|
2012-03-18 17:55:18 +01:00
|
|
|
|
2012-03-18 17:41:00 +01:00
|
|
|
|
|
|
|
Tagged Releases
|
|
|
|
+++++++++++++++
|
|
|
|
|
|
|
|
Tagged releases are available as tar.gz files from the Ansible github
|
|
|
|
project page:
|
|
|
|
|
|
|
|
* `Ansible/downloads <https://github.com/ansible/ansible/downloads>`_
|
|
|
|
|
|
|
|
At this point in Ansible's development, running or building from checkout is preferred
|
|
|
|
if you want access to all of the latest modules and improvements.
|
|
|
|
|
2012-03-08 19:36:47 +01:00
|
|
|
|
|
|
|
Your first commands
|
|
|
|
```````````````````
|
|
|
|
|
2012-03-18 17:55:18 +01:00
|
|
|
Now that you've installed Ansible, it's time to test it.
|
|
|
|
|
2012-03-17 22:00:41 +01:00
|
|
|
Edit (or create) /etc/ansible/hosts and put one or more remote systems in it, for
|
2012-03-09 20:39:29 +01:00
|
|
|
which you have your SSH key in ``authorized_keys``::
|
2012-03-08 19:36:47 +01:00
|
|
|
|
|
|
|
192.168.1.50
|
|
|
|
aserver.example.org
|
|
|
|
bserver.example.org
|
|
|
|
|
2012-03-09 05:05:52 +01:00
|
|
|
Set up SSH agent to avoid retyping passwords::
|
2012-03-08 19:36:47 +01:00
|
|
|
|
|
|
|
ssh-agent bash
|
|
|
|
ssh-add ~/.ssh/id_rsa
|
2012-03-09 05:05:52 +01:00
|
|
|
|
|
|
|
Now ping all your nodes::
|
|
|
|
|
2012-03-08 19:36:47 +01:00
|
|
|
ansible all -m ping
|
|
|
|
|
2012-03-09 05:05:52 +01:00
|
|
|
Now run a live command on all of your nodes::
|
|
|
|
|
2012-03-12 02:20:30 +01:00
|
|
|
ansible all -a "/bin/echo hello"
|
2012-03-09 05:05:52 +01:00
|
|
|
|
2012-03-09 20:39:29 +01:00
|
|
|
Congratulations. You've just contacted your nodes with Ansible. It's
|
2012-03-11 20:34:21 +01:00
|
|
|
now time to read some of the more real-world :doc:`examples`, and explore
|
2012-03-09 20:39:29 +01:00
|
|
|
what you can do with different modules, as well as the Ansible
|
2012-03-18 17:55:18 +01:00
|
|
|
:doc:`playbooks` language. Ansible is not just about running commands, it
|
|
|
|
also has powerful configuration management and deployment features. There's more to
|
|
|
|
explore, but you already have a fully working infrastructure!
|
2012-03-08 19:36:47 +01:00
|
|
|
|
2012-03-09 20:39:29 +01:00
|
|
|
|
|
|
|
.. seealso::
|
|
|
|
|
2012-03-11 20:34:21 +01:00
|
|
|
:doc:`examples`
|
|
|
|
Examples of basic commands
|
|
|
|
:doc:`playbooks`
|
|
|
|
Learning ansible's configuration management language
|
2012-03-31 15:55:37 +02:00
|
|
|
`Mailing List <http://groups.google.com/group/ansible-project>`_
|
|
|
|
Questions? Help? Ideas? Stop by the list on Google Groups
|
|
|
|
`irc.freenode.net <http://irc.freenode.net>`_
|
|
|
|
#ansible IRC chat channel
|
2012-03-11 20:34:21 +01:00
|
|
|
|