Skip to content
Browse files

Merge branch '0.9.7'

  • Loading branch information...
2 parents c21a932 + 5450585 commit 1d1ab88d03064b8cd7c33033aa7a918cb0acb38c @thatch45 thatch45 committed
Showing with 5,534 additions and 2,363 deletions.
  1. +23 −13 conf/master.template
  2. +24 −14 conf/minion.template
  3. +18 −0 debian/changelog
  4. +3 −9 debian/control
  5. +1 −1 debian/copyright
  6. +6 −9 debian/rules
  7. +1 −24 debian/salt-common.install
  8. +6 −6 debian/salt-master.install
  9. +0 −5 debian/salt-master.links
  10. +3 −4 debian/salt-minion.install
  11. +0 −2 debian/salt-minion.links
  12. +1 −1 debian/salt-syndic.install
  13. +1 −1 debian/salt-syndic.links
  14. BIN doc/_static/favicon.ico
  15. BIN doc/_static/salt-vert.png
  16. +0 −83 doc/_templates/index.html
  17. +0 −32 doc/_templates/indexsidebar.html
  18. +4 −4 doc/_templates/layout.html
  19. +0 −186 doc/_themes/saltstack/layout.html
  20. +0 −273 doc/_themes/saltstack/static/base-salt.css
  21. BIN doc/_themes/saltstack/static/salt-horiz.png
  22. +0 −3 doc/_themes/saltstack/theme.conf
  23. +14 −25 doc/conf.py
  24. +0 −3 doc/contents.rst
  25. +0 −80 doc/home.rst
  26. +187 −0 doc/index.rst
  27. +2 −2 doc/man/salt-call.1
  28. +4 −4 doc/man/salt-cp.1
  29. +14 −4 doc/man/salt-key.1
  30. +2 −2 doc/man/salt-master.1
  31. +2 −2 doc/man/salt-minion.1
  32. +3 −3 doc/man/salt-run.1
  33. +2 −2 doc/man/salt-syndic.1
  34. +2 −2 doc/man/salt.1
  35. +1,193 −510 doc/man/salt.7
  36. +9 −8 doc/ref/cli/index.rst
  37. +2 −2 doc/ref/cli/salt-cp.rst
  38. +10 −2 doc/ref/cli/salt-key.rst
  39. +1 −1 doc/ref/cli/salt-run.rst
  40. +17 −0 doc/ref/configuration/master.rst
  41. +15 −0 doc/ref/configuration/minion.rst
  42. +35 −8 doc/ref/grains.rst
  43. +2 −0 doc/ref/modules/all/index.rst
  44. +15 −0 doc/ref/modules/all/salt.modules.pkg.rst
  45. +24 −0 doc/ref/modules/all/salt.modules.sys.rst
  46. +29 −0 doc/ref/renderers/index.rst
  47. +27 −3 doc/ref/returners/index.rst
  48. +154 −50 doc/ref/states/highstate.rst
  49. +29 −29 doc/ref/states/index.rst
  50. +12 −7 doc/ref/states/ordering.rst
  51. +143 −0 doc/ref/states/top.rst
  52. +24 −4 doc/ref/states/writing.rst
  53. +0 −156 doc/topics/installation.rst
  54. +72 −0 doc/topics/jobs/index.rst
  55. +2 −2 doc/topics/releases/0.8.9.rst
  56. +2 −2 doc/topics/releases/0.9.0.rst
  57. +2 −2 doc/topics/releases/0.9.2.rst
  58. +2 −2 doc/topics/releases/0.9.3.rst
  59. +2 −2 doc/topics/releases/0.9.4.rst
  60. +47 −0 doc/topics/releases/0.9.6.rst
  61. +179 −0 doc/topics/releases/0.9.7.rst
  62. +50 −0 doc/topics/tutorials/bootstrap_ec2.rst
  63. +2 −2 doc/topics/tutorials/requisite_incl.rst
  64. +13 −7 doc/topics/tutorials/starting_states.rst
  65. +4 −0 doc/topics/tutorials/states_pt1.rst
  66. +1 −1 doc/topics/tutorials/states_pt3.rst
  67. +11 −0 pkg/rpm/README.fedora
  68. +24 −5 pkg/rpm/salt.spec
  69. +4 −3 requirements.txt
  70. +46 −7 salt/__init__.py
  71. +45 −9 salt/cli/__init__.py
  72. +15 −7 salt/cli/caller.py
  73. +113 −60 salt/cli/key.py
  74. +14 −5 salt/client.py
  75. +63 −6 salt/config.py
  76. +6 −6 salt/crypt.py
  77. +12 −1 salt/grains/core.py
  78. +29 −12 salt/loader.py
  79. +75 −4 salt/master.py
  80. +126 −25 salt/minion.py
  81. +3 −3 salt/modules/apt.py
  82. +60 −57 salt/modules/cmd.py
  83. +55 −3 salt/modules/cp.py
  84. +0 −1 salt/modules/cytest.pyx
  85. +18 −8 salt/modules/disk.py
  86. +3 −2 salt/modules/file.py
  87. +115 −0 salt/modules/freebsdservice.py
  88. +5 −0 salt/modules/hosts.py
  89. +456 −0 salt/modules/kvm_hyper.py
  90. +2 −0 salt/modules/linux_sysctl.py
  91. +130 −18 salt/modules/mysql.py
  92. +21 −16 salt/modules/network.py
  93. +68 −68 salt/modules/nginx.py
  94. +20 −0 salt/modules/ps.py
  95. +2 −1 salt/modules/publish.py
  96. +103 −8 salt/modules/puppet.py
  97. +2 −4 salt/modules/rh_service.py
  98. +97 −1 salt/modules/saltutil.py
  99. +1 −0 salt/modules/service.py
  100. +0 −3 salt/modules/solr.py
  101. +14 −8 salt/modules/ssh.py
  102. +35 −1 salt/modules/status.py
  103. +10 −7 salt/modules/test.py
  104. +9 −0 salt/modules/virtualenv.py
  105. +5 −10 salt/modules/yumpkg.py
  106. +5 −4 salt/modules/yumpkg5.py
  107. +2 −4 salt/output.py
  108. +104 −0 salt/runners/jobs.py
  109. +182 −133 salt/state.py
  110. +7 −10 salt/states/cmd.py
  111. +155 −18 salt/states/file.py
  112. +148 −0 salt/states/mysql_grants.py
  113. +66 −66 salt/states/mysql_user.py
  114. +82 −31 salt/states/pkg.py
  115. +43 −3 salt/states/service.py
  116. +4 −0 salt/states/ssh_auth.py
  117. +0 −1 salt/states/user.py
  118. +5 −0 salt/states/virtualenv.py
  119. +74 −5 salt/utils/__init__.py
  120. +1 −1 salt/utils/verify.py
  121. +1 −1 salt/version.py
  122. +1 −1 setup.py
  123. +10 −0 tests/files/conf/master
  124. +18 −0 tests/files/conf/minion
  125. +11 −0 tests/files/hosts
  126. +0 −13 tests/modules/__init__.py
  127. +50 −0 tests/modules/grains.py
  128. +87 −65 tests/modules/hosts.py
  129. +89 −5 tests/modules/test.py
  130. +9 −28 tests/runtests.py
  131. +114 −0 tests/saltunittest.py
  132. +3 −3 tests/simple.py
  133. +4 −3 tests/templates/jinja.py
