salt/doc/topics/installation/index.rst

191 lines
5.6 KiB
ReStructuredText
Raw Normal View History

2012-10-04 21:30:13 +00:00
.. _installation:
============
Installation
============
This section contains instructions to install Salt. If you are setting up your
environment for the first time, you should install a Salt master on
a dedicated management server or VM, and then install a Salt minion on each
system that you want to manage using Salt. For now you don't need to worry
about your :ref:`architecture <architecture-overview>`, you can easily add
components and modify your configuration later without needing to reinstall
anything.
The general installation process is as follows:
1. Install a Salt master using the instructions for your platform or by running
the Salt bootstrap script. If you use the bootstrap script, be sure to
include the ``-M`` option to install the Salt master.
2. Make sure that your Salt minions can :ref:`find the Salt master
<master-dns>`.
3. Install the Salt minion on each system that you want to manage.
4. Accept the Salt :ref:`minion keys <using-salt-key>` after the Salt minion
connects.
After this, you should be able to run a simple command and receive returns from
all connected Salt minions.
.. code-block:: bash
salt '*' test.ping
Quick Install
-------------
On most distributions, you can set up a **Salt Minion** with the
:ref:`Salt bootstrap <salt-bootstrap>`.
2014-02-19 23:40:06 +00:00
Platform-specific Installation Instructions
-------------------------------------------
2014-02-19 23:40:06 +00:00
These guides go into detail how to install Salt on a given platform.
.. toctree::
:maxdepth: 1
arch
debian
eos
fedora
freebsd
gentoo
2015-05-07 07:48:27 +00:00
openbsd
osx
rhel
solaris
ubuntu
windows
2013-05-01 22:48:16 +00:00
suse
Initial Configuration
---------------------
.. toctree::
:maxdepth: 1
../../ref/configuration/index
Additional Installation Guides
------------------------------
.. toctree::
:maxdepth: 1
../tutorials/salt_bootstrap
../tutorials/firewall
../tutorials/preseed_key
../tutorials/walkthrough_macosx
../tutorials/rooted
../tutorials/standalone_minion
../tutorials/quickstart
Dependencies
------------
Salt should run on any Unix-like platform so long as the dependencies are met.
2012-07-01 16:28:37 +00:00
* `Python 2.6`_ >= 2.6 <3.0
* `msgpack-python`_ - High-performance message interchange format
* `YAML`_ - Python YAML bindings
* `Jinja2`_ - parsing Salt States (configurable in the master settings)
2014-02-19 23:40:06 +00:00
* `MarkupSafe`_ - Implements a XML/HTML/XHTML Markup safe string for Python
* `apache-libcloud`_ - Python lib for interacting with many of the popular
cloud service providers using a unified API
* `Requests`_ - HTTP library
* `Tornado`_ - Web framework and asynchronous networking library
* `futures`_ - Backport of the concurrent.futures package from Python 3.2
2014-12-11 03:35:09 +00:00
Depending on the chosen Salt transport, `ZeroMQ`_ or `RAET`_, dependencies
2014-06-17 14:53:29 +00:00
vary:
* ZeroMQ:
* `ZeroMQ`_ >= 3.2.0
* `pyzmq`_ >= 2.2.0 - ZeroMQ Python bindings
* `PyCrypto`_ - The Python cryptography toolkit
* RAET:
* `libnacl`_ - Python bindings to `libsodium`_
* `ioflo`_ - The flo programming interface raet and salt-raet is built on
* `RAET`_ - The worlds most awesome UDP protocol
2014-12-11 03:35:09 +00:00
Salt defaults to the `ZeroMQ`_ transport, and the choice can be made at install
2014-06-17 14:53:29 +00:00
time, for example:
.. code-block:: bash
2014-06-17 14:53:29 +00:00
python setup.py --salt-transport=raet install
2014-06-17 14:53:29 +00:00
2014-12-11 03:35:09 +00:00
This way, only the required dependencies are pulled by the setup script if need
2014-06-17 14:53:29 +00:00
be.
2014-12-11 03:35:09 +00:00
If installing using pip, the ``--salt-transport`` install option can be
2014-06-17 23:36:35 +00:00
provided like:
.. code-block:: bash
2014-06-17 23:36:35 +00:00
pip install --install-option="--salt-transport=raet" salt
.. note::
Salt does not bundle dependencies that are typically distributed as part of
the base OS. If you have unmet dependencies and are using a custom or
minimal installation, you might need to install some additional packages
from your OS vendor.
Optional Dependencies
---------------------
* `mako`_ - an optional parser for Salt States (configurable in the master
settings)
* gcc - dynamic `Cython`_ module compiling
.. _`Python 2.6`: http://python.org/download/
.. _`ZeroMQ`: http://zeromq.org/
.. _`pyzmq`: https://github.com/zeromq/pyzmq
.. _`msgpack-python`: https://pypi.python.org/pypi/msgpack-python/
.. _`PyCrypto`: https://www.dlitz.net/software/pycrypto/
2014-02-20 10:38:04 +00:00
.. _`YAML`: http://pyyaml.org/
.. _`Jinja2`: http://jinja.pocoo.org/
2014-02-20 10:38:04 +00:00
.. _`MarkupSafe`: https://pypi.python.org/pypi/MarkupSafe
.. _`mako`: http://www.makotemplates.org/
2014-02-20 10:38:04 +00:00
.. _`Cython`: http://cython.org/
2014-02-26 20:28:13 +00:00
.. _`apache-libcloud`: http://libcloud.apache.org
.. _`Requests`: http://docs.python-requests.org/en/latest
.. _`Tornado`: http://www.tornadoweb.org/en/stable/
.. _`libnacl`: https://github.com/saltstack/libnacl
.. _`ioflo`: https://github.com/ioflo/ioflo
.. _`RAET`: https://github.com/saltstack/raet
.. _`libsodium`: https://github.com/jedisct1/libsodium
.. _`futures`: https://github.com/agronholm/pythonfutures
Upgrading Salt
--------------
2014-05-25 04:42:00 +00:00
When upgrading Salt, the master(s) should always be upgraded first. Backward
compatibility for minions running newer versions of salt than their masters is
not guaranteed.
2014-05-25 04:42:00 +00:00
Whenever possible, backward compatibility between new masters and old minions
will be preserved. Generally, the only exception to this policy is in case of
a security vulnerability.
.. seealso::
:ref:`Installing Salt for development <installing-for-development>` and
contributing to the project.
Building Packages using Salt Pack
---------------------------------
Salt-pack is an open-source package builder for most commonly used Linux
platforms, for example: Redhat/CentOS and Debian/Ubuntu families, utilizing
SaltStack states and execution modules to build Salt and a specified set of
dependencies, from which a platform specific repository can be built.
https://github.com/saltstack/salt-pack