Merge branch 'doc-customhome' into develop

This commit is contained in:
Seth House 2012-02-08 03:20:49 -07:00
commit f2e50d9579
18 changed files with 215 additions and 854 deletions

View File

@ -1,83 +0,0 @@
{% extends "layout.html" %}
{% set title = 'Overview' %}
{% block body %}
<div class="introduction">
<h1>What is Salt?</h1>
<p>Salt is a powerful remote execution manager that can be used to
administer servers in a fast and efficient way.</p>
<p>Salt allows commands to be executed across large groups of servers.
This means systems can be easily managed, but data can also be easily
gathered. Quick introspection into running systems becomes a
reality.</p>
<p>Remote execution is usually used to set up a certain state on a
remote system. Salt addresses this problem as well, the salt state
system uses salt state files to define the state a server needs to be
in.</p>
<p>Between the remote execution system, and state management Salt
addresses the backbone of cloud and data center management.</p>
<h2>The Salt stack</h2>
<dl class="feat-link">
<dt>Remote execution</dt>
<dd>Remote execution is the core of modern cloud and infrastructure
solutions, and Salt offers the fastest and easiest remote execution
system available today</dd>
</dl>
<dl class="feat-link">
<dt>Configuration management</dt>
<dd>Salt offers the world simplest, yet most powerful, flexible and
scalable configuration management system</dd>
</dl>
<dl class="feat-link">
<dt>Highly scalable</dt>
<dd>Easily manage tens or hundreds or even tens of thousands of
nodes with a multi-tiered management infrastructure.</dd>
</dl>
<dl class="feat-link">
<dt>Highly configurable</dt>
<dd>Receive responses where, how, and when you want.</dd>
</dl>
</div>
<div class="documentation">
<h2>Documentation</h2>
<dl class="doc-link">
<dt class="doc-tutorials"><a href="{{ pathto("home") }}#docs-tutorials">Tutorials</a></dt>
<dd>Get started with each Salt component in five minutes or less</dd>
</dl>
<dl class="doc-link">
<dt class="doc-fulldocs"><a href="{{ pathto("home") }}#docs-reference">Documentation</a></dt>
<dd>Comprehensive and in-depth explanations and reference;
<br>Offline?
<a href="{{ github_downloads }}/salt-{{ version }}.pdf" class="doc-pdf">
<img src="{{ pathto('_static/page_white_acrobat.png', 1) }}">
PDF</a>
| <a href="{{ github_downloads }}/salt-{{ version }}.epub" class="doc-epub">
<img src="{{ pathto('_static/book_open.png', 1) }}">
ePUB</a>
</dd>
</dl>
<dl class="doc-link">
<dt class="doc-offline"><a href="{{ pathto("contents") }}">Contents</a></dt>
<dd>An exhaustive (and exhausting) overview of all the Salt documentation</dd>
</dl>
<dl class="doc-link">
<dt class="doc-fulldocs"><a href="{{ pathto("py-modindex") }}">Module index</a></dt>
<dd>Quickly jump to the reference for individual modules, states, and more</dd>
</dl>
</div>
{% endblock %}

View File

