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-26 04:25:13 +02:00
|
|
|
Ansible is written for Python 2.6. If you are running Python 2.5 on an "Enterprise Linux" variant,
|
|
|
|
your distribution can easily install 2.6 (see instructions in the next section). Newer versions
|
|
|
|
of Linux and OS X should already have 2.6.
|
|
|
|
|
|
|
|
In additon to Python 2.6, you will want the following packages:
|
2012-03-08 19:36:47 +01:00
|
|
|
|
|
|
|
* ``paramiko``
|
|
|
|
* ``PyYAML``
|
2012-04-26 04:25:13 +02:00
|
|
|
* ``python-jinja2``
|
2012-03-08 19:36:47 +01:00
|
|
|
|
2012-04-26 04:25:13 +02:00
|
|
|
On the managed nodes, you only need Python 2.4 or later, but if you are are running less than Python 2.6 on them, you will
|
|
|
|
also need:
|
2012-03-08 19:36:47 +01:00
|
|
|
|
2012-04-26 04:25:13 +02:00
|
|
|
* ``python-simplejson``
|
2012-03-08 19:36:47 +01:00
|
|
|
|
2012-04-26 04:25:13 +02:00
|
|
|
NOTE: Ansible 0.4 will have ways to remote bootstrap this, using Ansible itself. Stay tuned.
|
2012-03-08 19:36:47 +01:00
|
|
|
|
2012-04-26 04:25:13 +02:00
|
|
|
Python 2.6 EPEL instructions for RHEL and CentOS 5
|
|
|
|
``````````````````````````````````````````````````
|
2012-03-08 19:36:47 +01:00
|
|
|
|
2012-04-26 04:25:13 +02:00
|
|
|
These distributions don't have Python 2.6 by default, but it is easily installable.
|
2012-04-13 04:23:16 +02:00
|
|
|
|
2012-04-26 04:25:13 +02:00
|
|
|
* If you have not already done so, `configure EPEL <http://fedoraproject.org/wiki/EPEL>`_
|
|
|
|
* yum install python26 python26-PyYAML python26-paramiko python26-jinja2
|
2012-04-13 04:23:16 +02:00
|
|
|
|
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-04-21 18:12:46 +02:00
|
|
|
Debian, Gentoo, Arch, Others
|
|
|
|
++++++++++++++++++++++++++++
|
2012-03-18 17:55:18 +01:00
|
|
|
|
2012-04-21 18:12:46 +02:00
|
|
|
Gentoo eBuilds are available `here <https://github.com/uu/ubuilds>`_
|
2012-04-18 01:54:23 +02:00
|
|
|
|
2012-04-21 18:12:46 +02:00
|
|
|
Debian package recipes are in progress -- see the source checkout, in the packaging/debian
|
|
|
|
directory.
|
2012-04-18 01:54:23 +02:00
|
|
|
|
2012-04-21 18:12:46 +02:00
|
|
|
An Arch PKGBUILD is available on `AUR <https://aur.archlinux.org/packages.php?ID=58621>`_
|
2012-04-20 21:34:44 +02:00
|
|
|
If you have python3 installed on Arch, you probably want to symlink python to python2.::
|
|
|
|
|
|
|
|
sudo ln -sf /usr/bin/python2 /usr/bin/python
|
|
|
|
|
2012-04-18 01:54:23 +02:00
|
|
|
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
|
|
|
|