Skip to content
Browse files

Merge branch '0.9.8'

  • Loading branch information...
2 parents 1d1ab88 + 48c1e56 commit 9fcf884cdd4e9964b51c6e6563628c49cbffa2f8 @thatch45 thatch45 committed Mar 21, 2012
Showing with 21,257 additions and 5,978 deletions.
  1. +8 −0 MANIFEST.in
  2. +28 −26 README.rst
  3. +19 −1 conf/master.template
  4. +65 −0 conf/minion.template
  5. +6 −0 doc/_templates/domainindex.html
  6. +6 −0 doc/_templates/page.html
  7. +2 −0 doc/conf.py
  8. +12 −1 doc/contents.rst
  9. +126 −101 doc/index.rst
  10. +36 −1 doc/man/salt-call.1
  11. +24 −4 doc/man/salt-cp.1
  12. +11 −1 doc/man/salt-key.1
  13. +6 −1 doc/man/salt-master.1
  14. +6 −1 doc/man/salt-minion.1
  15. +1 −1 doc/man/salt-run.1
  16. +6 −1 doc/man/salt-syndic.1
  17. +49 −3 doc/man/salt.1
  18. +9,591 −3,574 doc/man/salt.7
  19. +2 −2 doc/ref/cli/index.rst
  20. +29 −0 doc/ref/cli/salt-call.rst
  21. +21 −3 doc/ref/cli/salt-cp.rst
  22. +8 −0 doc/ref/cli/salt-key.rst
  23. +4 −0 doc/ref/cli/salt-master.rst
  24. +4 −0 doc/ref/cli/salt-minion.rst
  25. +4 −0 doc/ref/cli/salt-syndic.rst
  26. +44 −3 doc/ref/cli/salt.rst
  27. +16 −17 doc/ref/configuration/master.rst
  28. +4 −4 doc/ref/configuration/minion.rst
  29. +31 −0 doc/ref/file_server/dynamic-modules.rst
  30. +65 −0 doc/ref/file_server/file_roots.rst
  31. +2 −2 doc/ref/file_server/index.rst
  32. +22 −3 doc/ref/modules/all/index.rst
  33. +2 −2 doc/ref/modules/all/{salt.modules.cmd.rst → salt.modules.cmdmod.rst}
  34. +6 −0 doc/ref/modules/all/salt.modules.debconfmod.rst
  35. +6 −0 doc/ref/modules/all/salt.modules.freebsdservice.rst
  36. +6 −0 doc/ref/modules/all/salt.modules.gem.rst
  37. +6 −0 doc/ref/modules/all/salt.modules.git.rst
  38. +6 −0 doc/ref/modules/all/salt.modules.hg.rst
  39. +6 −0 doc/ref/modules/all/salt.modules.kvm_hyper.rst
  40. +6 −0 doc/ref/modules/all/salt.modules.nginx.rst
  41. +6 −0 doc/ref/modules/all/salt.modules.pillar.rst
  42. +1 −0 doc/ref/modules/all/salt.modules.pkg.rst
  43. +6 −0 doc/ref/modules/all/salt.modules.rvm.rst
  44. +11 −2 doc/ref/modules/all/salt.modules.sys.rst
  45. +6 −0 doc/ref/modules/all/salt.modules.upstart.rst
  46. +6 −0 doc/ref/modules/all/salt.modules.win_file.rst
  47. +6 −0 doc/ref/modules/all/salt.modules.win_network.rst
  48. +6 −0 doc/ref/modules/all/salt.modules.win_shadow.rst
  49. +6 −0 doc/ref/modules/all/salt.modules.zypper.rst
  50. +4 −3 doc/ref/modules/index.rst
  51. +1 −1 doc/ref/python-api.rst
  52. +5 −5 doc/ref/renderers/all/index.rst
  53. +1 −1 doc/ref/returners/index.rst
  54. +1 −1 doc/ref/runners.rst
  55. +2 −0 doc/ref/states/all/index.rst
  56. +6 −0 doc/ref/states/all/salt.states.gem.rst
  57. +6 −0 doc/ref/states/all/salt.states.rvm.rst
  58. +74 −0 doc/ref/states/extend.rst
  59. +4 −4 doc/ref/states/highstate.rst
  60. +11 −10 doc/ref/states/index.rst
  61. +172 −1 doc/ref/states/ordering.rst
  62. +47 −0 doc/ref/states/providers.rst
  63. +1 −1 doc/ref/states/top.rst
  64. +73 −2 doc/ref/states/writing.rst
  65. +4 −4 doc/ref/syndic.rst
  66. +12 −0 doc/topics/community.rst
  67. +4 −0 doc/topics/configuration.rst
  68. +1 −1 doc/topics/index.rst
  69. +272 −0 doc/topics/installation/arch.rst
  70. +40 −0 doc/topics/installation/debian.rst
  71. +209 −0 doc/topics/installation/fedora.rst
  72. +56 −81 doc/topics/{tutorials → installation}/freebsd.rst
  73. +24 −0 doc/topics/installation/gentoo.rst
  74. +48 −0 doc/topics/installation/index.rst
  75. +146 −0 doc/topics/installation/windows.rst
  76. +12 −6 doc/topics/jobs/index.rst
  77. +68 −0 doc/topics/pillar/index.rst
  78. +29 −29 doc/topics/releases/0.9.7.rst
  79. +397 −0 doc/topics/releases/0.9.8.rst
  80. +2 −2 doc/topics/roadmap/index.rst
  81. +1 −1 doc/topics/specs/salt_auth_proto.rst
  82. +14 −16 doc/topics/specs/salt_auth_proto_abs.rst
  83. +29 −0 doc/topics/targeting/compound.rst
  84. +81 −0 doc/topics/targeting/globbing.rst
  85. +10 −10 doc/{ref → topics/targeting}/grains.rst
  86. +33 −0 doc/topics/targeting/index.rst
  87. +26 −0 doc/topics/targeting/nodegroups.rst
  88. +132 −0 doc/topics/troubleshooting/index.rst
  89. +104 −0 doc/topics/troubleshooting/yaml_idiosyncrasies.rst
  90. +19 −5 doc/topics/tutorials/bootstrap_ec2.rst
  91. +68 −0 doc/topics/tutorials/firewall.rst
  92. +1 −1 doc/topics/tutorials/modules.rst
  93. +59 −49 doc/topics/tutorials/starting_states.rst
  94. +8 −7 doc/topics/tutorials/states_pt1.rst
  95. +11 −11 doc/topics/tutorials/states_pt2.rst
  96. +11 −11 doc/topics/tutorials/states_pt3.rst
  97. +0 −1 pkg/rpm/salt.spec
  98. +29 −93 salt/__init__.py
  99. +178 −112 salt/cli/__init__.py
  100. +136 −0 salt/cli/batch.py
  101. +13 −8 salt/cli/caller.py
  102. +4 −0 salt/cli/cp.py
  103. +21 −9 salt/cli/key.py
  104. +396 −46 salt/client.py
  105. +69 −59 salt/config.py
  106. +21 −18 salt/crypt.py
  107. +12 −6 salt/exceptions.py
  108. +577 −0 salt/fileclient.py
  109. +8 −2 salt/grains/core.py
  110. +163 −66 salt/loader.py
  111. +172 −21 salt/master.py
  112. +136 −444 salt/minion.py
  113. +74 −7 salt/modules/apt.py
  114. +10 −4 salt/modules/butterkvm.py
  115. +83 −41 salt/modules/{cmd.py → cmdmod.py}
  116. +19 −14 salt/modules/cp.py
  117. +120 −0 salt/modules/debconfmod.py
  118. +132 −0 salt/modules/django.py
  119. +1 −4 salt/modules/ebuild.py
  120. +34 −10 salt/modules/file.py
  121. +3 −6 salt/modules/freebsdkmod.py
  122. +17 −1 salt/modules/freebsdpkg.py
  123. +2 −3 salt/modules/freebsdservice.py
  124. +148 −0 salt/modules/gem.py
  125. +2 −6 salt/modules/gentoo_service.py
  126. +308 −0 salt/modules/git.py
  127. +1 −2 salt/modules/groupadd.py
  128. +186 −0 salt/modules/hg.py
  129. +1 −5 salt/modules/hosts.py
  130. +2 −2 salt/modules/kmod.py
  131. +15 −12 salt/modules/kvm_hyper.py
  132. +37 −10 salt/modules/linux_sysctl.py
  133. +2 −2 salt/modules/mdadm.py
  134. +2 −2 salt/modules/mount.py
  135. +112 −82 salt/modules/mysql.py
  136. +56 −18 salt/modules/network.py
  137. +14 −1 salt/modules/pacman.py
  138. +18 −0 salt/modules/pillar.py
  139. +342 −39 salt/modules/pip.py
  140. +231 −0 salt/modules/postgres.py
  141. +20 −1 salt/modules/ps.py
  142. +41 −3 salt/modules/publish.py
  143. +7 −11 salt/modules/puppet.py
  144. +1 −2 salt/modules/pw_group.py
  145. +17 −17 salt/modules/pw_user.py
  146. +137 −0 salt/modules/reg.py
  147. +11 −14 salt/modules/rh_service.py
  148. +259 −0 salt/modules/rvm.py
  149. +22 −3 salt/modules/saltutil.py
  150. +1 −1 salt/modules/selinux.py
  151. +15 −0 salt/modules/service.py
  152. +11 −3 salt/modules/shadow.py
  153. +2 −7 salt/modules/solr.py
  154. +116 −35 salt/modules/ssh.py
  155. +13 −2 salt/modules/state.py
  156. +2 −0 salt/modules/systemd.py
  157. +16 −2 salt/modules/test.py
  158. +110 −0 salt/modules/upstart.py
  159. +151 −17 salt/modules/useradd.py
  160. +168 −25 salt/modules/virt.py
  161. +16 −11 salt/modules/virtualenv.py
  162. +8 −8 salt/modules/win_disk.py
  163. +558 −0 salt/modules/win_file.py
  164. +20 −3 salt/modules/win_groupadd.py
  165. +304 −0 salt/modules/win_network.py
  166. +48 −0 salt/modules/win_shadow.py
  167. +76 −6 salt/modules/win_useradd.py
  168. +23 −13 salt/modules/yumpkg.py
  169. +11 −0 salt/modules/yumpkg5.py
  170. +224 −0 salt/modules/zypper.py
  171. +43 −14 salt/output.py
  172. +13 −7 salt/payload.py
  173. +315 −0 salt/pillar.py
  174. +1 −0 salt/renderers/json_jinja.py
  175. +1 −0 salt/renderers/json_mako.py
  176. +1 −0 salt/renderers/py.py
  177. +13 −10 salt/renderers/yaml_jinja.py
  178. +12 −7 salt/renderers/yaml_mako.py
  179. +17 −3 salt/returners/cassandra_return.py
  180. +14 −1 salt/returners/mongo_return.py
  181. +14 −1 salt/returners/redis_return.py
  182. +20 −11 salt/runners/jobs.py
  183. +3 −6 salt/runners/manage.py
  184. +33 −0 salt/runners/network.py
  185. +421 −141 salt/state.py
  186. +25 −4 salt/states/cmd.py
  187. +400 −307 salt/states/file.py
  188. +70 −0 salt/states/gem.py
  189. +1 −1 salt/states/kmod.py
  190. +16 −6 salt/states/mysql_grants.py
  191. +12 −5 salt/states/mysql_user.py
  192. +138 −0 salt/states/pip.py
  193. +19 −14 salt/states/pkg.py
  194. +61 −0 salt/states/postgres_database.py
  195. +227 −0 salt/states/rvm.py
  196. +29 −23 salt/states/service.py
  197. +26 −8 salt/states/ssh_auth.py
  198. +74 −7 salt/states/user.py
  199. +11 −7 salt/states/virtualenv.py
  200. +57 −0 salt/template.py
  201. +95 −28 salt/utils/__init__.py
  202. +21 −10 salt/utils/jinja.py
  203. +44 −0 salt/utils/process.py
