mirror of
https://github.com/valitydev/salt.git
synced 2024-11-07 08:58:59 +00:00
Merge branch 'doc-customhome' into develop
This commit is contained in:
commit
f2e50d9579
83
doc/_templates/index.html
vendored
83
doc/_templates/index.html
vendored
@ -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 %}
|
32
doc/_templates/indexsidebar.html
vendored
32
doc/_templates/indexsidebar.html
vendored
@ -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>
|
8
doc/_templates/layout.html
vendored
8
doc/_templates/layout.html
vendored
@ -1,6 +1,6 @@
|
||||
{% extends "!layout.html" %}
|
||||
|
||||
{% block rootrellink %}
|
||||
<li><a href="{{ pathto('index') }}">Salt home</a> | </li>
|
||||
<li><a href="{{ pathto('home') }}">Documentation</a> »</li>
|
||||
{% endblock %}
|
||||
{%- block rootrellink %}
|
||||
<li><a href="http://saltstack.org">« SaltStack.org</a> | </li>
|
||||
<li><a href="{{ pathto('index') }}">Documentation home</a></li>
|
||||
{%- endblock %}
|
||||
|
186
doc/_themes/saltstack/layout.html
vendored
186
doc/_themes/saltstack/layout.html
vendored
@ -1,186 +0,0 @@
|
||||
{%- block doctype -%}
|
||||
<!DOCTYPE html>
|
||||
{%- endblock %}
|
||||
|
||||
{%- set reldelim1 = reldelim1 is not defined and ' »' 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 = " — "|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> | </li>
|
||||
<li><a href="{{ pathto('home') }}">Documentation</a> »</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 %}© <a href="{{ path }}">Copyright</a> {{ copyright }}.{% endtrans %}
|
||||
{%- else %}
|
||||
{% trans copyright=copyright|e %}© 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>
|
273
doc/_themes/saltstack/static/base-salt.css
vendored
273
doc/_themes/saltstack/static/base-salt.css
vendored
@ -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;
|
||||
}
|
BIN
doc/_themes/saltstack/static/salt-horiz.png
vendored
BIN
doc/_themes/saltstack/static/salt-horiz.png
vendored
Binary file not shown.
Before Width: | Height: | Size: 5.6 KiB |
3
doc/_themes/saltstack/theme.conf
vendored
3
doc/_themes/saltstack/theme.conf
vendored
@ -1,3 +0,0 @@
|
||||
[theme]
|
||||
inherit = default
|
||||
stylesheet = base-salt.css
|
35
doc/conf.py
35
doc/conf.py
@ -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
|
||||
|
@ -6,10 +6,7 @@ Full Table of Contents
|
||||
:maxdepth: 3
|
||||
:glob:
|
||||
|
||||
home
|
||||
|
||||
topics/index
|
||||
topics/installation
|
||||
topics/configuration
|
||||
topics/tutorials/modules
|
||||
topics/tutorials/states*
|
||||
|
80
doc/home.rst
80
doc/home.rst
@ -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
187
doc/index.rst
Normal 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
|
@ -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
|
@ -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
|
||||
------------
|
||||
|
@ -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
|
||||
------------
|
||||
|
@ -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
|
||||
------------
|
||||
|
@ -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
|
||||
------------
|
||||
|
@ -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
|
||||
============
|
||||
|
@ -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?
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user