@ -1,32 +0,0 @@
<h3>Download</h3>
{% if version.endswith('pre') %}
<p>This documentation is for version <b>{{ version }}</b>, which is not released yet.</p>
<p>You can download it from the <a href="{{ github_base }}">GitHub repository</a>.</p>
{% else %}
<p>Current version: <b>{{ version }}</b></p>
<p>Get the Salt tarball from the <a href="{{ github_downloads }}">GitHub downloads page</a>,
or <a href="{{ pathto("topics/installation") }}">packages are available</a> for some OSes.</p>
<p><a href="{{ pathto("topics/releases/index") }}">Read the release announcement.</a></p>
{#
<p>Latest <a href="http://saltstack.org/latest">development version docs</a> are also available.</p>
#}
{% endif %}
<h3>Recent updates</h3>
<p>Our IRC channel is now on the popular Freenode network. See you there!</p>
<p>The Salt git repository can now be found at the new saltstack GitHub organization.
<a href="http://red45.wordpress.com/2011/11/15/little-move-big-progress/">Read why.</a></p>
<h3>Get help. Get involved.</h3>
<form action="http://groups.google.com/group/salt-users/boxsubscribe">
<p>Join the <a href="https://groups.google.com/forum/#!forum/salt-users">mailing list</a>:
<br>
<input type="email" name="email" placeholder="Email address">
<button type="submit" name="sub">Subscribe</button></p>
</form>
<p>Join us via IRC in the <tt>#salt</tt> channel via
<a href="http://webchat.freenode.net/?channels=salt&uio=Mj10cnVlJjk9dHJ1ZSYxMD10cnVl83">Freenode's webchat</a>.</p>
<p><a href="{{ github_issues }}">Search bugs</a> or file one.</p>

View File

@ -1,6 +1,6 @@
{% extends "!layout.html" %}
{% block rootrellink %}
<li><a href="{{ pathto('index') }}">Salt home</a>&nbsp;|&nbsp;</li>
<li><a href="{{ pathto('home') }}">Documentation</a> &raquo;</li>
{% endblock %}
{%- block rootrellink %}
<li><a href="http://saltstack.org">&laquo; SaltStack.org</a>&nbsp;|&nbsp;</li>
<li><a href="{{ pathto('index') }}">Documentation home</a></li>
{%- endblock %}

View File

@ -1,186 +0,0 @@
{%- block doctype -%}
<!DOCTYPE html>
{%- endblock %}
{%- set reldelim1 = reldelim1 is not defined and ' &raquo;' or reldelim1 %}
{%- set reldelim2 = reldelim2 is not defined and ' |' or reldelim2 %}
{%- set render_sidebar = (not embedded) and (not theme_nosidebar|tobool) and (sidebars != []) %}
{%- set url_root = pathto('', 1) %}
{# XXX necessary? #}
{%- if url_root == '#' %}{% set url_root = '' %}{% endif %}
{%- if not embedded and docstitle %}
{%- set titlesuffix = " &mdash; "|safe + docstitle|e %}
{%- else %}
{%- set titlesuffix = "" %}
{%- endif %}
{%- macro relbar() %}
<div class="related">
<h3>{{ _('Navigation') }}</h3>
<ul class="rel-main">
{%- block rootrellink %}
<li><a href="{{ pathto('index') }}">Salt home</a>&nbsp;|&nbsp;</li>
<li><a href="{{ pathto('home') }}">Documentation</a> &raquo;</li>
{%- endblock %}
</ul>
<ul class="rel-extra">
{%- for rellink in rellinks|reverse %}
<li>
<a href="{{ pathto(rellink[0]) }}" title="{{ rellink[1]|striptags|e }}">{{ rellink[3] }}</a>
{%- if not loop.last %}{{ reldelim2 }}{% endif %}</li>
{%- endfor %}
{%- block relbaritems %} {% endblock %}
</ul>
</div>
{%- endmacro %}
{%- macro sidebar() %}
{%- if render_sidebar %}
<div class="sidebar">
{%- block sidebarlogo %}{%- endblock %}
{%- for sidebartemplate in sidebars|default(html_default_sidebars, true) %}
{%- include sidebartemplate %}
{%- endfor %}
</div>
{%- endif %}
{%- endmacro %}
{%- macro script() %}
<script>
var DOCUMENTATION_OPTIONS = {
URL_ROOT: '{{ url_root }}',
VERSION: '{{ release|e }}',
COLLAPSE_INDEX: false,
FILE_SUFFIX: '{{ '' if no_search_suffix else file_suffix }}',
HAS_SOURCE: {{ has_source|lower }}
};
</script>
{%- for scriptfile in script_files %}
<script src="{{ pathto(scriptfile, 1) }}"></script>
{%- endfor %}
{%- endmacro %}
{%- macro css() %}
<link rel="stylesheet" href="http://yui.yahooapis.com/combo?3.3.0/build/cssreset/reset-min.css&3.3.0/build/cssfonts/fonts-min.css&3.3.0/build/cssbase/base-min.css">
{% if style %}
<link rel="stylesheet" href="{{ pathto('_static/' + style, 1) }}">
{% endif %}
<link rel="stylesheet" href="{{ pathto('_static/pygments.css', 1) }}">
{%- endmacro %}
<html lang="en" class="no-js">
<head>
<meta charset="{{ encoding }}">
{{ metatags }}
{%- block htmltitle %}
<title>{{ title|striptags|e }}{{ titlesuffix }}</title>
{%- endblock %}
{{ css() }}
{%- if not embedded %}
{{ script() }}
{%- if use_opensearch %}
<link rel="search" type="application/opensearchdescription+xml"
title="{% trans docstitle=docstitle|e %}Search within {{ docstitle }}{% endtrans %}"
href="{{ pathto('_static/opensearch.xml', 1) }}">
{%- endif %}
{%- if favicon %}
<link rel="shortcut icon" href="{{ pathto('_static/' + favicon, 1) }}">
{%- endif %}
{%- endif %}
{%- block linktags %}
{%- if hasdoc('about') %}
<link rel="author" title="{{ _('About these documents') }}" href="{{ pathto('about') }}">
{%- endif %}
{%- if hasdoc('genindex') %}
<link rel="index" title="{{ _('Index') }}" href="{{ pathto('genindex') }}">
{%- endif %}
{%- if hasdoc('search') %}
<link rel="search" title="{{ _('Search') }}" href="{{ pathto('search') }}">
{%- endif %}
{%- if hasdoc('copyright') %}
<link rel="copyright" title="{{ _('Copyright') }}" href="{{ pathto('copyright') }}">
{%- endif %}
<link rel="top" title="{{ docstitle|e }}" href="{{ pathto('index') }}">
{%- if parents %}
<link rel="up" title="{{ parents[-1].title|striptags|e }}" href="{{ parents[-1].link|e }}">
{%- endif %}
{%- if next %}
<link rel="next" title="{{ next.title|striptags|e }}" href="{{ next.link|e }}">
{%- endif %}
{%- if prev %}
<link rel="prev" title="{{ prev.title|striptags|e }}" href="{{ prev.link|e }}">
{%- endif %}
{%- endblock %}
{%- block extrahead %} {% endblock %}
{%- block analytics %}
<script type="text/javascript">
var _gaq = _gaq || [];
_gaq.push(['_setAccount', 'UA-26984928-1']);
_gaq.push(['_trackPageview']);
(function() {
var ga = document.createElement('script'); ga.type = 'text/javascript'; ga.async = true;
ga.src = ('https:' == document.location.protocol ? 'https://ssl' : 'http://www') + '.google-analytics.com/ga.js';
var s = document.getElementsByTagName('script')[0]; s.parentNode.insertBefore(ga, s);
})();
</script>
{% endblock %}
</head>
<body id="saltstack.org"><div class="container">
{% block header %}
<div class="header">
<h1 class="logo"><a href="{{ pathto('index') }}">
<img src="{{ pathto('_static/salt-horiz.png', 1) }}" alt="Salt Stack">
</a></h1>
</div>
{% endblock %}
{%- block relbar1 %}{{ relbar() }}{% endblock %}
{%- block content %}
{%- block sidebar1 %}{% endblock %}
<div class="content">
<div class="document">
{%- block document %}
{% block body %} {% endblock %}
{%- endblock %}
</div>
{%- block sidebar2 %}{{ sidebar() }}{% endblock %}
</div>
{%- endblock %}
{%- block relbar2 %}{{ relbar() }}{% endblock %}
{%- block footer %}
<div class="footer">
{%- if show_copyright %}
{%- if hasdoc('copyright') %}
{% trans path=pathto('copyright'), copyright=copyright|e %}&copy; <a href="{{ path }}">Copyright</a> {{ copyright }}.{% endtrans %}
{%- else %}
{% trans copyright=copyright|e %}&copy; Copyright {{ copyright }}.{% endtrans %}
{%- endif %}
{%- endif %}
{%- if last_updated %}
{% trans last_updated=last_updated|e %}Last updated on {{ last_updated }}.{% endtrans %}
{%- endif %}
{%- if show_sphinx %}
{% trans sphinx_version=sphinx_version|e %}Created using <a href="http://sphinx.pocoo.org/">Sphinx</a> {{ sphinx_version }}.{% endtrans %}
{%- endif %}
</div>
{%- endblock %}
</body>
</html>

View File

@ -1,273 +0,0 @@
body {
background-color: #eeeeec;
font-size: 100%; line-height: 1.25; text-align: center; }
.container {
background-color: #fff;
width: 60.5em; min-height: 57.25em;
text-align: left; margin: 0 auto; }
.content {
margin-bottom: 5em;
text-align: justify; display: inline-block; }
.document {
float: left;
width: 36.8em; margin-right: 2.5em; }
.document a, .footer a {
text-decoration: underline; }
.sidebar {
float: left; width: 18em;
text-align: left; }
.related { overflow: hidden; }
.related h3 {
font-size: 1px; text-indent: -9999999em; }
.related ul { margin: 0; }
.related li {
display: inline; list-style-type: none; }
.rel-main { float: left; }
.rel-extra { float: right; }
.header,
.related,
.content,
.footer {
margin-left: 1.5em; margin-right: 1.5em; }
.header {
border-bottom: 3px solid #2e3436; }
.header h1 { margin: 0; }
.footer {
padding-top: 2em; text-align: right;
border-top: 4px solid #babdb6; }
/*
* http://lamb.cc/typograph/
*/
h1, h2, h3, h4 {
color: #3465a4; font-family: georgia; font-weight: normal; }
h1 { font-size: 1.75em; margin: 1.51786em 0; color: #204a87; }
h2 {
border-bottom: 1px solid #3465a4;
font-size: 1.5em; margin: 1.45833em 0; }
h3 { font-size: 1.33333em; margin: 1.25em 0; }
h4 { font-size: 1.16667em; margin: 1.51786em 0; }
a {
color: #ce5c00; }
.headerlink {
visibility: hidden; color: #dddddd; padding-left: .3em; }
h1:hover > .headerlink,
h2:hover > .headerlink,
h3:hover > .headerlink,
h4:hover > .headerlink,
h5:hover > .headerlink,
h6:hover > .headerlink,
dt:hover > .headerlink { visibility: visible; }
img {
border: 0; }
dt:target, .highlighted {
background-color: #fbe54e; }
/*
* http://www.blueprintcss.org/
*/
.small { font-size: .8em; margin-bottom: 1.875em; line-height: 1.875em; }
.large { font-size: 1.2em; line-height: 2.5em; margin-bottom: 1.25em; }
.hide { display: none; }
.quiet { color: #666; }
.loud { color: #000; }
.highlight { background: #ff0; }
.added { background: #060; color: #fff; }
.removed { background: #900; color: #fff; }
.first { margin-left: 0; padding-left: 0; }
.last { margin-right: 0; padding-right: 0; }
.top { margin-top: 0; padding-top: 0; }
.bottom { margin-bottom: 0; padding-bottom: 0; }
/*
*
*/
.doc-link,
.feat-link {
margin-left: 0; text-align: left; }
.doc-link dd,
.feat-link dd {
margin-left: 0; font-style: italic; }
.feat-link dt {
color: #3465a4; font-weight: bold; }
.doc-link {
width: 44%; height: 6em; float: left;
margin-right: 2em; }
/*
*
*/
.sidebar .toctree-l1.current a {
border-right: 5px solid #fcaf3e; }
.line-block {
display: block;
margin-top: 1em;
margin-bottom: 1em;
}
.line-block .line-block {
margin-top: 0;
margin-bottom: 0;
margin-left: 1.5em;
}
div.header div.rel a {
color: #fcaf3e;
letter-spacing: .1em;
text-transform: uppercase;
}
.highlight {
padding: 3px;
background-color: #eeeeec;
border-top: 2px solid #dddddd;
border-bottom: 2px solid #dddddd;
margin-top: .8em;
margin-bottom: .8em;
}
.descname {
font-weight: bold; }
.literal {
background-color: #eeeeec; }
blockquote {
margin: 1em; }
.footer, .footer a {
color: #888a85; }
div.admonition {
font-size: 0.9em;
margin: 1em 0 1em 0;
padding: 0.5em 1em 0.5em 1em;
border: 1px solid #ddd; }
div.admonition p.admonition-title {
font-weight: bold; color: #3465a4; }
div.warning {
border-color: #940000; }
div.warning p.admonition-title {
color: #940000; }
div.viewcode-block:target {
background-color: #f4debf;
border-top: 1px solid #ac9;
border-bottom: 1px solid #ac9;
}
/* Styles copied from basic theme */
img.align-left, .figure.align-left, object.align-left {
clear: left; float: left; margin-right: 1em; }
img.align-right, .figure.align-right, object.align-right {
clear: right; float: right; margin-left: 1em; }
img.align-center, .figure.align-center, object.align-center {
display: block; margin-left: auto; margin-right: auto; }
.align-left { text-align: left; }
.align-center { text-align: center; }
.align-right { text-align: right; }
ul.keywordmatches li.goodmatch a {
font-weight: bold; }
/* -- index page ------------------------------------------------------------ */
table.contentstable {
width: 90%;
}
table.contentstable p.biglink {
line-height: 150%;
}
a.biglink {
font-size: 1.3em;
}
span.linkdescr {
font-style: italic;
padding-top: 5px;
font-size: 90%;
}
/* -- general index --------------------------------------------------------- */
table.indextable td {
text-align: left;
vertical-align: top;
}
table.indextable dl, table.indextable dd {
margin-top: 0;
margin-bottom: 0;
}
table.indextable tr.pcap {
height: 10px;
}
table.indextable tr.cap {
margin-top: 10px;
background-color: #f2f2f2;
}
img.toggler {
margin-right: 3px;
margin-top: 3px;
cursor: pointer;
}
/* -- viewcode extension ---------------------------------------------------- */
.viewcode-link {
float: right;
}
.viewcode-back {
float: right;
}
div.viewcode-block:target {
margin: -1px -3px;
padding: 0 3px;
background-color: #f4debf;
border-top: 1px solid #ac9;
border-bottom: 1px solid #ac9;
}

Binary file not shown.

Before

Width:  |  Height:  |  Size: 5.6 KiB

View File

@ -1,3 +0,0 @@
[theme]
inherit = default
stylesheet = base-salt.css

View File

@ -76,20 +76,15 @@ on_rtd = os.environ.get('READTHEDOCS', None) == 'True'
project = u'Salt'
copyright = u'2011, Thomas S. Hatch'
# The version info for the project you're documenting, acts as replacement for
# |version| and |release|, also used in various other places throughout the
# built documents.
#
# The short X.Y version.
version = __version__
# The full version, including alpha/beta/rc tags.
release = version
master_doc = 'contents'
templates_path = ['_templates']
exclude_patterns = ['_build']
extensions = ['saltdocs', 'sphinx.ext.autodoc', 'sphinx.ext.extlinks', 'sphinx.ext.autosummary']
extensions = ['saltdocs', 'sphinx.ext.autodoc', 'sphinx.ext.extlinks',
'sphinx.ext.autosummary']
modindex_common_prefix = ['salt.']
@ -97,6 +92,7 @@ autosummary_generate = True
# Define a substitution for linking to the latest release tarball
rst_prolog = """\
.. _`installation`: http://saltstack.org/install/
.. |saltrepo| replace:: https://github.com/saltstack/salt
.. |latest| replace:: https://github.com/downloads/saltstack/salt/salt-%s.tar.gz
""" % __version__
@ -110,12 +106,8 @@ extlinks = {
### HTML options
if on_rtd:
html_theme = 'default'
else:
html_theme = 'saltstack'
html_theme = 'default'
html_theme_path = ['_themes']
html_title = None
html_short_title = 'Salt'
@ -125,23 +117,20 @@ html_favicon = 'favicon.ico'
html_use_smartypants = False
html_additional_pages = {
'index': 'index.html',
'404': '404.html',
}
html_default_sidebars = [
'localtoc.html',
'relations.html',
'sourcelink.html',
'searchbox.html']
html_sidebars = {
'ref/**/all/salt.*': ['autosummarysidebar.html'] + html_default_sidebars,
'index': ['indexsidebar.html', 'searchbox.html'],
'ref/**/all/salt.*': [
'autosummarysidebar.html',
'localtoc.html',
'relations.html',
'sourcelink.html',
'searchbox.html',
],
}
html_context = {
'html_default_sidebars': html_default_sidebars,
'github_base': 'https://github.com/saltstack/salt',
'github_issues': 'https://github.com/saltstack/salt/issues',
'github_downloads': 'https://github.com/saltstack/salt/downloads',
@ -161,7 +150,7 @@ latex_documents = [
u'Thomas Hatch', 'manual'),
]
latex_logo = '_static/salt.png'
latex_logo = '_static/salt-vert.png'
### Manpage options

View File

@ -6,10 +6,7 @@ Full Table of Contents
:maxdepth: 3
:glob:
home
topics/index
topics/installation
topics/configuration
topics/tutorials/modules
topics/tutorials/states*

View File

@ -1,80 +0,0 @@
.. _contents:
.. |vid| image:: /_static/film_link.png
.. _docs-tutorials:
Salt at a glance
================
Learn about the various parts of Salt in five minute increments (or less).
* **What is Salt?:**
:doc:`Overview <topics/index>`
| :doc:`Community </topics/community>`
* **The basics:**
:doc:`Installation <topics/installation>`
| :doc:`Configuration <topics/configuration>`
| |vid| `Watch the screencast <http://blip.tv/saltstack/salt-installation-configuration-and-remote-execution-5713423>`_
* **Remote execution:**
:doc:`Modules <topics/tutorials/modules>`
* **State management:**
:doc:`Part 1 <topics/tutorials/states_pt1>`
| :doc:`Part 2 <topics/tutorials/states_pt2>`
| :doc:`Part 3 <topics/tutorials/states_pt3>`
.. _docs-reference:
Salt in depth
=============
While using and setting up Salt is a simple task, the capabilities of Salt run
much deeper. Gaining a better understanding of how Salt works will allow you to
get much more out of Salt.
* **Remote execution:**
:doc:`Writing modules <ref/modules/index>`
| :doc:`full list of modules <ref/modules/all/index>`
* **System info & detection:**
:doc:`Grains <ref/grains>`
* **Displaying or storing responses:**
:doc:`Writing returners <ref/returners/index>`
| :doc:`full list of returners <ref/returners/all/index>`
* **State enforcement:**
:doc:`States <ref/states/index>`
| :doc:`Highstate data structure <ref/states/highstate>`
| :doc:`full list of states <ref/states/all/index>`
* **Renderers:**
:doc:`Renderers <ref/renderers/index>`
| :doc:`full list of renderers <ref/renderers/all/index>`
* **Transferring & syncing files:**
:doc:`File Server <ref/file_server/index>`
* **Network topology:**
:doc:`ref/syndic`
| :doc:`ref/peer`
* **Configuration:**
:doc:`Full list of minion settings <ref/configuration/minion>`
| :doc:`Full list of master settings <ref/configuration/master>`
* **Using Salt:**
:doc:`From the command-line <ref/cli/index>`
| :doc:`Through the Python API <ref/python-api>`
.. admonition:: Screencasts and presentations
* Thomas S. Hatch was `interviewed on episode 191 of FLOSS Weekly
<http://twit.tv/show/floss-weekly/191>`_.
* Presentation at the Salt Lake Linux User Group (SLLUG) in May 2011
`video <http://blip.tv/thomas-s-hatch/salt-0-8-7-presentation-5180182>`_
| :download:`slides <Salt.pdf>` (PDF)
Salt quick reference
====================
* :doc:`Release notes </topics/releases/index>`
| :doc:`Roadmap </topics/roadmap/index>`
* :ref:`modindex`
| :ref:`genindex`
| :doc:`Full table of contents </contents>`
* :ref:`search`

187
doc/index.rst Normal file
View File

@ -0,0 +1,187 @@
.. _contents:
.. |vid| image:: /_static/film_link.png
Get started with Salt
=====================
.. sidebar:: Presentations
A list of `presentations and interviews on Salt`_ (including the FLOSS
Weekly interview).
.. _`presentations and interviews on Salt`: http://saltstack.org/presentations/
Salt is a **remote execution** and **configuration management** tool.
Salt is designed to be secure using **AES encryption** and **public-key
authentication**; incredibly scaleable using an advanced **ZeroMQ** topology;
fast and efficient using **msgpack**; and extensible using small and simple
**Python** modules.
Read the :doc:`Salt overview <topics/index>` for a more thorough description.
Step 1: Remote execution
------------------------
.. sidebar:: |vid| Screencasts
Watch the `remote execution screencast`__.
.. __: http://blip.tv/saltstack/salt-installation-configuration-and-remote-execution-5713423
The quickest way to see Salt in action is to run a command on a :term:`minion`
host from the :term:`master` host. This is widely known as :term:`remote
execution` — executing commands on remote hosts.
1. `Installation`_
2. :doc:`Configure the minion <topics/configuration>`
3. :doc:`Run remote commands <topics/tutorials/modules>`
Step 2: Configuration management
--------------------------------
Now that you have the basics out of the way, learn to use Salt to configure
your servers. This is widely known as :term:`configuration management`
installing packages, configuring users and services, and much more.
1. :doc:`Basic config management <topics/tutorials/states_pt1>`
2. :doc:`Less basic config management <topics/tutorials/states_pt2>`
3. :doc:`Advanced techniques <topics/tutorials/states_pt3>`
Salt in depth
=============
Setting up and using Salt is a simple task but it's capabilities run much, much
deeper. Gaining a better understanding of how Salt works will allow you to
truly make it work for you.
.. contents:: Overview
:local:
:depth: 2
**Remote execution**
Remote execution is the core functionality of Salt. Running pre-defined or
arbitrary commands on remote hosts.
**Modules**
Salt modules are the core of remote execution. They provide
functionality such as installing a package, restarting a service,
running a remote command, transferring a file — and the list goes on.
:doc:`Full list of modules </ref/modules/all/index>`
The giant list of core modules that ship with Salt
(And there are even more in the `salt-contrib`_ repository!)
:doc:`Writing modules <ref/modules/index>`
A guide on how to write Salt modules
**Targeting**
Specify which hosts should run commands or manage configuration.
:doc:`Targeting <ref/targeting/index>`
Hostnames, lists, regular expressions, or define groups.
:doc:`Grains <ref/grains>`
Bits of static information about a minion such as OS, version,
virtualization, CPU, memory, and much more.
**Returners**
Salt returners allow saving minion responses in various datastores or
to various locations in addition to display at the CLI.
:doc:`Full list of returners </ref/returners/all/index>`
Store minion responses in Redis, Mongo, Cassandra or more.
:doc:`Writing returners <ref/returners/index>`
If we're missing your favorite storage backend, webservice, or you
need a custom endpoint returners are *tiny* and simple to write.
**Configuration management**
Building on the remote execution core is a robust and flexible config
management framework. Execution happens on the minions allowing
effortless, simultaneous configuration of thousands of hosts.
**States**
Express the state of a host using small, easy to read, easy to
understand configuration files. No programming required (unless you
want to).
:doc:`Full list of states <ref/states/all/index>`
Install packages, create users, transfer files, start services, and
more and more.
:doc:`Using states <ref/states/index>`
You've seen the big list of available states, now learn how to call
them.
:doc:`Highstate data structure <ref/states/highstate>`
A dry, vocabulary and technical representation of the configuration
format that states represent.
**Renderers**
Write state configuration files in the language, templating engine, or
file type of your choice. The world doesn't need yet another DSL.
:doc:`Full list of renderers <ref/renderers/all/index>`
YAML? JSON? Jinja? Mako? Python? We got you covered. (And if we
don't, new renderers are *tiny* and easy to write.)
:doc:`Renderers <ref/renderers/index>`
Salt states are only concerned with the ultimate highstate data
structure. How you create that data structure isn't our business.
Tweak a config option and use whatever you're most comfortable
with.
**Miscellaneous topics**
Salt is a many splendid thing.
:doc:`File Server <ref/file_server/index>`
Salt can easily and quickly transfer files (in fact, that's how Salt
States work). Even under load, files are chunked and served.
:doc:`Syndic <ref/syndic>`
A seamless master of masters. Scale Salt to thousands of hosts or
across many different networks.
:doc:`Peer communication <ref/peer>`
Allow minions to communicate amongst themselves. For example, configure
one minion by querying live data from all the others. With great power
comes great responsibility.
:doc:`Network topology <ref/topology>`
At it's core, Salt is a highly scalable communication layer built on
top of ZeroMQ that enables remote execution and configuration
management. The possibilities are endless and Salt's future looks
bright.
:doc:`Python API interface <ref/python-api>`
Use Salt programmatically from your own scripts and programs easily and
simply via ``import salt``.
**Reference**
:doc:`Command-line interface <ref/cli/index>`
Read the Salt manpages.
:doc:`Full list of master settings <ref/configuration/master>`
Read through the heavily-commented master configuration file.
:doc:`Full list of minion settings <ref/configuration/minion>`
Read through the heavily-commented minion configuration file.
:doc:`Full table of contents </contents>`
Dense but complete.
**More information about the project**
:doc:`Roadmap </topics/roadmap/index>`
Where we're headed.
:doc:`Release notes </topics/releases/index>`
Where we've been.
:doc:`Community </topics/community>`
How you can get involved.
.. _`salt-contrib`: https://github.com/saltstack/salt-contrib
.. _`salt-states`: https://github.com/saltstack/salt-states

View File

@ -1,155 +0,0 @@
===============
Installing Salt
===============
The Salt system setup is amazingly simple, as this is one of the central design
goals of Salt. Setting up Salt only requires that the Salt :term:`master` be
running and the Salt :term:`minions <minion>` point to the master.
.. admonition:: Salt dependencies
Salt should run on any Unix-like platform so long as the dependencies are
met.
* `Python 2.6`_
* `ZeroMQ`_ >= 2.1.9
* `pyzmq`_ >= 2.1.9 — ZeroMQ Python bindings
* `M2Crypto`_ — Python OpenSSL wrapper
* `PyCrypto`_ — The Python cryptography toolkit
* `msgpack-python`_ — High-performance message interchange format
* `YAML`_ — Python YAML bindings
Optional Dependencies:
* `Jinja2`_ — parsing Salt States (other renderers can be used via the
:conf_master:`renderer` setting).
* gcc — dynamic `Cython`_ module compiling
.. _`Python 2.6`: http://python.org/download/
.. _`ZeroMQ`: http://www.zeromq.org/
.. _`pyzmq`: https://github.com/zeromq/pyzmq
.. _`M2Crypto`: http://chandlerproject.org/Projects/MeTooCrypto
.. _`YAML`: http://pyyaml.org/
.. _`PyCrypto`: http://www.dlitz.net/software/pycrypto/
.. _`Cython`: http://cython.org/
.. _`Jinja2`: http://jinja.pocoo.org/
.. contents:: Instructions by operating system
:depth: 1
:local:
Red Hat
=======
We are working to get Salt packages into EPEL. In the meantime you can
:command:`yum install salt-master salt-minion` via our Fedora People
repository.
Red Hat Enterprise Linux 5 & 6 or CentOS 5 & 6
----------------------------------------------
1. Install the `EPEL`__ repository.
2. Install our repository on FedoraPeople::
wget -O /etc/yum.repos.d/epel-salt.repo \
http://repos.fedorapeople.org/repos/herlo/salt/epel-salt.repo
.. __: http://fedoraproject.org/wiki/EPEL#How_can_I_use_these_extra_packages.3F
Fedora 15 & 16
--------------
1. Install our repository on FedoraPeople::
wget -O /etc/yum.repos.d/fedora-salt.repo \
http://repos.fedorapeople.org/repos/herlo/salt/fedora-salt.repo
Arch Linux
==========
Salt can be easily installed from the Arch Linux AUR in one of two flavors:
* `Install a Salt release <https://aur.archlinux.org/packages.php?ID=47512>`_
* `Install the latest Salt from Git <https://aur.archlinux.org/packages.php?ID=47513>`_
Debian / Ubuntu
===============
Ubuntu
------
We are working to get Salt into apt. In the meantime we have a PPA available
for Lucid::
aptitude -y install python-software-properties
add-apt-repository ppa:saltstack/salt
aptitude update
aptitude install salt
Debian
------
`A deb package is currently in testing`__ for inclusion in apt. Until that is
accepted you can install Salt by downloading the latest ``.deb`` in the
`downloads section on GitHub`__ and installing that manually:
.. parsed-literal::
dpkg -i salt-|version|.deb
.. __: http://mentors.debian.net/package/salt
.. __: https://github.com/saltstack/salt/downloads
.. admonition:: Installing ZeroMQ on Squeeze (Debian 6)
There is a `python-zmq`__ package available in Debian "wheezy (testing)".
If you don't have that repo enabled the best way to install Salt and pyzmq
is by using :command:`pip` (or :command:`easy_install`)::
pip install pyzmq salt
.. __: http://packages.debian.org/search?keywords=python-zmq
Gentoo
======
Salt can be easily installed on Gentoo::
emerge pyyaml m2crypto pycrypto jinja pyzmq
Then download and install from source:
1. Download the latest source tarball from the GitHub downloads directory for
the Salt project: |latest|
2. Untar the tarball and run the :file:`setup.py` as root:
.. parsed-literal::
tar xvf salt-|version|.tar.gz
cd salt-|version|
python2 setup.py install
FreeBSD
=======
Salt is available in the FreeBSD ports tree::
cd /usr/ports/sysutils/salt && make install clean
.. seealso:: :doc:`freebsd installation guide </topics/tutorials/freebsd>`
Installing from source
======================
1. Download the latest source tarball from the GitHub downloads directory for
the Salt project: |latest|
2. Untar the tarball and run the :file:`setup.py` as root:
.. parsed-literal::
tar xvf salt-|version|.tar.gz
cd salt-|version|
python2 setup.py install

View File

@ -29,8 +29,8 @@ Here s the md5sum:
7d5aca4633bc22f59045f59e82f43b56
For instructions on how to set up Salt please see the :doc:`installation
instructions </topics/installation>`.
For instructions on how to set up Salt please see the `installation`_
instructions.
New Features
------------

View File

@ -24,8 +24,8 @@ Here is the md5sum:
9a925da04981e65a0f237f2e77ddab37
For instructions on how to set up Salt please see the :doc:`installation
instructions </topics/installation>`.
For instructions on how to set up Salt please see the `installation`_
instructions.
New Features
------------

View File

@ -23,8 +23,8 @@ Or from PiPy:
http://pypi.python.org/packages/source/s/salt/salt-0.9.2.tar.gz
For instructions on how to set up Salt please see the :doc:`installation
instructions </topics/installation>`.
For instructions on how to set up Salt please see the `installation`_
instructions.
New Features
------------

View File

@ -22,8 +22,8 @@ Or from PiPy:
http://pypi.python.org/packages/source/s/salt/salt-0.9.3.tar.gz
For instructions on how to set up Salt please see the :doc:`installation
instructions </topics/installation>`.
For instructions on how to set up Salt please see the `installation`_
instructions.
New Features
------------

View File

@ -24,8 +24,8 @@ Or from PiPy:
http://pypi.python.org/packages/source/s/salt/salt-0.9.4.tar.gz
For instructions on how to set up Salt please see the :doc:`installation
instructions </topics/installation>`.
For instructions on how to set up Salt please see the `installation`_
instructions.
New Features
============

View File

@ -1,6 +1,6 @@
**Before continuing** make sure you have a working Salt installation by
following the :doc:`installation </topics/installation>` and the
:doc:`configuration </topics/configuration>` instructions.
following the `installation`_ and the :doc:`configuration
</topics/configuration>` instructions.
.. admonition:: Stuck?