Sorry, we could not display the entire diff because it was too big.
View
8 MANIFEST.in
@@ -1,3 +1,11 @@
include AUTHORS
include LICENSE
include README.rst
+include requirements.txt
+include tests/*.py
+recursive-include tests *.py
+include tests/integration/modules/files/*
+include tests/integration/files/*
+include tests/integration/tmp/_README
+include tests/unit/templates/files/*
+recursive-include doc *
View
54 README.rst
@@ -11,8 +11,8 @@ Salt is a distributed remote execution system used to execute commands and
query data. It was developed in order to bring the best solutions found in the
world of remote execution together and make them better, faster and more
malleable. Salt accomplishes this via its ability to handle larger loads of
-information, and not just dozens, but hundreds or even thousands of individual
-servers, handle them quickly and through a simple and manageable interface.
+information, and not just dozens, but hundreds, or even thousands of individual
+servers. It handles them quickly and through a simple yet manageable interface.
Simplicity
==========
@@ -30,61 +30,63 @@ Parallel Execution
==================
The core function of Salt is to enable remote commands to be called in parallel
-rather than in serial, to use a secure and encrypted protocol, the smallest and
-fastest network payloads possible, and with a simple programmer interface. Salt
-also introduces more granular controls to the realm of remote execution,
+rather than in serial. It does this over a secure and encrypted protocol using
+the smallest and fastest network payloads possible. All of this is possible
+and salt still manages to have a simple interface for developers. Salt also
+introduces more granular controls to the realm of remote execution,
allowing for commands to be executed in parallel and for systems to be targeted
-based on more than just hostname, but by system properties.
+based on more than just hostname, but by live system properties.
Building on Proven Technology
=============================
Salt takes advantage of a number of technologies and techniques. The networking
-layer is built with the excellent `ZeroMQ`_ networking library, so Salt itself
-contains a viable, and transparent, AMQ broker inside the daemon. Salt uses
+layer is built with the excellent `ZeroMQ`_ networking library. Salt itself
+contains a viable, and transparent, 0MQ broker inside the daemon. Salt uses
public keys for authentication with the master daemon, then uses faster AES
-encryption for payload communication, this means that authentication and
+encryption for payload communication. This means that authentication and
encryption are also built into Salt. Salt takes advantage of communication via
-Python pickles, enabling fast and light network traffic.
+the most excellent `msgpack`_ library, enabling fast and light network traffic.
.. _`ZeroMQ`: http://www.zeromq.org/
+.. _`msgpack`: http://msgpack.org/
+
+
Python Client Interface
=======================
-In order to allow for simple expansion, Salt execution routines can be written
-as plain Python modules and the data collected from Salt executions can be sent
-back to the master server, or to any arbitrary program. Salt can be called from
-a simple Python API, or from the command line, so that Salt can be used to
-execute one-off commands as well as operate as an integral part of a larger
-application.
+Salt execution routines can be written as plain Python modules and the data
+collected from execution can be sent back to the master server, or any
+arbitrary program. Salt can be called from a simple Python API, or from the
+command line. This makes it easy to execute one-off commands as well as
+operate as an integral part of a larger application.
+
Fast, Flexible, Scalable, Secure
================================
The result is a system that can execute commands across groups of
varying size, from very few to very many servers at considerably high
-speed. A system that is very fast, easy to set up and amazingly
-malleable, able to suit the needs of any number of servers working
-within the same system. Salt’s unique architecture brings together the
-best of the remote execution world, amplifies its capabilities and
-expands its range, resulting in this system that is as versatile as it
-is practical, able to suit any network. Our source code is pretty
-(*pep8*, *pylint*, *pychecker*), well documented, and since we use a
+speed. We consider speed to be a feature, not an afterthought. Salt’s
+unique architecture brings together the best of the remote execution
+world, amplifies its capabilities and expands its range, resulting in
+this system that is as versatile as it is practical. Our source code is
+pretty (*pep8*, *pylint*, *pychecker*), well documented, and since we use a
battle-tested branching model (*gitflow*), we are able to deliver
stable software while keeping a fast pace. Last but not least,
security is an intrinsic part of salt and something not just
influencing how source code is written and how tests are done, but
also something that defines the overall architecture and has heavy
-influence on the core design of salt.
+influence on the core design tenants.
Open
====
Salt is developed under the `Apache 2.0 licence`_, and can be used for
open and proprietary projects. Please submit your expansions back to
the Salt project so that we can all benefit together as Salt grows.
-So, please feel free to sprinkle some of this around your systems and
-let the deliciousness come forth.
+Finally, please sprinkle some salt around your systems and let the
+deliciousness come forth.
.. _`Apache 2.0 licence`: http://www.apache.org/licenses/LICENSE-2.0.html
View
20 conf/master.template
@@ -113,6 +113,19 @@
# The buffer size in the file server can be adjusted here:
#file_buffer_size: 1048576
+# Pillar Configurations:
+# The Salt Pillar, is a system that allows for the building of global data
+# that is refined based on minion. Basically, the pillar creates data that
+# can be generated to be specific based on the grains of the minion. Pillar
+# is laid out in the same fashion as the file server, with environments, a top
+# file and sls files. The difference is that the data does not need to be
+# in the highstate format, and is generally just key/value pairs.
+#
+#pillar_roots:
+# base:
+# - /srv/pillar
+#
+
##### Syndic settings #####
##########################################
# The Salt syndic is used to pass commands through a master from a higher
@@ -127,7 +140,7 @@
#order_masters: False
#
# If this master will be running a salt syndic daemon, syndic_master tells
-# this master where to recieve commands from.
+# this master where to receive commands from.
#syndic_master: masterofmaster
##### Peer Publish settings #####
@@ -202,3 +215,8 @@
# group1: 'L@foo.domain.com,bar.domain.com,baz.domain.com and bl*.domain.com',
# group2: 'G@os:Debian and foo.domain.com',
+##### Range Cluster settings #####
+##########################################
+# The range server (and optional port) that
+# serves your cluster information
+#range_server: range:80
View
65 conf/minion.template
@@ -24,6 +24,11 @@
# clusters.
#id:
+# Append a domain to a hostname in the event that it does not exist. This is
+# usefule for systems where socket.getfqdn() does not actually result in a
+# FQDN (for instance, Solaris).
+#append_domain:
+
# 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
@@ -44,6 +49,10 @@
# seconds, between those reconnection attempts.
#acceptance_wait_time = 10
+# When healing a dns_check is run, this is to make sure that the originally
+# resolved dns has not changed, if this is something that does not happen in
+# your environment then set this value to False.
+#dns_check: True
##### Minion module management #####
@@ -62,6 +71,14 @@
#states_dirs: []
#render_dirs: []
#
+# A module provider can be statically overwritten or extended for the minion
+# via the providers option, in this case the default module will be
+# overwritten by the specified module. In this example the pkg module will
+# be provided by the yumpkg5 module instead of the system default.
+#
+# providers:
+# pkg: yumpkg5
+#
# Enable Cython modules searching and loading. (Default: False)
#cython_enable: False
@@ -101,6 +118,54 @@
# by statically setting it. Remember that the recommended way to manage
# environments is to issolate via the top file.
#environment: None
+#
+# If using the local file directory, then the state top file name needs to be
+# defined, by default this is top.sls.
+#state_top: top.sls
+
+##### File Directory Settings #####
+##########################################
+# The Salt Minion can redirect all file server operations to a local directory,
+# this allows for the same state tree that is on the master to be used if
+# coppied completely onto the minion. This is a literal copy of the settings on
+# the master but used to reference a local directory on the minion.
+
+# Set the file client, the client defaults to looking on the master server for
+# files, but can be directed to look at the local file directory setting
+# defined below by setting it to local.
+#file_client: remote
+
+# The file directory works on environments passed to the minion, 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.
+# Example:
+# file_roots:
+# base:
+# - /srv/salt/
+# dev:
+# - /srv/salt/dev/services
+# - /srv/salt/dev/states
+# prod:
+# - /srv/salt/prod/services
+# - /srv/salt/prod/states
+#
+# Default:
+#file_roots:
+# base:
+# - /srv/salt
+
+# The hash_type is the hash to use when discovering the hash of a file in
+# the minion directory, the default is md5, but sha1, sha224, sha256, sha384
+# and sha512 are also supported.
+#hash_type: md5
+
+# The Salt pillar is searched for locally if file_client is set to local. If
+# this is the case, and pillar data is defined, then the pillar_roots need to
+# also be configured on the minion:
+#pillar_roots:
+# base:
+# - /srv/pillar
###### Security settings #####
###########################################
View
6 doc/_templates/domainindex.html
@@ -0,0 +1,6 @@
+{% extends "!domainindex.html" %}
+
+{%- 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
6 doc/_templates/page.html
@@ -0,0 +1,6 @@
+{% extends "!page.html" %}
+
+{%- 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
2 doc/conf.py
@@ -30,6 +30,8 @@ def __getattr__(self, name):
MOCK_MODULES = [
# salt core
'yaml',
+ 'yaml.nodes',
+ 'yaml.constructor',
'msgpack',
'zmq',
'Crypto',
View
13 doc/contents.rst
@@ -7,15 +7,23 @@ Full Table of Contents
:glob:
topics/index
+ topics/installation/index
topics/configuration
+ topics/targeting/index
topics/tutorials/modules
+ topics/tutorials/starting_states
topics/tutorials/states*
+ topics/tutorials/firewall
+ topics/tutorials/bootstrap_ec2
+ topics/pillar/index
+ topics/jobs/index
+ topics/troubleshooting/index
+ topics/troubleshooting/yaml_idiosyncrasies
topics/community
ref/index
ref/modules/*
ref/modules/all/index
- ref/grains
ref/returners/*
ref/returners/all/index
ref/states/*
@@ -27,6 +35,8 @@ Full Table of Contents
ref/syndic
ref/python-api
ref/file_server/index
+ ref/file_server/file_roots
+ ref/file_server/dynamic-modules
ref/configuration/*
ref/cli/index
@@ -39,5 +49,6 @@ Full Table of Contents
ref/cli/salt-run
ref/cli/salt-syndic
+ topics/specs/salt_auth_proto_abs
topics/roadmap/index
topics/releases/index
View
227 doc/index.rst
@@ -1,6 +1,7 @@
.. _contents:
.. |vid| image:: /_static/film_link.png
+ :class: math
Get started with Salt
=====================
@@ -15,14 +16,14 @@ Get started with Salt
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;
+authentication**; incredibly scalable 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
-------------------------
+Tutorial 1: Remote execution
+----------------------------
.. sidebar:: |vid| Screencasts
@@ -34,20 +35,21 @@ 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`_
+1. :doc:`Installation </topics/installation/index>`
2. :doc:`Configure the minion <topics/configuration>`
3. :doc:`Run remote commands <topics/tutorials/modules>`
-Step 2: Configuration management
---------------------------------
+Tutorial 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>`
+1. :doc:`Getting Started with States<topics/tutorials/starting_states>`
+2. :doc:`Basic config management <topics/tutorials/states_pt1>`
+3. :doc:`Less basic config management <topics/tutorials/states_pt2>`
+4. :doc:`Advanced techniques <topics/tutorials/states_pt3>`
Salt in depth
=============
@@ -56,132 +58,155 @@ 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
+.. sidebar:: More tutorials!
+
+ * :doc:`Bootstraping Salt on EC2 <topics/tutorials/bootstrap_ec2>`
+ * :doc:`Installing Salt on FreeBSD <topics/installation/freebsd>`
+
+.. contents:: The components of Salt
:local:
:depth: 2
-**Remote execution**
- Remote execution is the core functionality of Salt. Running pre-defined or
- arbitrary commands on remote hosts.
+:doc:`Targeting </topics/targeting/index>`
+------------------------------------------
+
+Targeting is specifying which minions should execute commands or manage server
+configuration.
+
+:doc:`Globbing and regex </topics/targeting/globbing>`
+ Match minions using globbing and regular expresssions.
+
+:doc:`Grains </topics/targeting/grains>`
+ Match minions using bits of static information about the minion such as
+ OS, software versions, virtualization, CPU, memory, and much more.
- **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:`Node groups </topics/targeting/nodegroups>`
+ Statically define groups of minions.
- :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:`Compound matchers </topics/targeting/compound>`
+ Combine the above matchers as a single target.
- :doc:`Writing modules <ref/modules/index>`
- A guide on how to write Salt modules
+Remote execution
+----------------
- **Targeting**
- Specify which hosts should run commands or manage configuration.
+Remote execution is the core functionality of Salt. Running pre-defined or
+arbitrary commands on remote hosts.
- :doc:`Targeting <ref/targeting/index>`
- Hostnames, lists, regular expressions, or define groups.
+**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:`Grains <ref/grains>`
- Bits of static information about a minion such as OS, version,
- virtualization, CPU, memory, and much more.
+ :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!)
- **Returners**
- Salt returners allow saving minion responses in various datastores or
- to various locations in addition to display at the CLI.
+ :doc:`Writing modules <ref/modules/index>`
+ A guide on how to write Salt modules
+
+**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
+------------------------
- :doc:`Full list of returners </ref/returners/all/index>`
- Store minion responses in Redis, Mongo, Cassandra or more.
+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.
- :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.
+**States**
+ Express the state of a host using small, easy to read, easy to
+ understand configuration files. No programming required (unless you
+ want to).
-**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.
+ :doc:`Full list of states <ref/states/all/index>`
+ Install packages, create users, transfer files, start services, and
+ more and more.
- **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:`Using states <ref/states/index>`
+ You've seen the big list of available states, now learn how to call
+ them.
- :doc:`Full list of states <ref/states/all/index>`
- Install packages, create users, transfer files, start services, and
- more and more.
+ :doc:`Highstate data structure <ref/states/highstate>`
+ A dry, vocabulary and technical representation of the configuration
+ format that states represent.
- :doc:`Using states <ref/states/index>`
- You've seen the big list of available states, now learn how to call
- them.
+**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:`Highstate data structure <ref/states/highstate>`
- A dry, vocabulary and technical representation of the configuration
- format that states represent.
+ :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.)
- **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:`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.
- :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.)
+Miscellaneous topics
+--------------------
- :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.
+Salt is a many splendid thing.
-**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:`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:`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:`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:`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``.
- :doc:`Python API interface <ref/python-api>`
- Use Salt programmatically from your own scripts and programs easily and
- simply via ``import salt``.
+Reference
+---------
-**Reference**
- :doc:`Command-line interface <ref/cli/index>`
- Read the Salt manpages.
+: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 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 list of minion settings <ref/configuration/minion>`
+ Read through the heavily-commented minion configuration file.
- :doc:`Full table of contents </contents>`
- Dense but complete.
+:doc:`Full table of contents </contents>`
+ Dense but complete.
-**More information about the project**
+More information about the project
+----------------------------------
- :doc:`Roadmap </topics/roadmap/index>`
- Where we're headed.
+:doc:`Roadmap </topics/roadmap/index>`
+ Where we're headed.
- :doc:`Release notes </topics/releases/index>`
- Where we've been.
+:doc:`Release notes </topics/releases/index>`
+ Where we've been.
- :doc:`Community </topics/community>`
- How you can get involved.
+: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
37 doc/man/salt-call.1
@@ -1,4 +1,4 @@
-.TH "SALT-CALL" "1" "February 15, 2012" "0.9.7" "Salt"
+.TH "SALT-CALL" "1" "March 19, 2012" "0.9.8" "Salt"
.SH NAME
salt-call \- salt-call Documentation
.
@@ -60,6 +60,41 @@ directories can be delimited by commas
Return the documentation for the specified module of for all modules if
none are specified
.UNINDENT
+.INDENT 0.0
+.TP
+.B \-l LOG_LEVEL, \-\-log\-level=LOG_LEVEL
+Console log level. One of \fBinfo\fP, \fBnone\fP, \fBgarbage\fP,
+\fBtrace\fP, \fBwarning\fP, \fBerror\fP, \fBdebug\fP. For the logfile
+settings see the config file. Default: \fBinfo\fP.
+.UNINDENT
+.INDENT 0.0
+.TP
+.B \-\-raw\-out
+Print the output from the salt command in raw python
+form, this is suitable for re\-reading the output into
+an executing python script with eval.
+.UNINDENT
+.INDENT 0.0
+.TP
+.B \-\-text\-out
+Print the output from the salt command in the same
+form the shell would.
+.UNINDENT
+.INDENT 0.0
+.TP
+.B \-\-yaml\-out
+Print the output from the salt command in yaml.
+.UNINDENT
+.INDENT 0.0
+.TP
+.B \-\-json\-out
+Print the output from the salt command in json.
+.UNINDENT
+.INDENT 0.0
+.TP
+.B \-\-no\-color
+Disable all colored output
+.UNINDENT
.SH AUTHOR
Thomas S. Hatch <thatch@gmail.com> and many others, please see the Authors file
.SH COPYRIGHT
View
28 doc/man/salt-cp.1
@@ -1,4 +1,4 @@
-.TH "SALT-CP" "1" "February 15, 2012" "0.9.7" "Salt"
+.TH "SALT-CP" "1" "March 19, 2012" "0.9.8" "Salt"
.SH NAME
salt-cp \- salt-cp Documentation
.
@@ -74,14 +74,34 @@ example: server1.foo.bar,server2.foo.bar,example7.quo.qux
.TP
.B \-G, \-\-grain
The target expression matches values returned by the salt grains system on
+the minions. The target expression is in the format of \(aq<grain value>:<glob
+expression>\(aq; example: \(aqos:Arch*\(aq
+.UNINDENT
+.INDENT 0.0
+.TP
+.B \-\-grain\-pcre
+The target expression matches values returned by the salt grains system on
the minions. The target expression is in the format of \(aq<grain value>:<pcre
regular expression>\(aq; example: \(aqos:Arch.*\(aq
.UNINDENT
.INDENT 0.0
.TP
-.B \-Q, \-\-query
-Execute a salt command query, this can be used to find the results of a
-previous function call: \-Q test.echo\(aq)
+.B \-R, \-\-range
+Instead of using shell globs to evaluate the targe use a range expression
+to identify targets. Range expressions look like %cluster.
+.sp
+Using the Range option requires that a range server is set up and the
+location of the range server is referenced in the master configuration
+file.
+.UNINDENT
+.INDENT 0.0
+.TP
+.B \-C, \-\-compound
+Utilize many target definitions to make the call very granular. This option
+takes a group of targets separated by and or or. The default matcher is a
+glob as usual, if something other than a glob is used preface it with the
+letter denoting the type, example: \(aqwebserv* and \fI\%G@os\fP:Debian or \fI\%E@db*\fP\(aq
+make sure that the compound target is encapsulated in quotes.
.UNINDENT
.INDENT 0.0
.TP
View
12 doc/man/salt-key.1
@@ -1,4 +1,4 @@
-.TH "SALT-KEY" "1" "February 15, 2012" "0.9.7" "Salt"
+.TH "SALT-KEY" "1" "March 19, 2012" "0.9.8" "Salt"
.SH NAME
salt-key \- salt-key Documentation
.
@@ -76,6 +76,16 @@ Rejects all pending public keys.
.UNINDENT
.INDENT 0.0
.TP
+.B \-d DELETE, \-\-delete=DELETE
+Delete the named minion key for command execution.
+.UNINDENT
+.INDENT 0.0
+.TP
+.B \-D DELETE_ALL, \-\-delete\-all=DELETE_ALL
+Deleta all 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;
View
7 doc/man/salt-master.1
@@ -1,4 +1,4 @@
-.TH "SALT-MASTER" "1" "February 15, 2012" "0.9.7" "Salt"
+.TH "SALT-MASTER" "1" "March 19, 2012" "0.9.8" "Salt"
.SH NAME
salt-master \- salt-master Documentation
.
@@ -61,6 +61,11 @@ Specify user to run minion
.UNINDENT
.INDENT 0.0
.TP
+.B \-\-pid\-file PIDFILE
+Specify the location of the pidfile.
+.UNINDENT
+.INDENT 0.0
+.TP
.B \-l LOG_LEVEL, \-\-log\-level=LOG_LEVEL
Console log level. One of \fBinfo\fP, \fBnone\fP, \fBgarbage\fP,
\fBtrace\fP, \fBwarning\fP, \fBerror\fP, \fBdebug\fP. For the logfile
View
7 doc/man/salt-minion.1
@@ -1,4 +1,4 @@
-.TH "SALT-MINION" "1" "February 15, 2012" "0.9.7" "Salt"
+.TH "SALT-MINION" "1" "March 19, 2012" "0.9.8" "Salt"
.SH NAME
salt-minion \- salt-minion Documentation
.
@@ -62,6 +62,11 @@ Specify user to run minion
.UNINDENT
.INDENT 0.0
.TP
+.B \-\-pid\-file PIDFILE
+Specify the location of the pidfile
+.UNINDENT
+.INDENT 0.0
+.TP
.B \-l LOG_LEVEL, \-\-log\-level=LOG_LEVEL
Console log level. One of \fBinfo\fP, \fBnone\fP, \fBgarbage\fP,
\fBtrace\fP, \fBwarning\fP, \fBerror\fP, \fBdebug\fP. For the logfile
View
2 doc/man/salt-run.1
@@ -1,4 +1,4 @@
-.TH "SALT-RUN" "1" "February 15, 2012" "0.9.7" "Salt"
+.TH "SALT-RUN" "1" "March 19, 2012" "0.9.8" "Salt"
.SH NAME
salt-run \- salt-run Documentation
.
View
7 doc/man/salt-syndic.1
@@ -1,4 +1,4 @@
-.TH "SALT-SYNDIC" "1" "February 15, 2012" "0.9.7" "Salt"
+.TH "SALT-SYNDIC" "1" "March 19, 2012" "0.9.8" "Salt"
.SH NAME
salt-syndic \- salt-syndic Documentation
.
@@ -53,6 +53,11 @@ Run the salt syndic as a daemon
.UNINDENT
.INDENT 0.0
.TP
+.B \-\-pid\-file PIDFILE
+Specify the location of the pidfile
+.UNINDENT
+.INDENT 0.0
+.TP
.B \-\-master\-config=MASTER_CONFIG
The master configuration file to use, the default is /etc/salt/master
.UNINDENT
View
52 doc/man/salt.1
@@ -1,4 +1,4 @@
-.TH "SALT" "1" "February 15, 2012" "0.9.7" "Salt"
+.TH "SALT" "1" "March 19, 2012" "0.9.8" "Salt"
.SH NAME
salt \- salt
.
@@ -62,6 +62,22 @@ The timeout in seconds to wait for replies from the salt minions.
.UNINDENT
.INDENT 0.0
.TP
+.B \-s STATIC, \-\-static=STATIC
+By default as of version 0.9.8 the salt command returns data to the
+console as it is received from minions, but previous releases would return
+data only after all data was received. To only return the data with a hard
+timeout and after all minions have returned then use the static option.
+.UNINDENT
+.INDENT 0.0
+.TP
+.B \-b BATCH, \-\-batch\-size=BATCH
+Instead of executing on all targeted minions at once, execute on a
+progressive set of minions. This option takes an argument in the form of
+an explicit number of minions to execute at once, or a percentage of
+minions to execute on.
+.UNINDENT
+.INDENT 0.0
+.TP
.B \-\-version
Print the version of salt that is running.
.UNINDENT
@@ -81,7 +97,18 @@ example: server1.foo.bar,server2.foo.bar,example7.quo.qux
.TP
.B \-G, \-\-grain
The target expression matches values returned by the salt grains system on
-the minions. The target expression is in the format of \(aq<grain value>:<pcre
+the minions. The target expression is in the format of \(aq<grain value>:<glob
+expression>\(aq; example: \(aqos:Arch*\(aq
+.sp
+This was changed in version 0.9.8 to accept glob expressions instead of
+regular expression. To use regular expression matching with grains use
+the \-\-grain\-pcre option.
+.UNINDENT
+.INDENT 0.0
+.TP
+.B \-\-grain\-pcre
+The target expression matches values returned by the salt grains system on
+the minions. The target expression is in the format of \(aq<grain value>:<
regular expression>\(aq; example: \(aqos:Arch.*\(aq
.UNINDENT
.INDENT 0.0
@@ -90,7 +117,7 @@ regular expression>\(aq; example: \(aqos:Arch.*\(aq
Utilize many target definitions to make the call very granular. This option
takes a group of targets separated by and or or. The default matcher is a
glob as usual, if something other than a glob is used preface it with the
-letter denoting the type, example: \(aqwebserv* and \fI\%G@os\fP:Debian or \fI\%E@db.*\fP\(aq
+letter denoting the type, example: \(aqwebserv* and \fI\%G@os\fP:Debian or \fI\%E@db*\fP\(aq
make sure that the compound target is encapsulated in quotes.
.UNINDENT
.INDENT 0.0
@@ -106,6 +133,16 @@ file
.UNINDENT
.INDENT 0.0
.TP
+.B \-R, \-\-range
+Instead of using shell globs to evaluate the targe use a range expression
+to identify targets. Range expressions look like %cluster.
+.sp
+Using the Range option requires that a range server is set up and the
+location of the range server is referenced in the master configuration
+file.
+.UNINDENT
+.INDENT 0.0
+.TP
.B \-\-return
Chose an alternative returner to call on the minion, if an alternative
returner is used then the return will not come back tot he command line
@@ -114,6 +151,10 @@ but will be sent to the specified return system.
.INDENT 0.0
.TP
.B \-Q, \-\-query
+The \-Q option is being deprecated and will be removed in version 0.9.9,
+Use the salt jobs interface instead, for documentation on the salt jobs
+interface execute the command "salt\-run \-d jobs"
+.sp
Execute a salt command query, this can be used to find the results of a
previous function call: \-Q test.echo\(aq)
.UNINDENT
@@ -147,6 +188,11 @@ Print the output from the salt command in yaml.
.B \-\-json\-out
Print the output from the salt command in json.
.UNINDENT
+.INDENT 0.0
+.TP
+.B \-\-no\-color
+Disable all colored output
+.UNINDENT
.SH SEE ALSO
.sp
\fIsalt(7)\fP
View
13,165 doc/man/salt.7
9,591 additions, 3,574 deletions not shown because the diff is too large. Please use a local Git client to view these changes.
View
4 doc/ref/cli/index.rst
@@ -2,9 +2,9 @@
Command Line Reference
======================
-Salt can be controlled by a command line client by the root user on the Salt
+Salt can be controlled by a command line client by the root user on the Salt
master. The Salt command line client uses the Salt client API to communicate
-with the Salt master server. The Salt client is straightforward and simple
+with the Salt master server. The Salt client is straightforward and simple
to use.
Using the Salt client commands can be easily sent to the minions.
View
29 doc/ref/cli/salt-call.rst
@@ -31,3 +31,32 @@ Options
Return the documentation for the specified module of for all modules if
none are specified
+
+.. option:: -l LOG_LEVEL, --log-level=LOG_LEVEL
+
+ Console log level. One of ``info``, ``none``, ``garbage``,
+ ``trace``, ``warning``, ``error``, ``debug``. For the logfile
+ settings see the config file. Default: ``info``.
+
+.. option:: --raw-out
+
+ Print the output from the salt command in raw python
+ form, this is suitable for re-reading the output into
+ an executing python script with eval.
+
+.. option:: --text-out
+
+ Print the output from the salt command in the same
+ form the shell would.
+
+.. option:: --yaml-out
+
+ Print the output from the salt command in yaml.
+
+.. option:: --json-out
+
+ Print the output from the salt command in json.
+
+.. option:: --no-color
+
+ Disable all colored output
View
24 doc/ref/cli/salt-cp.rst
@@ -47,13 +47,31 @@ Options
.. option:: -G, --grain
The target expression matches values returned by the salt grains system on
+ the minions. The target expression is in the format of '<grain value>:<glob
+ expression>'; example: 'os:Arch*'
+
+.. option:: --grain-pcre
+
+ The target expression matches values returned by the salt grains system on
the minions. The target expression is in the format of '<grain value>:<pcre
regular expression>'; example: 'os:Arch.*'
-.. option:: -Q, --query
+.. option:: -R, --range
+
+ Instead of using shell globs to evaluate the target use a range expression
+ to identify targets. Range expressions look like %cluster.
+
+ Using the Range option requires that a range server is set up and the
+ location of the range server is referenced in the master configuration
+ file.
+
+.. option:: -C, --compound
- Execute a salt command query, this can be used to find the results of a
- previous function call: -Q test.echo')
+ Utilize many target definitions to make the call very granular. This option
+ takes a group of targets separated by and or or. The default matcher is a
+ glob as usual, if something other than a glob is used preface it with the
+ letter denoting the type, example: 'webserv* and G@os:Debian or E@db*'
+ make sure that the compound target is encapsulated in quotes.
.. option:: -c CONFIG, --config=CONFIG
View
8 doc/ref/cli/salt-key.rst
@@ -47,6 +47,14 @@ Options
Rejects all pending public keys.
+.. option:: -d DELETE, --delete=DELETE
+
+ Delete the named minion key for command execution.
+
+.. option:: -D DELETE_ALL, --delete-all=DELETE_ALL
+
+ Deleta all keys
+
.. option:: -c CONFIG, --config=CONFIG
The master configuration file needs to be read to determine where the salt
View
4 doc/ref/cli/salt-master.rst
@@ -35,6 +35,10 @@ Options
Specify user to run minion
+.. option:: --pid-file PIDFILE
+
+ Specify the location of the pidfile.
+
.. option:: -l LOG_LEVEL, --log-level=LOG_LEVEL
Console log level. One of ``info``, ``none``, ``garbage``,
View
4 doc/ref/cli/salt-minion.rst
@@ -36,6 +36,10 @@ Options
Specify user to run minion
+.. option:: --pid-file PIDFILE
+
+ Specify the location of the pidfile
+
.. option:: -l LOG_LEVEL, --log-level=LOG_LEVEL
Console log level. One of ``info``, ``none``, ``garbage``,
View
4 doc/ref/cli/salt-syndic.rst
@@ -29,6 +29,10 @@ Options
Run the salt syndic as a daemon
+.. option:: --pid-file PIDFILE
+
+ Specify the location of the pidfile
+
.. option:: --master-config=MASTER_CONFIG
The master configuration file to use, the default is /etc/salt/master
View
47 doc/ref/cli/salt.rst
@@ -35,6 +35,20 @@ Options
The timeout in seconds to wait for replies from the salt minions.
+.. option:: -s STATIC, --static=STATIC
+
+ By default as of version 0.9.8 the salt command returns data to the
+ console as it is received from minions, but previous releases would return
+ data only after all data was received. To only return the data with a hard
+ timeout and after all minions have returned then use the static option.
+
+.. option:: -b BATCH, --batch-size=BATCH
+
+ Instead of executing on all targeted minions at once, execute on a
+ progressive set of minions. This option takes an argument in the form of
+ an explicit number of minions to execute at once, or a percentage of
+ minions to execute on.
+
.. option:: --version
Print the version of salt that is running.
@@ -52,15 +66,25 @@ Options
.. option:: -G, --grain
The target expression matches values returned by the salt grains system on
- the minions. The target expression is in the format of '<grain value>:<pcre
+ the minions. The target expression is in the format of '<grain value>:<glob
+ expression>'; example: 'os:Arch*'
+
+ This was changed in version 0.9.8 to accept glob expressions instead of
+ regular expression. To use regular expression matching with grains use
+ the --grain-pcre option.
+
+.. option:: --grain-pcre
+
+ The target expression matches values returned by the salt grains system on
+ the minions. The target expression is in the format of '<grain value>:<
regular expression>'; example: 'os:Arch.*'
.. option:: -C, --compound
Utilize many target definitions to make the call very granular. This option
takes a group of targets separated by and or or. The default matcher is a
glob as usual, if something other than a glob is used preface it with the
- letter denoting the type, example: 'webserv* and G@os:Debian or E@db.*'
+ letter denoting the type, example: 'webserv* and G@os:Debian or E@db*'
make sure that the compound target is encapsulated in quotes.
.. option:: -X, --exsel
@@ -72,6 +96,15 @@ Options
Use a predefined compound target defined in the salt master configuration
file
+.. option:: -R, --range
+
+ Instead of using shell globs to evaluate the target use a range expression
+ to identify targets. Range expressions look like %cluster.
+
+ Using the Range option requires that a range server is set up and the
+ location of the range server is referenced in the master configuration
+ file.
+
.. option:: --return
Chose an alternative returner to call on the minion, if an alternative
@@ -80,6 +113,10 @@ Options
.. option:: -Q, --query
+ The -Q option is being deprecated and will be removed in version 0.9.9,
+ Use the salt jobs interface instead, for documentation on the salt jobs
+ interface execute the command "salt-run -d jobs"
+
Execute a salt command query, this can be used to find the results of a
previous function call: -Q test.echo')
@@ -95,7 +132,7 @@ Options
form, this is suitable for re-reading the output into
an executing python script with eval.
-.. option:: --text-out
+.. option:: --text-out
Print the output from the salt command in the same
form the shell would.
@@ -108,6 +145,10 @@ Options
Print the output from the salt command in json.
+.. option:: --no-color
+
+ Disable all colored output
+
See also
========
View
33 doc/ref/configuration/master.rst
@@ -91,7 +91,7 @@ execution returns and command executions.
Default: :file:`/`
-The system root direcotry to oporate from, change this to make Salt run from
+The system root directory to operate from, change this to make Salt run from
an alternative root
.. code-block:: yaml
@@ -158,9 +158,9 @@ Open mode is a dangerous security feature. One problem encountered with pki
authentication systems is that keys can become "mixed up" and authentication
begins to fail. Open mode turns off authentication and tells the master to
accept all authentication. This will clean up the pki keys received from the
-minions. Open mode should not be turned on for general use, open mode should
+minions. Open mode should not be turned on for general use. Open mode should
only be used for a short period of time to clean up pki keys. To turn on open
-mode the value passed must be ``True``.
+mode set this value to ``True``.
.. code-block:: yaml
@@ -173,7 +173,7 @@ mode the value passed must be ``True``.
Default: ``False``
-Enable auto_accept, this setting will automatically accept all incoming
+Enable auto_accept. This setting will automatically accept all incoming
public keys from the minions
.. code-block:: yaml
@@ -206,7 +206,7 @@ root of the base environment
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
+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!
@@ -252,10 +252,10 @@ Default: ``base: [/srv/salt]``
Salt runs a lightweight file server written in zeromq to deliver files to
minions. This file server is built into the master daemon and does not
require a dedicated port.
-The file server works on environments passed to the master, each environment
-can have multiple root directories, the subdirectories in the multiple file
+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:
.. code-block:: yaml
@@ -306,12 +306,11 @@ The buffer size in the file server in bytes
Syndic Server Settings
----------------------
-The Salt syndic is used to pass commands through a master from a higher
-master. Using the syndic is simple, if this is a master that will have
-syndic servers(s) below it set the "order_masters" setting to True, if this
+A Salt syndic is a Salt master used to pass commands from a higher Salt master to
+minions below the syndic. Using the syndic is simple. If this is a master that
+will have 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
.. conf_master:: order_masters
@@ -320,7 +319,7 @@ to recieve commands from
Default: ``False``
-Extra data needs to be sind with publications if the master os controlling a
+Extra data needs to be sent with publications if the master is controlling a
lower level master via a syndic minion. If this is the case the order_masters
value must be set to True
@@ -336,7 +335,7 @@ value must be set to True
Default: ``None``
If this master will be running a salt-syndic to connect to a higher level
-master specify the higher level master with this configuration value
+master, specify the higher level master with this configuration value
.. code-block:: yaml
@@ -358,7 +357,7 @@ compartmentalization of commands based on individual minions.
Default: ``{}``
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
@@ -377,7 +376,7 @@ This will allow all minions to execute all commands:
.*:
- .*
-This is not recomanded, since it would allow anyone who gets root on any
+This is not recommended, since it would allow anyone who gets root on any
single minion to instantly have root on all of the minions!
Node Groups
@@ -434,7 +433,7 @@ One of 'info', 'quiet', 'critical', 'error', 'debug', 'warning'.
Default: ``{}``
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
+Imagine you want to have the salt library at the 'warning' level, but you
still wish to have 'salt.modules' at the 'debug' level:
.. code-block:: yaml
View
8 doc/ref/configuration/minion.rst
@@ -69,7 +69,7 @@ The directory used to store the minion's public and private keys.
pki_dir: /etc/salt/pki
-.. conf_minion:: hostname
+.. conf_minion:: id
``id``
------------
@@ -91,7 +91,7 @@ clusters.
``sub_timeout``
---------------
-The minion connection to the master may be inturupted, the minion will
+The minion connection to the master may be interrupted, the minion will
verify the connection every so many seconds, to disable connection
verification set this value to 0
@@ -172,7 +172,7 @@ disabling modules will lover the minion's ram footprint.
Default: ``[]`` (all returners are enabled by default)
-If certian returners should be disabled, this is the place
+If certain returners should be disabled, this is the place
.. code-block:: yaml
@@ -274,7 +274,7 @@ The default renderer used for local state executions
Default: ``False``
state_verbose allows for the data returned from the minion to be more
-verbose. Normaly only states that fail or states that have changes are
+verbose. Normally only states that fail or states that have changes are
returned, but setting state_verbose to True will return all states that
were checked
View
31 doc/ref/file_server/dynamic-modules.rst
@@ -1,6 +1,37 @@
+===========================
Dynamic Module Distribution
===========================
.. versionadded:: 0.9.5
+Salt python modules can be distributed automatically via the salt file server.
+Under the root of any environment defined via the file_roots option on the
+master server directories corresponding to the type of module can be used.
+
+The directories are prepended with an underscore:
+
+ 1. _modules
+ 2. _grains
+ 3. _renderers
+ 4. _returners
+ 5. _states
+
+The contents of these directories need to be synced over to the minions after
+python modules have been created in them. There are a number of ways to sync
+the modules.
+
+Sync Via States
+===============
+
+The minion configuration contains an option ``autoload_dynamic_modules``
+which defaults to True. This option makes the state system refresh all
+dynamic modules when states are run. To disable this behavior set
+``autoload_dynamic_modules`` to False in the minion config.
+
+Sync Via the saltutil Module
+============================
+The saltutil module has a number of functions that can be used to sync all
+or specific dynamic modules. The saltutil module function ``saltutil.sync_all``
+will sync all module types over to a minion. For more information see:
+:mod:`salt.modules.saltutil`
View
65 doc/ref/file_server/file_roots.rst
@@ -0,0 +1,65 @@
+=========================
+File Server Configuration
+=========================
+
+The Salt file server is a high performance file server written in ZeroMQ. It
+manages large files quickly and with little overhead, and has been optimized
+to handle small files in an extremely efficient manner.
+
+The Salt file server is an environment aware file server. This means that
+files can be allocated within many root directories and accessed by
+specifying both the file path and the environment to search. The
+individual environments can span across multiple directory roots
+to crate overlays and to allow for files to be organized in many flexible
+ways.
+
+Environments
+============
+
+The Salt file server defaults to the mandatory ``base`` environment. This
+environment **MUST** be defined and is used to download files when no
+environment is specified.
+
+Environments allow for files and sls data to be logically separated, but
+environments are not isolated from each other. This allows for logical
+isolation of environments by the engineer using Salt, but also allows
+for information to be used in multiple environments.
+
+
+Directory Overlay
+=================
+
+The ``environment`` setting is a list of directories to publish files from.
+These directories are searched in order to find the specified file and the
+first file found is returned.
+
+This means that directory data is prioritized based on the order in which they
+are listed. In the case of this ``file_roots`` configuration:
+
+.. code-block:: yaml
+
+ file_roots:
+ base:
+ - /srv/salt/base
+ - /srv/salt/failover
+
+If a file's uri is ``salt://httpd/httpd.conf``, it will first search for the
+file at ``/srv/salt/base/httpd/httpd.conf``. If the file is found there it
+will be returned. If the file is not found there, then
+``/srv/salt/failover/httpd/httpd.conf`` will be used for the source.
+
+This allows for directories to be overlaid and prioritized based on the order
+they are defined in the configuration.
+
+Local File Server
+=================
+
+.. versionadded:: 0.9.8
+
+
+The file server can be rerouted to run from the minion. This is primarily to
+enable running salt states without a salt master. To use the local file server
+interface, copy the file server data to the minion and set the file_roots
+option on the minion to point to the directories copied from the master.
+Once the minion ``file_roots`` option has been set, change the ``file_client``
+option to local to make sure that the local file server interface is used.
View
4 doc/ref/file_server/index.rst
@@ -4,9 +4,9 @@ Salt File Server
Salt comes with a simple file server suitable for distributing files to the
salt minions. The file server is a stateless ZeroMQ server that is built into
-the salt master.
+the salt master.
-The main intent of the Salt File server is the present files for use in the
+The main intent of the Salt File server is to present files for use in the
Salt state system. With this said, the Salt file server can be used for any
general file transfer from the master to the minions.
View
25 doc/ref/modules/all/index.rst
@@ -4,6 +4,13 @@
Full list of builtin modules
============================
+.. admonition:: Virtual modules
+
+ .. toctree::
+
+ salt.modules.pkg
+ salt.modules.sys
+
.. currentmodule:: salt.modules
.. autosummary::
@@ -15,35 +22,43 @@ Full list of builtin modules
archive
butterkvm
cluster
- cmd
+ cmdmod
cp
cron
data
+ debconfmod
disk
ebuild
file
freebsdkmod
freebsdpkg
+ freebsdservice
+ gem
gentoo_service
+ git
grains
groupadd
+ hg
hosts
kmod
+ kvm_hyper
linux_sysctl
mdadm
moosefs
mount
mysql
network
+ nginx
pacman
+ pillar
pip
- pkg
ps
publish
puppet
pw_group
pw_user
rh_service
+ rvm
saltutil
selinux
service
@@ -52,15 +67,19 @@ Full list of builtin modules
ssh
state
status
- sys
systemd
test
tomcat
+ upstart
useradd
virt
virtualenv
win_disk
+ win_file
+ win_network
win_service
+ win_shadow
win_useradd
yumpkg
yumpkg5
+ zypper
View
4 doc/ref/modules/all/salt.modules.cmd.rst → doc/ref/modules/all/salt.modules.cmdmod.rst
@@ -2,5 +2,5 @@
salt.modules.cmd
================
-.. automodule:: salt.modules.cmd
- :members:
+.. automodule:: salt.modules.cmdmod
+ :members:
View
6 doc/ref/modules/all/salt.modules.debconfmod.rst
@@ -0,0 +1,6 @@
+=======================
+salt.modules.debconfmod
+=======================
+
+.. automodule:: salt.modules.debconfmod
+ :members:
View
6 doc/ref/modules/all/salt.modules.freebsdservice.rst
@@ -0,0 +1,6 @@
+===========================
+salt.modules.freebsdservice
+===========================
+
+.. automodule:: salt.modules.freebsdservice
+ :members:
View
6 doc/ref/modules/all/salt.modules.gem.rst
@@ -0,0 +1,6 @@
+================
+salt.modules.gem
+================
+
+.. automodule:: salt.modules.gem
+ :members:
View
6 doc/ref/modules/all/salt.modules.git.rst
@@ -0,0 +1,6 @@
+================
+salt.modules.git
+================
+
+.. automodule:: salt.modules.git
+ :members:
View
6 doc/ref/modules/all/salt.modules.hg.rst
@@ -0,0 +1,6 @@
+===============
+salt.modules.hg
+===============
+
+.. automodule:: salt.modules.hg
+ :members:
View
6 doc/ref/modules/all/salt.modules.kvm_hyper.rst
@@ -0,0 +1,6 @@
+======================
+salt.modules.kvm_hyper
+======================
+
+.. automodule:: salt.modules.kvm_hyper
+ :members:
View
6 doc/ref/modules/all/salt.modules.nginx.rst
@@ -0,0 +1,6 @@
+==================
+salt.modules.nginx
+==================
+
+.. automodule:: salt.modules.nginx
+ :members:
View
6 doc/ref/modules/all/salt.modules.pillar.rst
@@ -0,0 +1,6 @@
+===================
+salt.modules.pillar
+===================
+
+.. automodule:: salt.modules.pillar
+ :members:
View
1 doc/ref/modules/all/salt.modules.pkg.rst
@@ -13,3 +13,4 @@ salt.modules.pkg
* :mod:`salt.modules.pacman`
* :mod:`salt.modules.yumpkg`
* :mod:`salt.modules.yumpkg5`
+* :mod:`salt.modules.zypper`
View
6 doc/ref/modules/all/salt.modules.rvm.rst
@@ -0,0 +1,6 @@
+================
+salt.modules.rvm
+================
+
+.. automodule:: salt.modules.rvm
+ :members:
View
13 doc/ref/modules/all/salt.modules.sys.rst
@@ -2,7 +2,14 @@
salt.modules.sys
================
-A pseudo-module for working with modules on a minion.
+The regular salt modules execute in a separate context from the salt minion
+and manipulating the actual salt modules needs to happen in a higher level
+context within the minion process. This is where the sys pseudo module is
+used.
+
+The sys pseudo module comes with a few functions that return data about the
+available functions on the minion or allows for the minion modules to be
+refreshed. These functions are as follows:
.. py:module:: salt.modules.sys
@@ -13,7 +20,9 @@ A pseudo-module for working with modules on a minion.
.. py:function:: reload_modules
- Instruct the minion to reload all available modules in memory.
+ Instruct the minion to reload all available modules in memory. This
+ function can be called if the modules need to be re-evaluated for
+ availability or new modules have been made available to the minion.
.. py:function:: list_modules
View
6 doc/ref/modules/all/salt.modules.upstart.rst
@@ -0,0 +1,6 @@
+====================
+salt.modules.upstart
+====================
+
+.. automodule:: salt.modules.upstart
+ :members:
View
6 doc/ref/modules/all/salt.modules.win_file.rst
@@ -0,0 +1,6 @@
+=====================
+salt.modules.win_file
+=====================
+
+.. automodule:: salt.modules.win_file
+ :members:
View
6 doc/ref/modules/all/salt.modules.win_network.rst