Skip to content

Commit

Permalink
Merge branch '0.9.8'
Browse files Browse the repository at this point in the history
  • Loading branch information
thatch45 committed Mar 21, 2012
2 parents 1d1ab88 + 48c1e56 commit 9fcf884
Show file tree
Hide file tree
Showing 226 changed files with 21,577 additions and 6,109 deletions.
8 changes: 8 additions & 0 deletions MANIFEST.in
Original file line number Diff line number Diff line change
@@ -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 *
54 changes: 28 additions & 26 deletions README.rst
Original file line number Diff line number Diff line change
Expand Up @@ -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
==========
Expand All @@ -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
20 changes: 19 additions & 1 deletion conf/master.template
Original file line number Diff line number Diff line change
Expand Up @@ -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
Expand All @@ -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 #####
Expand Down Expand Up @@ -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
65 changes: 65 additions & 0 deletions conf/minion.template
Original file line number Diff line number Diff line change
Expand Up @@ -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
Expand All @@ -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 #####
Expand All @@ -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

Expand Down Expand Up @@ -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 #####
###########################################
Expand Down
6 changes: 6 additions & 0 deletions doc/_templates/domainindex.html
Original file line number Diff line number Diff line change
@@ -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 %}
6 changes: 6 additions & 0 deletions doc/_templates/page.html
Original file line number Diff line number Diff line change
@@ -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 %}
2 changes: 2 additions & 0 deletions doc/conf.py
Original file line number Diff line number Diff line change
Expand Up @@ -30,6 +30,8 @@ def __getattr__(self, name):
MOCK_MODULES = [
# salt core
'yaml',
'yaml.nodes',
'yaml.constructor',
'msgpack',
'zmq',
'Crypto',
Expand Down
13 changes: 12 additions & 1 deletion doc/contents.rst
Original file line number Diff line number Diff line change
Expand Up @@ -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/*
Expand All @@ -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
Expand All @@ -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
Loading

0 comments on commit 9fcf884

Please sign in to comment.