View
36 conf/master.template
@@ -31,11 +31,15 @@
# Set the number of hours to keep old job information
#keep_jobs: 24
+# Set the default timeout for the salt command and api, the default is 5
+# seconds
+#timeout: 5
+
# Set the directory used to hold unix sockets
#sock_dir: /tmp/salt-unix
# Set the acceptance level for serialization of messages. This should only be
-# set if the master is newer that 0.9.5 and the minion are older, this option
+# set if the master is newer than 0.9.5 and the minion are older. This option
# allows a 0.9.5 and newer master to communicate with minions 0.9.4 and
# earlier. It is not recommended to keep this setting on if the minions are
# all 0.9.5 or higher, as leaving pickle as the serialization medium is slow
@@ -59,9 +63,15 @@
##########################################
# The state system uses a "top" file to tell the minions what environment to
# use and what modules to use. The state_top file is defined relative to the
-# root of the base environment
+# root of the base environment.
#state_top: top.sls
#
+# The external_nodes option allows Salt to gather data that would normally be
+# placed in a top file. The external_nodes option is the executable that will
+# return the ENC data. Remember that Salt will look for external nodes AND top
+# files and combine the results if both are enabled!
+#external_nodes: None
+#
# The renderer to use on the minions to render the state data
#renderer: yaml_jinja
#
@@ -78,7 +88,7 @@
# The file server works on environments passed to the master, each environment
# can have multiple root directories, the subdirectories in the multiple file
# roots cannot match, otherwise the downloaded files will not be able to be
-# reliably ensured. A base environment is required to house the top file
+# reliably ensured. A base environment is required to house the top file.
# Example:
# file_roots:
# base:
@@ -110,15 +120,14 @@
# syndic servers(s) below it set the "order_masters" setting to True, if this
# is a master that will be running a syndic daemon for passthrough the
# "syndic_master" setting needs to be set to the location of the master server
-# to recieve commands from
+# to recieve commands from.
#
# Set the order_masters setting to True if this master will command lower
-# masters' syndic interfaces
+# masters' syndic interfaces.
#order_masters: False
#
-# If this master will be running a salt syndic daemon, then the syndic needs
-# to know where the master it is recieving commands from is, set it with the
-# syndic_master value
+# If this master will be running a salt syndic daemon, syndic_master tells
+# this master where to recieve commands from.
#syndic_master: masterofmaster
##### Peer Publish settings #####
@@ -129,9 +138,9 @@
# compartmentalization of commands based on individual minions.
#
# The configuration uses regular expressions to match minions and then a list
-# of regular expressions to match functions, the following will allow the
+# of regular expressions to match functions. The following will allow the
# minion authenticated as foo.example.com to execute functions from the test
-# and pkg modules
+# and pkg modules.
# peer:
# foo.example.com:
# - test.*
@@ -149,7 +158,7 @@
##########################################
# Salt supports automatic clustering, salt creates a single ip address which
# is shared among the individual salt components using ucarp. The private key
-# and all of the minion keys are maintained across the defined cluster masters
+# and all of the minion keys are maintained across the defined cluster masters.
# The failover service is automatically managed via these settings
# List the identifiers for the other cluster masters in this manner:
@@ -168,14 +177,15 @@
##########################################
# The location of the master log file
#log_file: /var/log/salt/master
+#
# The level of messages to send to the log file.
# One of 'info', 'quiet', 'critical', 'error', 'debug', 'warning'.
# Default: 'warning'
#log_level: warning
#
# Logger levels can be used to tweak specific loggers logging levels.
-# Imagine you want to have the salt library at the 'warning' level, but, you
-# still wish to have 'salt.modules' at the 'debug' level:
+# For example, if you want to have the salt library at the 'warning' level,
+# but you still wish to have 'salt.modules' at the 'debug' level:
# log_granular_levels:
# 'salt': 'warning',
# 'salt.modules': 'debug'
View
38 conf/minion.template
@@ -2,10 +2,10 @@
##### Primary configuration settings #####
##########################################
# Set the location of the salt master server, if the master server cannot be
-# resolved, then the minion will fail to start
+# resolved, then the minion will fail to start.
#master: salt
-# Set the post used by the master reply and authentication server
+# Set the port used by the master reply and authentication server
#master_port: 4506
# The user to run salt
@@ -24,18 +24,19 @@
# clusters.
#id:
-# The minion connection to the master may be inturupted, the minion will
-# verify the connection every so many seconds, to disable connection
-# verification set this value to 0
+# If the the connection to the server is interrupted, the minion will
+# attempt to reconnect. sub_timeout allows you to control the rate
+# of reconnection attempts (in seconds). To disable reconnects, set
+# this value to 0.
#sub_timeout: 60
# Where cache data goes
#cachedir: /var/cache/salt
# The minion can locally cache the return data from jobs sent to it, this
-# can be a good way to keep track minion side of the jobs the minion has
-# executed. By default this feature is disabled, to enable set cache_jobs
-# to True
+# can be a good way to keep track of jobs the minion has executed
+# (on the minion side). By default this feature is disabled, to enable
+# set cache_jobs to True
#cache_jobs: False
# When waiting for a master to accept the minion's public key, salt will
@@ -47,18 +48,20 @@
##### Minion module management #####
##########################################
-# Disable specific modules, this will allow the admin to limit the level os
+# Disable specific modules. This allows the admin to limit the level of
# access the master has to the minion
#disable_modules: [cmd,test]
#disable_returners: []
-# Modules can be loaded from arbitrary paths, this enables the easy deployment
-# of third party modules, modules for returners and minions can be loaded.
+#
+# Modules can be loaded from arbitrary paths. This enables the easy deployment
+# of third party modules. Modules for returners and minions can be loaded.
# Specify a list of extra directories to search for minion modules and
# returners. These paths must be fully qualified!
#module_dirs: []
#returner_dirs: []
#states_dirs: []
#render_dirs: []
+#
# Enable Cython modules searching and loading. (Default: False)
#cython_enable: False
@@ -92,6 +95,12 @@
# not on the master it will be deleted from the minion. By default this is
# enabled and can be disabled by changing this value to False
#clean_dynamic_modules: True
+#
+# Normally the minion is not isolated to any single environment on the master
+# when running states, but the environment can be isolated on the minion side
+# by statically setting it. Remember that the recommended way to manage
+# environments is to issolate via the top file.
+#environment: None
###### Security settings #####
###########################################
@@ -112,14 +121,15 @@
###########################################
# The location of the minion log file
#log_file: /var/log/salt/minion
+#
# The level of messages to send to the log file.
# One of 'info', 'quiet', 'critical', 'error', 'debug', 'warning'.
# Default: 'warning'
#log_level: warning
#
# Logger levels can be used to tweak specific loggers logging levels.
-# Imagine you want to have the salt library at the 'warning' level, but, you
-# still wish to have 'salt.modules' at the 'debug' level:
+# For example, if you want to have the salt library at the 'warning' level,
+# but you still wish to have 'salt.modules' at the 'debug' level:
# log_granular_levels: {
# 'salt': 'warning',
# 'salt.modules': 'debug'
@@ -133,7 +143,7 @@
# passed here in valid yaml format will be passed on to the salt minion modules
# for use. It is STRONGLY recommended that a naming convention be used in which
# the module name is followed by a . and then the value. Also, all top level
-# data must be allied via the yaml dict construct, some examples:
+# data must be applied via the yaml dict construct, some examples:
#
# A simple value for the test module:
#test.foo: foo
View
18 debian/changelog
@@ -1,3 +1,21 @@
+salt (0.9.7~pre2-0ppa1) lucid; urgency=low
+
+ * Fix arch and deps issue
+
+ -- Corey Quinn <corey@sequestered.net> Wed, 08 Feb 2012 17:22:47 -0800
+
+salt (0.9.7~pre1-0ppa1) lucid; urgency=low
+
+ * Version bump, fixed a few issues
+
+ -- Corey Quinn <corey@sequestered.net> Wed, 08 Feb 2012 16:35:59 -0800
+
+salt (0.9.6-1) lucid; urgency=low
+
+ * Bump version; time to upgrade
+
+ -- Corey Quinn <corey@sequestered.net> Tue, 07 Feb 2012 18:15:20 -0800
+
salt (0.9.5-1) unstable; urgency=low
* First package release. (Closes: #643789)
View
12 debian/control
@@ -3,7 +3,6 @@ Section: admin
Priority: optional
Maintainer: Corey Quinn <corey@sequestered.net>
Build-Depends: debhelper (>= 7.0.50~),
- python-support,
cython,
python-yaml,
python-setuptools,
@@ -11,7 +10,6 @@ Build-Depends: debhelper (>= 7.0.50~),
python-m2crypto,
python-zmq (>= 2.1.9),
libzmq-dev (>= 2.1.9),
- python-all-dev,
python-jinja2
Standards-Version: 3.9.2
Homepage: http://saltstack.org
@@ -20,21 +18,17 @@ Homepage: http://saltstack.org
Package: salt-common
-Architecture: any
+Architecture: all
Depends: ${python:Depends},
${misc:Depends},
${shlibs:Depends},
- python-support,
- cython,
- python-setuptools,
python-yaml,
python-crypto,
python-m2crypto,
python-zmq (>= 2.1.9),
- libzmq-dev (>= 2.1.9),
python,
- python-dev,
- python-jinja2
+ python-jinja2,
+ msgpack-python
Description: Shared libraries that salt requires for all packages
This package is a powerful remote execution manager that can be used
to administer servers in a fast and efficient way.
View
2 debian/copyright
@@ -1,7 +1,7 @@
Format: http://dep.debian.net/deps/dep5
Upstream-Name: salt
Upstream-Contact: salt-users@googlegroups.com
-Source: https://github.com/downloads/saltstack/salt/salt-0.9.5.tar.gz
+Source: https://github.com/downloads/saltstack/salt/salt-0.9.7.tar.gz
Files: *
Copyright: 2012 Thomas S Hatch <thatch45@gmail.com>
View
15 debian/rules
@@ -1,14 +1,11 @@
#!/usr/bin/make -f
#export DH_VERBOSE=1
%:
- dh $@ --buildsystem=python_distutils
-#override_dh_installinit:
-# dh_installinit --no-start --name="salt-master"
-# dh_installinit --no-start --name="salt-minion"
-# dh_installinit --no-start --name="salt-syndic"
-
+ dh $@ #--with python2
+dh_override_auto_build:
+ python setup.py build #--install-layout=deb build
get-orig-source:
git clone https://github.com/saltstack/salt.git
- mv salt salt-0.9.5
- tar -zcvf salt_0.9.5.orig.tar.gz --exclude "debian*" --exclude-vcs salt-0.9.5
- rm -rf salt-0.9.5
+ mv salt salt-0.9.7
+ tar -zcvf salt_0.9.7.orig.tar.gz --exclude "debian*" --exclude-vcs salt-0.9.7
+ rm -rf salt-0.9.7
View
25 debian/salt-common.install
@@ -1,25 +1,2 @@
-salt/exceptions.py /usr/share/salt
-salt/loader.py /usr/share/salt
-salt/master.py /usr/share/salt
-salt/client.py /usr/share/salt
-salt/runner.py /usr/share/salt
-salt/output.py /usr/share/salt
-salt/minion.py /usr/share/salt
-salt/version.py /usr/share/salt
-salt/config.py /usr/share/salt
-salt/state.py /usr/share/salt
-salt/log.py /usr/share/salt
-salt/__init__.py /usr/share/salt
-salt/payload.py /usr/share/salt
-salt/crypt.py /usr/share/salt
-salt/runners /usr/share/salt/
-salt/renderers /usr/share/salt/
-salt/returners /usr/share/salt/
-salt/ext /usr/share/salt/
-salt/msgpack /usr/share/salt/
-salt/grains /usr/share/salt/
-salt/cli /usr/share/salt/
-salt/states /usr/share/salt/
-salt/utils /usr/share/salt/
-usr/lib/python2*/dist-packages/salt/msgpack
+usr/lib/python2*/dist-packages/salt/
debian/lintian-overrides /usr/share/lintian/overrides/salt-common
View
12 debian/salt-master.install
@@ -1,6 +1,6 @@
-conf/master.template /etc/salt/master
-scripts/salt-key /usr/share/salt
-scripts/salt /usr/share/salt
-scripts/salt-run /usr/share/salt
-scripts/salt-cp /usr/share/salt
-scripts/salt-master /usr/share/salt
+conf/master.template /etc/salt
+scripts/salt-master /usr/bin
+scripts/salt-cp /usr/bin
+scripts/salt-run /usr/bin
+scripts/salt-key /usr/bin
+scripts/salt /usr/bin
View
5 debian/salt-master.links
@@ -1,5 +0,0 @@
-usr/share/salt/salt /usr/bin/salt
-usr/share/salt/salt-master /usr/bin/salt-master
-usr/share/salt/salt-cp /usr/bin/salt-cp
-usr/share/salt/salt-key /usr/bin/salt-key
-usr/share/salt/salt-run /usr/bin/salt-run
View
7 debian/salt-minion.install
@@ -1,4 +1,3 @@
-scripts/salt-minion /usr/share/salt
-scripts/salt-call /usr/share/salt
-salt/modules /usr/share/salt/modules
-conf/minion.template /etc/salt/minion
+conf/minion.template /etc/salt
+scripts/salt-minion /usr/bin
+scripts/salt-call /usr/bin
View
2 debian/salt-minion.links
@@ -1,2 +0,0 @@
-usr/share/salt/salt-minion /usr/bin/salt-minion
-usr/share/salt/salt-call /usr/bin/salt-call
View
2 debian/salt-syndic.install
@@ -1 +1 @@
-scripts/salt-syndic /usr/share/salt
+scripts/salt-syndic /usr/bin
View
2 debian/salt-syndic.links
@@ -1 +1 @@
-usr/share/salt/salt-syndic /usr/bin/salt-syndic
+usr/lib/python2*/dist-packages/salt/salt-syndic /usr/bin/salt-syndic
View
BIN doc/_static/favicon.ico
Binary file not shown.
View
BIN doc/_static/salt-vert.png
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
View
83 doc/_templates/index.html
@@ -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
32 doc/_templates/indexsidebar.html
@@ -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
8 doc/_templates/layout.html
@@ -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
186 doc/_themes/saltstack/layout.html
@@ -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
273 doc/_themes/saltstack/static/base-salt.css
@@ -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;
-}
View
BIN doc/_themes/saltstack/static/salt-horiz.png
Deleted file not rendered
View
3 doc/_themes/saltstack/theme.conf
@@ -1,3 +0,0 @@
-[theme]
-inherit = default
-stylesheet = base-salt.css
View
39 doc/conf.py
@@ -74,22 +74,17 @@ def __getattr__(self, name):
# -- General configuration -----------------------------------------------------
project = u'Salt'
-copyright = u'2011, Thomas S. Hatch'
+copyright = u'2012, 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 @@ def __getattr__(self, name):
# 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 @@ def __getattr__(self, name):
### 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 @@ def __getattr__(self, name):
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 @@ def __getattr__(self, name):
u'Thomas Hatch', 'manual'),
]
-latex_logo = '_static/salt.png'
+latex_logo = '_static/salt-vert.png'
### Manpage options
@@ -188,7 +177,7 @@ def __getattr__(self, name):
epub_title = u'Salt Documentation'
epub_author = u'Thomas S. Hatch'
epub_publisher = epub_author
-epub_copyright = u'2011, Thomas S. Hatch'
+epub_copyright = u'2012, Thomas S. Hatch'
epub_scheme = 'URL'
epub_identifier = 'http://saltstack.org/'
View
3 doc/contents.rst
@@ -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
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`
View
187 doc/index.rst
@@ -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
4 doc/man/salt-call.1
@@ -1,4 +1,4 @@
-.TH "SALT-CALL" "1" "January 20, 2012" "0.9.6" "Salt"
+.TH "SALT-CALL" "1" "February 15, 2012" "0.9.7" "Salt"
.SH NAME
salt-call \- salt-call Documentation
.
@@ -63,7 +63,7 @@ none are specified
.SH AUTHOR
Thomas S. Hatch <thatch@gmail.com> and many others, please see the Authors file
.SH COPYRIGHT
-2011, Thomas S. Hatch
+2012, Thomas S. Hatch
.\" Generated by docutils manpage writer.
.\"
.
View
8 doc/man/salt-cp.1
@@ -1,4 +1,4 @@
-.TH "SALT-CP" "1" "January 20, 2012" "0.9.6" "Salt"
+.TH "SALT-CP" "1" "February 15, 2012" "0.9.7" "Salt"
.SH NAME
salt-cp \- salt-cp Documentation
.
@@ -61,13 +61,13 @@ The timeout in seconds to wait for replies from the salt minions.
.INDENT 0.0
.TP
.B \-E, \-\-pcre
-The target expression will be interpereted as a pcre regular expression
+The target expression will be interpreted as a pcre regular expression
rather than a shell glob.
.UNINDENT
.INDENT 0.0
.TP
.B \-L, \-\-list
-The target expression will be interpereted as a comma delimited list,
+The target expression will be interpreted as a comma delimited list,
example: server1.foo.bar,server2.foo.bar,example7.quo.qux
.UNINDENT
.INDENT 0.0
@@ -93,7 +93,7 @@ default=/etc/salt/master
.SH AUTHOR
Thomas S. Hatch <thatch@gmail.com> and many others, please see the Authors file
.SH COPYRIGHT
-2011, Thomas S. Hatch
+2012, Thomas S. Hatch
.\" Generated by docutils manpage writer.
.\"
.
View
18 doc/man/salt-key.1
@@ -1,4 +1,4 @@
-.TH "SALT-KEY" "1" "January 20, 2012" "0.9.6" "Salt"
+.TH "SALT-KEY" "1" "February 15, 2012" "0.9.7" "Salt"
.SH NAME
salt-key \- salt-key Documentation
.
@@ -51,8 +51,8 @@ List the unaccepted minion public keys.
.INDENT 0.0
.TP
.B \-L, \-\-list\-all
-List all public keys on this salt master, both accepted and pending
-acceptance.
+List all public keys on this salt master: accepted, pending,
+and rejected.
.UNINDENT
.INDENT 0.0
.TP
@@ -66,6 +66,16 @@ Accepts all pending public keys.
.UNINDENT
.INDENT 0.0
.TP
+.B \-r REJECT, \-\-reject=REJECT
+Reject the named minion public key.
+.UNINDENT
+.INDENT 0.0
+.TP
+.B \-R, \-\-reject\-all
+Rejects all pending public keys.
+.UNINDENT
+.INDENT 0.0
+.TP
.B \-c CONFIG, \-\-config=CONFIG
The master configuration file needs to be read to determine where the salt
keys are stored via the pki_dir configuration value;
@@ -74,7 +84,7 @@ default=/etc/salt/master
.SH AUTHOR
Thomas S. Hatch <thatch@gmail.com> and many others, please see the Authors file
.SH COPYRIGHT
-2011, Thomas S. Hatch
+2012, Thomas S. Hatch
.\" Generated by docutils manpage writer.
.\"
.
View
4 doc/man/salt-master.1
@@ -1,4 +1,4 @@
-.TH "SALT-MASTER" "1" "January 20, 2012" "0.9.6" "Salt"
+.TH "SALT-MASTER" "1" "February 15, 2012" "0.9.7" "Salt"
.SH NAME
salt-master \- salt-master Documentation
.
@@ -69,7 +69,7 @@ settings see the config file. Default: \fBwarning\fP.
.SH AUTHOR
Thomas S. Hatch <thatch@gmail.com> and many others, please see the Authors file
.SH COPYRIGHT
-2011, Thomas S. Hatch
+2012, Thomas S. Hatch
.\" Generated by docutils manpage writer.
.\"
.
View
4 doc/man/salt-minion.1
@@ -1,4 +1,4 @@
-.TH "SALT-MINION" "1" "January 20, 2012" "0.9.6" "Salt"
+.TH "SALT-MINION" "1" "February 15, 2012" "0.9.7" "Salt"
.SH NAME
salt-minion \- salt-minion Documentation
.
@@ -70,7 +70,7 @@ settings see the config file. Default: \fBwarning\fP.
.SH AUTHOR
Thomas S. Hatch <thatch@gmail.com> and many others, please see the Authors file
.SH COPYRIGHT
-2011, Thomas S. Hatch
+2012, Thomas S. Hatch
.\" Generated by docutils manpage writer.
.\"
.
View
6 doc/man/salt-run.1
@@ -1,4 +1,4 @@
-.TH "SALT-RUN" "1" "January 20, 2012" "0.9.6" "Salt"
+.TH "SALT-RUN" "1" "February 15, 2012" "0.9.7" "Salt"
.SH NAME
salt-run \- salt-run Documentation
.
@@ -41,7 +41,7 @@ salt\-run RUNNER
.fi
.SH DESCRIPTION
.sp
-Salt run is the frontend command for executing \fBSalt Runners\fP.
+salt\-run is the frontend command for executing \fBSalt Runners\fP.
Salt runners are simple modules used to execute convenience functions on the
master
.SH OPTIONS
@@ -60,7 +60,7 @@ default=/etc/salt/master
.SH AUTHOR
Thomas S. Hatch <thatch@gmail.com> and many others, please see the Authors file
.SH COPYRIGHT
-2011, Thomas S. Hatch
+2012, Thomas S. Hatch
.\" Generated by docutils manpage writer.
.\"
.
View
4 doc/man/salt-syndic.1
@@ -1,4 +1,4 @@
-.TH "SALT-SYNDIC" "1" "January 20, 2012" "0.9.6" "Salt"
+.TH "SALT-SYNDIC" "1" "February 15, 2012" "0.9.7" "Salt"
.SH NAME
salt-syndic \- salt-syndic Documentation
.
@@ -64,7 +64,7 @@ The minion configuration file to use, the default is /etc/salt/minion
.SH AUTHOR
Thomas S. Hatch <thatch@gmail.com> and many others, please see the Authors file
.SH COPYRIGHT
-2011, Thomas S. Hatch
+2012, Thomas S. Hatch
.\" Generated by docutils manpage writer.
.\"
.
View
4 doc/man/salt.1
@@ -1,4 +1,4 @@
-.TH "SALT" "1" "January 20, 2012" "0.9.6" "Salt"
+.TH "SALT" "1" "February 15, 2012" "0.9.7" "Salt"
.SH NAME
salt \- salt
.
@@ -155,7 +155,7 @@ Print the output from the salt command in json.
.SH AUTHOR
Thomas S. Hatch <thatch@gmail.com> and many others, please see the Authors file
.SH COPYRIGHT
-2011, Thomas S. Hatch
+2012, Thomas S. Hatch
.\" Generated by docutils manpage writer.
.\"
.
View
1,703 doc/man/salt.7
1,193 additions, 510 deletions not shown because the diff is too large. Please use a local Git client to view these changes.
View
17 doc/ref/cli/index.rst
@@ -82,14 +82,14 @@ Targeting with Executions
`````````````````````````
As of 0.8.8 targeting with executions is still under heavy development and this
-documentation is written to refernce the behavior of execution matching in the
+documentation is written to reference the behavior of execution matching in the
future.
Execution matching allows for a primary function to be executed, and then based
on the return of the primary function the main function is executed.
-Execution matching allows for matching minions based on any arbitrairy running
-data on tne minions.
+Execution matching allows for matching minions based on any arbitrary running
+data on the minions.
Compound Targeting
``````````````````
@@ -104,13 +104,14 @@ is well defined with an example:
salt -C 'G@os:Debian and webser* or E@db.*' test.ping
-in this example any minion who's id starts with webser and is running Debian,
-or any minion who's id starts with db will be matched.
+In this example any minion who's id starts with ``webser`` and is running
+Debian, or any minion who's id starts with db will be matched.
The type of matcher defaults to glob, but can be specified with the
-corresponding letter followed by the @ symbol. In the above example a grain is
-used with G@ as well as a regular expression with E@. The webser* target does
-not need to be prefaced with a target type specifier because it is a glob.
+corresponding letter followed by the ``@`` symbol. In the above example a grain
+is used with ``G@`` as well as a regular expression with ``E@``. The
+``webser*`` target does not need to be prefaced with a target type specifier
+because it is a glob.
Node Group Targeting
````````````````````
View
4 doc/ref/cli/salt-cp.rst
@@ -36,12 +36,12 @@ Options
.. option:: -E, --pcre
- The target expression will be interpereted as a pcre regular expression
+ The target expression will be interpreted as a pcre regular expression
rather than a shell glob.
.. option:: -L, --list
- The target expression will be interpereted as a comma delimited list,
+ The target expression will be interpreted as a comma delimited list,
example: server1.foo.bar,server2.foo.bar,example7.quo.qux
.. option:: -G, --grain
View
12 doc/ref/cli/salt-key.rst
@@ -28,8 +28,8 @@ Options
.. option:: -L, --list-all
- List all public keys on this salt master, both accepted and pending
- acceptance.
+ List all public keys on this salt master: accepted, pending,
+ and rejected.
.. option:: -a ACCEPT, --accept=ACCEPT
@@ -39,6 +39,14 @@ Options
Accepts all pending public keys.
+.. option:: -r REJECT, --reject=REJECT
+
+ Reject the named minion public key.
+
+.. option:: -R, --reject-all
+
+ Rejects all pending public keys.
+
.. option:: -c CONFIG, --config=CONFIG
The master configuration file needs to be read to determine where the salt
View
2 doc/ref/cli/salt-run.rst
@@ -14,7 +14,7 @@ Synopsis
Description
===========
-Salt run is the frontend command for executing ``Salt Runners``.
+salt-run is the frontend command for executing ``Salt Runners``.
Salt runners are simple modules used to execute convenience functions on the
master
View
17 doc/ref/configuration/master.rst
@@ -198,6 +198,23 @@ root of the base environment
state_top: top.sls
+.. conf_master:: external_nodes
+
+``external_nodes``
+------------------
+
+Default: None
+
+The external_nodes option allows Salt to gather data that would normally be
+placed in a top file from and external node controller. The external_nodes
+option is the executable that will return the ENC data. Remember that Salt
+will look for external nodes AND top files and combine the results if both
+are enabled and available!
+
+.. code-block:: yaml
+
+ external_nodes: cobbler-ext-nodes
+
.. conf_master:: renderer
``renderer``
View
15 doc/ref/configuration/minion.rst
@@ -310,6 +310,21 @@ enabled and can be disabled by changing this value to False
clean_dynamic_modules: True
+.. conf_minion:: environment
+
+``environment``
+---------------
+
+Default: ``None``
+
+Normally the minion is not isolated to any single environment on the master
+when running states, but the environment can be isolated on the minion side
+by statically setting it. Remember that the recommended way to manage
+environments is to isolate via the top file.
+
+.. code-block:: yaml
+
+ environment: None
Security Settings
------------------
View
43 doc/ref/grains.rst
@@ -16,18 +16,38 @@ information in grains is unchanging, therefore the nature of the data is
static. So grains information are things like the running kernel, or the
operating system.
+Grains in the Minion Config
+===========================
+
+Grains can also be statically assigned within the minion configuration file.
+Just add the option ``grains`` and pass options to it:
+
+.. code-block:: yaml
+
+ grains:
+ roles:
+ - webserver
+ - memcache
+ deployment: datacenter4
+ cabinet: 13
+ cab_u: 14-15
+
+Then statis data specific to your servers can be retrived via Salt, or used
+inside of the state system for matching. It also makes targeting, in the case
+of the example above, simply based on specific data about your deployment.
+
Writing Grains
==============
-Grains are easy to write, the grains interface is derived my executing all of
-the "public" functions found in the modules located in the grains package.
-The functions in the modules of the grains must return a python dict, the keys
-in the dict are the names of the grains, the values are the values.
-
-This means that the actual grains interface is simply a python dict.
+Grains are easy to write. The grains interface is derived by executing all of
+the "public" functions found in the modules located in the grains package or
+the custom grains directory. The functions in the modules of the grains must
+return a python dict, where the keys in the dict are the names of the grains and
+the values are the values.
-Before adding a grain to salt, consider what the grain is and remember that
-grains need to be static data.
+Custom grains should be placed in a ``_grains`` directory located under your
+:conf_master:`file_roots`. Before adding a grain to salt, consider what the grain
+is and remember that grains need to be static data.
Examples of Grains
------------------
@@ -36,3 +56,10 @@ The core module in the grains package is where the main grains are loaded by
the salt minion and the principal example of how to write grains:
:blob:`salt/grains/core.py`
+
+Syncing Grains
+--------------
+
+Syncing grains can be done a number of ways, they are automatically synced when
+state.highstate is called, or the grains can be synced and reloaded by calling
+the saltutil.sync_grains or saltutil.sync_all functions.
View
2 doc/ref/modules/all/index.rst
@@ -37,6 +37,7 @@ Full list of builtin modules
network
pacman
pip
+ pkg
ps
publish
puppet
@@ -51,6 +52,7 @@ Full list of builtin modules
ssh
state
status
+ sys
systemd
test
tomcat
View
15 doc/ref/modules/all/salt.modules.pkg.rst
@@ -0,0 +1,15 @@
+================
+salt.modules.pkg
+================
+
+.. py:module:: salt.modules.pkg
+ :synopsis: A virtual module for installing software packages
+
+``pkg`` is a virtual module that is fulfilled by one of the following modules:
+
+* :mod:`salt.modules.apt`
+* :mod:`salt.modules.ebuild`
+* :mod:`salt.modules.freebsdpkg`
+* :mod:`salt.modules.pacman`
+* :mod:`salt.modules.yumpkg`
+* :mod:`salt.modules.yumpkg5`
View
24 doc/ref/modules/all/salt.modules.sys.rst
@@ -0,0 +1,24 @@
+================
+salt.modules.sys
+================
+
+A pseudo-module for working with modules on a minion.
+
+.. py:module:: salt.modules.sys
+
+.. py:function:: doc([module[, module.function]])
+
+ Display the inline documentation for all available modules, or for the
+ specified module or function.
+
+.. py:function:: reload_modules
+
+ Instruct the minion to reload all available modules in memory.
+
+.. py:function:: list_modules
+
+ List all available (loaded) modules.
+
+.. py:function:: list_functions
+
+ List all known functions that are in available (loaded) modules.
View
29 doc/ref/renderers/index.rst
@@ -17,6 +17,35 @@ anything. This means that the Salt states could be managed by xml files, html
files, puppet files, or any format that can be translated into the data
structure used by the state system.
+Multiple Renderers
+------------------
+
+When deploying a state tree a default renderer is selected in the master
+configuration file with the renderer option. But multiple renderers can be
+used inside the same state tree.
+
+When rendering sls files Salt checks for the presence of a salt specific
+shebang line. The shebang line syntax was chosen because it is familiar to
+the target audience, the systems admin and systems engineer.
+
+The shebang line directly calls the name of the renderer as it is specified
+within Salt. One of the most common reasons to use multiple renderers in to
+use the python or ``py`` renderer:
+
+.. code-block:: python
+
+ #!py
+
+ def run():
+ '''
+ Install the python-mako package
+ '''
+ return {'include': ['python'],
+ 'python-mako': {'pkg': ['installed']}}
+
+The first line is a shebang that references the ``py`` renderer.
+
+
Writing Renderers
-----------------
View
30 doc/ref/returners/index.rst
@@ -4,7 +4,7 @@ Returners
By default the return values of the commands sent to the salt minions are