2012-05-13 17:00:02 +02:00
|
|
|
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-05-10 06:58:27 +02:00
|
|
|
If you are interested in using all the latest features, you may wish to keep up to date
|
|
|
|
with the development branch of the git checkout. This also makes it easiest to contribute
|
|
|
|
back to the project.
|
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-05-10 06:58:27 +02:00
|
|
|
Ansible's release cycles are about one month long. Due to this
|
|
|
|
short release cycle, any bugs will generally be fixed in the next release versus maintaining
|
|
|
|
backports on the stable branch.
|
|
|
|
|
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-05-10 06:58:27 +02: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
|
2012-05-10 06:58:27 +02:00
|
|
|
$ git checkout -t origin/devel
|
2012-03-18 17:41:00 +01:00
|
|
|
$ cd ./ansible
|
|
|
|
$ source ./hacking/env-setup
|
2012-03-18 17:45:23 +01:00
|
|
|
|
2012-05-14 02:04:53 +02: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
|
2012-05-10 06:58:27 +02:00
|
|
|
$ git checkout -t origin/devel
|
2012-03-08 19:36:47 +01:00
|
|
|
$ cd ./ansible
|
|
|
|
$ sudo make install
|
|
|
|
|
2012-03-17 22:00:41 +01:00
|
|
|
|
2012-03-08 19:36:47 +01:00
|
|
|
Via RPM
|
|
|
|
+++++++
|
|
|
|
|
2012-05-10 06:58:27 +02:00
|
|
|
RPMs for the last Ansible release are available for `EPEL <http://fedoraproject.org/wiki/EPEL>`_ 6 and currently supported
|
|
|
|
Fedora distributions.
|
|
|
|
|
|
|
|
# install the epel-release RPM if needed on CentOS, RHEL, or Scientific Linux
|
|
|
|
$ sudo yum install ansible
|
|
|
|
|
|
|
|
You can also use the ``make rpm`` command to
|
2012-03-18 17:55:18 +01:00
|
|
|
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
|
2012-05-02 07:35:02 +02:00
|
|
|
``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-05-10 06:58:27 +02:00
|
|
|
Debian package recipes can be built from the source checkout, run::
|
|
|
|
|
|
|
|
make debian
|
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-05-14 02:04:53 +02:00
|
|
|
If you have python3 installed on Arch, you probably want to symlink python to python2::
|
2012-04-20 21:34:44 +02:00
|
|
|
|
|
|
|
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,
|
2012-05-10 06:58:27 +02:00
|
|
|
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>`_
|
|
|
|
|
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
|
|
|
|