Refactor install guide
This commit is contained in:
parent
824a8b9136
commit
74e77bf1d8
1 changed files with 65 additions and 112 deletions
|
@ -1,31 +1,41 @@
|
||||||
Getting Started
|
Installation
|
||||||
===============
|
============
|
||||||
|
|
||||||
.. contents::
|
.. contents::
|
||||||
:depth: 2
|
:depth: 2
|
||||||
|
|
||||||
Requirements
|
What Will Be Installed
|
||||||
````````````
|
``````````````````````
|
||||||
|
|
||||||
Requirements for Ansible are extremely minimal.
|
Ansible by default manages machines over the SSH protocol.
|
||||||
|
|
||||||
For the central Ansible machine, you will need an environment with Python 2.6 or greater installed. If you are running Python 2.5 on an "Enterprise Linux 5" variant, we'll show you how to add 2.6 to your distribution, but most platforms already have a new enough Python. (Note that Windows is not supported as the Ansible control machine.)
|
Once ansible is installed, it will not add a database, and there will be no daemons to start or keep running. You only need to install it on one machine (which could easily be a laptop) and it can manage an entire fleet of remote machines from that central point. When Ansible manages remote machines, it does not leave software installed or running on them, so there's no real question about how to upgrade Ansible when moving to a new version.
|
||||||
|
|
||||||
You will also want the following Python modules (installed via pip or perhaps via your OS package manager via slightly different names):
|
What Version To Pick?
|
||||||
|
`````````````````````
|
||||||
|
|
||||||
* ``paramiko``
|
Because it runs so easily from source and does not require any installation of software on remote
|
||||||
* ``PyYAML``
|
machines, many users will actually track the development version.
|
||||||
* ``jinja2``
|
|
||||||
|
|
||||||
If you are using RHEL or CentOS 5, Python is version 2.4 by default, but you can get Python 2.6 installed easily. `Use EPEL <http://fedoraproject.org/wiki/EPEL>`_ and install these dependencies as follows:
|
If you are wishing to run the latest released version of Ansible and you are running Red Hat Enterprise Linux (TM), CentOS, Fedora, Debian, or Ubuntu, we recommend using our OS package manager.
|
||||||
|
|
||||||
.. code-block:: bash
|
For other installation options, we recommend installing via "pip", which is the Python package manager, though other options are also available.
|
||||||
|
|
||||||
$ yum install python26 python26-PyYAML python26-paramiko python26-jinja2
|
If you wish to track the development release to use and test the latest features, we will share
|
||||||
|
information about running from source. It's not neccessary to install the program to run from source.
|
||||||
|
|
||||||
|
Control Machine Requirements
|
||||||
|
````````````````````````````
|
||||||
|
|
||||||
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
|
Currently Ansible can be from any machine with Python 2.6 installed (Windows isn't supported for the control machine).
|
||||||
also need:
|
|
||||||
|
This includes Red Hat, Debian, CentOS, OS X, any of the BSDs, and so on.
|
||||||
|
|
||||||
|
|
||||||
|
Remote Node Requirements
|
||||||
|
````````````````````````
|
||||||
|
|
||||||
|
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:
|
||||||
|
|
||||||
* ``python-simplejson``
|
* ``python-simplejson``
|
||||||
|
|
||||||
|
@ -72,12 +82,18 @@ You may also wish to follow the `Github project <https://github.com/ansible/ansi
|
||||||
you have a github account. This is also where we keep the issue tracker for sharing
|
you have a github account. This is also where we keep the issue tracker for sharing
|
||||||
bugs and feature ideas.
|
bugs and feature ideas.
|
||||||
|
|
||||||
|
Running From Source
|
||||||
Running From Checkout
|
+++++++++++++++++++
|
||||||
+++++++++++++++++++++
|
|
||||||
|
|
||||||
Ansible is trivially easy to run from a checkout, root permissions are not required
|
Ansible is trivially easy to run from a checkout, root permissions are not required
|
||||||
to use it:
|
to use it and there is no software to actually install for Ansible itself. No daemons
|
||||||
|
or database setup are required. Because of this, many users in our community use the
|
||||||
|
development version of Ansible all of the time, so they can take advantage of new features
|
||||||
|
when they are implemented, and also easily contribute to the project. Because there is
|
||||||
|
nothing to install, following the development version is significantly easier than most
|
||||||
|
open source projects.
|
||||||
|
|
||||||
|
To install from source.
|
||||||
|
|
||||||
.. code-block:: bash
|
.. code-block:: bash
|
||||||
|
|
||||||
|
@ -85,11 +101,13 @@ to use it:
|
||||||
$ cd ./ansible
|
$ cd ./ansible
|
||||||
$ source ./hacking/env-setup
|
$ source ./hacking/env-setup
|
||||||
|
|
||||||
You will want to install the dependencies needed by Ansible with pip if going from a checkout::
|
If you don't have pip installed in your version of Python, install pip::
|
||||||
|
|
||||||
# on Ubuntu, for example:
|
$ sudo easy_install pip
|
||||||
apt-get install python-dev python-pip
|
|
||||||
pip install PyYAML Jinja2 paramiko
|
Ansible also uses the the following Python modules that need to be installed::
|
||||||
|
|
||||||
|
$ sudo pip install paramiko PyYAML jinja2
|
||||||
|
|
||||||
Once running the env-setup script you'll be running from checkout and the default inventory file
|
Once running the env-setup script you'll be running from checkout and the default inventory file
|
||||||
will be /etc/ansible/hosts. You can optionally specify an inventory file (see :doc:`patterns`)
|
will be /etc/ansible/hosts. You can optionally specify an inventory file (see :doc:`patterns`)
|
||||||
|
@ -102,70 +120,32 @@ other than /etc/ansible/hosts:
|
||||||
|
|
||||||
You can read more about the inventory file in later parts of the manual.
|
You can read more about the inventory file in later parts of the manual.
|
||||||
|
|
||||||
Now let's test things:
|
Now let's test things with a ping command:
|
||||||
|
|
||||||
.. code-block:: bash
|
.. code-block:: bash
|
||||||
|
|
||||||
$ ansible all -m ping --ask-pass
|
$ ansible all -m ping --ask-pass
|
||||||
|
|
||||||
|
You can also use "sudo make install" if you wish.
|
||||||
|
|
||||||
Make Install
|
Latest Release Via Yum
|
||||||
++++++++++++
|
++++++++++++++++++++++
|
||||||
|
|
||||||
If you are not working from a distribution where Ansible is packaged yet, you can install Ansible
|
RPMs are available from yum for `EPEL
|
||||||
using "make install". This is done through `python-distutils`:
|
|
||||||
|
|
||||||
.. code-block:: bash
|
|
||||||
|
|
||||||
$ git clone git://github.com/ansible/ansible.git
|
|
||||||
$ cd ./ansible
|
|
||||||
$ sudo make install
|
|
||||||
|
|
||||||
Via Pip
|
|
||||||
+++++++
|
|
||||||
|
|
||||||
Are you a python developer?
|
|
||||||
|
|
||||||
Ansible can be installed via Pip, but when you do so, it will ask to install other dependencies used for
|
|
||||||
things like 'fireball' mode that you might not need::
|
|
||||||
|
|
||||||
$ sudo easy_install pip
|
|
||||||
$ sudo pip install ansible
|
|
||||||
|
|
||||||
Readers that use virtualenv can also install Ansible under virtualenv. Do not use easy_install to install
|
|
||||||
ansible directly.
|
|
||||||
|
|
||||||
Via RPM
|
|
||||||
+++++++
|
|
||||||
|
|
||||||
RPMs for the last Ansible release are available for `EPEL
|
|
||||||
<http://fedoraproject.org/wiki/EPEL>`_ 6 and currently supported
|
<http://fedoraproject.org/wiki/EPEL>`_ 6 and currently supported
|
||||||
Fedora distributions. RPMs for openSUSE can be found via the
|
Fedora distributions.
|
||||||
`openSUSE Software Portal <http://software.opensuse.org/package/ansible>`_
|
|
||||||
(in the systemsmanagement Project) for all currently supported
|
|
||||||
openSUSE and SLES distributions.
|
|
||||||
|
|
||||||
Ansible itself can manage earlier operating
|
Ansible itself can manage earlier operating
|
||||||
systems that contain python 2.4 or higher.
|
systems that contain python 2.4 or higher (so also EL5).
|
||||||
|
|
||||||
If you are using RHEL or CentOS and have not already done so, `configure EPEL <http://fedoraproject.org/wiki/EPEL>`_
|
Fedora users can install Ansible directly, though if you are using RHEL or CentOS and have not already done so, `configure EPEL <http://fedoraproject.org/wiki/EPEL>`_
|
||||||
|
|
||||||
.. code-block:: bash
|
.. code-block:: bash
|
||||||
|
|
||||||
# install the epel-release RPM if needed on CentOS, RHEL, or Scientific Linux
|
# install the epel-release RPM if needed on CentOS, RHEL, or Scientific Linux
|
||||||
$ sudo yum install ansible
|
$ sudo yum install ansible
|
||||||
|
|
||||||
For openSUSE and SUSE Linux Enterprise, add the `systemsmanagement repository <http://download.opensuse.org/repositories/systemsmanagement/>`_
|
You can also build an RPM yourself. From the root of a checkout or tarball, use the ``make rpm`` command to build an RPM you can distribute and install. Make sure you have ``rpm-build``, ``make``, and ``python2-devel`` installed.
|
||||||
for your distribution:
|
|
||||||
|
|
||||||
.. code-block:: bash
|
|
||||||
|
|
||||||
# replace $dist with the correct distribution found here: http://download.opensuse.org/repositories/systemsmanagement/
|
|
||||||
$ sudo zypper ar -f http://download.opensuse.org/repositories/systemsmanagement/$dist/systemsmanagement.repo
|
|
||||||
$ sudo zypper install ansible
|
|
||||||
|
|
||||||
You can also use the ``make rpm`` command to build an RPM you can distribute and install.
|
|
||||||
Make sure you have ``rpm-build``, ``make``, and ``python2-devel`` installed.
|
|
||||||
|
|
||||||
.. code-block:: bash
|
.. code-block:: bash
|
||||||
|
|
||||||
|
@ -174,31 +154,8 @@ Make sure you have ``rpm-build``, ``make``, and ``python2-devel`` installed.
|
||||||
$ make rpm
|
$ make rpm
|
||||||
$ sudo rpm -Uvh ~/rpmbuild/ansible-*.noarch.rpm
|
$ sudo rpm -Uvh ~/rpmbuild/ansible-*.noarch.rpm
|
||||||
|
|
||||||
Via MacPorts on OS X
|
Latest Releases Via Apt (Ubuntu)
|
||||||
++++++++++++++++++++
|
++++++++++++++++++++++++++++++++
|
||||||
|
|
||||||
Ansible is easily run or installed from source, but you can also use MacPorts.
|
|
||||||
To install the stable version of Ansible from MacPorts, run:
|
|
||||||
|
|
||||||
.. code-block:: bash
|
|
||||||
|
|
||||||
$ sudo port install ansible
|
|
||||||
|
|
||||||
If you wish to install the latest build via the MacPorts system from a
|
|
||||||
git checkout, run:
|
|
||||||
|
|
||||||
.. code-block:: bash
|
|
||||||
|
|
||||||
$ git clone git://github.com/ansible/ansible.git
|
|
||||||
$ cd ./ansible/packaging/macports
|
|
||||||
$ sudo port install
|
|
||||||
|
|
||||||
Please refer to the documentation at <http://www.macports.org> for
|
|
||||||
further information on using Portfiles with MacPorts.
|
|
||||||
|
|
||||||
|
|
||||||
Ubuntu and Debian
|
|
||||||
+++++++++++++++++
|
|
||||||
|
|
||||||
Ubuntu builds are available `in a PPA here <https://launchpad.net/~rquillo/+archive/ansible>`_.
|
Ubuntu builds are available `in a PPA here <https://launchpad.net/~rquillo/+archive/ansible>`_.
|
||||||
|
|
||||||
|
@ -206,6 +163,8 @@ Once configured,
|
||||||
|
|
||||||
.. code-block:: bash
|
.. code-block:: bash
|
||||||
|
|
||||||
|
$ sudo add-apt-repository ppa:rquillo/ansible
|
||||||
|
$ sudo apt-get update
|
||||||
$ sudo apt-get install ansible
|
$ sudo apt-get install ansible
|
||||||
|
|
||||||
Debian/Ubuntu packages can also be built from the source checkout, run:
|
Debian/Ubuntu packages can also be built from the source checkout, run:
|
||||||
|
@ -216,30 +175,24 @@ Debian/Ubuntu packages can also be built from the source checkout, run:
|
||||||
|
|
||||||
You may also wish to run from source to get the latest, which is covered above.
|
You may also wish to run from source to get the latest, which is covered above.
|
||||||
|
|
||||||
Gentoo, Arch, Others
|
Latest Releases Via Pip
|
||||||
++++++++++++++++++++
|
+++++++++++++++++++++++
|
||||||
|
|
||||||
Gentoo eBuilds are in portage, version 1.0 `coming soon <https://bugs.gentoo.org/show_bug.cgi?id=461830>`_.
|
Ansible can be installed via "pip", the Python package manager. If 'pip' isn't already available in
|
||||||
|
your version of Python, you can get pip by::
|
||||||
|
|
||||||
.. code-block:: bash
|
$ sudo easy_install pip
|
||||||
|
|
||||||
$ emerge ansible
|
Then install Ansible with::
|
||||||
|
|
||||||
|
$ sudo pip install ansible
|
||||||
|
|
||||||
An Arch PKGBUILD is available on `AUR <https://aur.archlinux.org/packages.php?ID=58621>`_
|
Readers that use virtualenv can also install Ansible under virtualenv, though we'd recommend to not worry about it and just install Ansible globally. Do not use easy_install to install ansible directly.
|
||||||
If you have python3 installed on Arch, you probably want to symlink python to python2:
|
|
||||||
|
|
||||||
.. code-block:: bash
|
Tarballs of Tagged Releases
|
||||||
|
+++++++++++++++++++++++++++
|
||||||
|
|
||||||
$ sudo ln -sf /usr/bin/python2 /usr/bin/python
|
Packaging Ansible or wanting to build a local package yourself, but don't want to do a git checkout? Tarballs of releases are available on the ansibleworks.com page.
|
||||||
|
|
||||||
You should also set a 'ansible_python_interpreter' inventory variable (see :doc:`patterns`) for hosts that have python
|
|
||||||
pointing to python3, so the right python can be found on the managed nodes.
|
|
||||||
|
|
||||||
Tagged Releases
|
|
||||||
+++++++++++++++
|
|
||||||
|
|
||||||
Tarballs of releases are available on the ansibleworks.com page.
|
|
||||||
|
|
||||||
* `Ansible/downloads <http://ansibleworks.com/releases>`_
|
* `Ansible/downloads <http://ansibleworks.com/releases>`_
|
||||||
|
|
||||||
|
|
Loading…
Reference in a new issue