2011-05-31 00:57:36 +00:00
|
|
|
|
========================
|
|
|
|
|
Salt 0.8.0 release notes
|
|
|
|
|
========================
|
2014-03-17 22:17:18 +00:00
|
|
|
|
|
2011-05-31 00:57:36 +00:00
|
|
|
|
Salt 0.8.0 is ready for general consumption!
|
2013-07-03 02:23:44 +00:00
|
|
|
|
The source tarball is available on GitHub for download:
|
2011-05-31 00:57:36 +00:00
|
|
|
|
|
|
|
|
|
A lot of work has gone into salt since the last release just 2 weeks ago, and
|
|
|
|
|
salt has improved a great deal. A swath of new features are here along with
|
|
|
|
|
performance and threading improvements!
|
|
|
|
|
|
|
|
|
|
The main new features of salt 0.8.0 are:
|
|
|
|
|
|
|
|
|
|
Salt-cp
|
|
|
|
|
|
|
|
|
|
Cython minion modules
|
|
|
|
|
|
|
|
|
|
Dynamic returners
|
|
|
|
|
|
|
|
|
|
Faster return handling
|
|
|
|
|
|
2012-05-23 04:43:12 +00:00
|
|
|
|
Lowered required Python version to 2.6
|
2011-05-31 00:57:36 +00:00
|
|
|
|
|
|
|
|
|
Advanced minion threading
|
|
|
|
|
|
|
|
|
|
Configurable minion modules
|
|
|
|
|
|
|
|
|
|
|
2014-03-17 22:17:18 +00:00
|
|
|
|
Salt-cp
|
|
|
|
|
=======
|
|
|
|
|
|
2011-05-31 00:57:36 +00:00
|
|
|
|
The salt-cp command introduces the ability to copy simple files via salt to
|
|
|
|
|
targeted servers. Using salt-cp is very simple, just call salt-cp with a target
|
|
|
|
|
specification, the source file(s) and where to copy the files on the minions.
|
|
|
|
|
For instance:
|
|
|
|
|
|
|
|
|
|
# salt-cp ‘*’ /etc/hosts /etc/hosts
|
|
|
|
|
|
|
|
|
|
Will copy the local /etc/hosts file to all of the minions.
|
|
|
|
|
|
|
|
|
|
Salt-cp is very young, in the future more advanced features will be added, and
|
|
|
|
|
the functionality will much more closely resemble the cp command.
|
|
|
|
|
|
2014-03-17 22:17:18 +00:00
|
|
|
|
Cython minion modules
|
|
|
|
|
=====================
|
|
|
|
|
|
2012-05-23 04:43:12 +00:00
|
|
|
|
Cython is an amazing tool used to compile Python modules down to c. This is
|
|
|
|
|
arguably the fastest way to run Python code, and since pyzmq requires cython,
|
2011-05-31 00:57:36 +00:00
|
|
|
|
adding support to salt for cython adds no new dependencies.
|
|
|
|
|
|
|
|
|
|
Cython minion modules allow minion modules to be written in cython and
|
|
|
|
|
therefore executed in compiled c. Simply write the salt module in cython and
|
|
|
|
|
use the file extension “.pyx” and the minion module will be compiled when
|
|
|
|
|
the minion is started. An example cython module is included in the main
|
|
|
|
|
distribution called cytest.pyx:
|
2011-11-16 05:41:20 +00:00
|
|
|
|
|
|
|
|
|
:blob:`salt/modules/cytest.pyx`
|
2011-05-31 00:57:36 +00:00
|
|
|
|
|
2014-03-17 22:17:18 +00:00
|
|
|
|
Dynamic Returners
|
|
|
|
|
=================
|
|
|
|
|
|
2011-05-31 00:57:36 +00:00
|
|
|
|
By default salt returns command data back to the salt master, but now salt can
|
|
|
|
|
return command data to any system. This is enabled via the new returners
|
|
|
|
|
modules feature for salt. The returners modules take the return data and sends
|
|
|
|
|
it to a specific module. The returner modules work like minion modules, so any
|
|
|
|
|
returner can be added to the minions.
|
|
|
|
|
|
|
|
|
|
This means that a custom data returner can be added to communicate the return
|
2014-12-12 19:31:43 +00:00
|
|
|
|
data so anything from MySQL, Redis, MongoDB, and more!
|
2011-05-31 00:57:36 +00:00
|
|
|
|
|
|
|
|
|
There are 2 simple stock returners in the returners directory:
|
2011-11-16 05:41:20 +00:00
|
|
|
|
|
|
|
|
|
:blob:`salt/returners`
|
2011-05-31 00:57:36 +00:00
|
|
|
|
|
|
|
|
|
The documentation on writing returners will be added to the wiki shortly, and
|
2012-05-23 04:43:12 +00:00
|
|
|
|
returners can be written in pure Python, or in cython.
|
2011-05-31 00:57:36 +00:00
|
|
|
|
|
2014-03-17 22:17:18 +00:00
|
|
|
|
Configurable Minion Modules
|
|
|
|
|
===========================
|
2011-05-31 00:57:36 +00:00
|
|
|
|
Minion modules may need to be configured, now the options passed to the minion
|
|
|
|
|
configuration file can be accessed inside of the minion modules via the __opt__
|
|
|
|
|
dict.
|
|
|
|
|
|
|
|
|
|
Information on how to use this simple addition has been added to the wiki:
|
2016-12-15 23:45:51 +00:00
|
|
|
|
:ref:`Writing modules <state-modules>`
|
2011-05-31 00:57:36 +00:00
|
|
|
|
|
|
|
|
|
The test module has an example of using the __opts__ dict, and how to set
|
|
|
|
|
default options:
|
2011-11-16 05:41:20 +00:00
|
|
|
|
|
|
|
|
|
:blob:`salt/modules/test.py`
|
2011-05-31 00:57:36 +00:00
|
|
|
|
|
2014-03-17 22:17:18 +00:00
|
|
|
|
Advanced Minion Threading
|
|
|
|
|
=========================
|
|
|
|
|
|
2011-05-31 00:57:36 +00:00
|
|
|
|
In 0.7.0 the minion would block after receiving a command from the master, now
|
2012-05-23 04:43:12 +00:00
|
|
|
|
the minion will spawn a thread or multiprocess. By default Python threads are
|
2011-05-31 00:57:36 +00:00
|
|
|
|
used because for general use they have proved to be faster, but the minion can
|
2012-05-23 04:43:12 +00:00
|
|
|
|
now be configured to use the Python multiprocessing module instead. Using
|
2013-03-18 19:59:27 +00:00
|
|
|
|
multiprocessing will cause executions that are CPU bound or would otherwise
|
2011-05-31 00:57:36 +00:00
|
|
|
|
exploit the negative aspects of the Python GIL to run faster and more reliably,
|
2012-05-23 04:43:12 +00:00
|
|
|
|
but simple calls will still be faster with Python threading.
|
2011-05-31 00:57:36 +00:00
|
|
|
|
The configuration option can be found in the minion configuration file:
|
2011-11-16 05:41:20 +00:00
|
|
|
|
|
|
|
|
|
:blob:`conf/minion`
|
2011-05-31 00:57:36 +00:00
|
|
|
|
|
2014-03-17 22:17:18 +00:00
|
|
|
|
Lowered Supported Python to 2.6
|
|
|
|
|
===============================
|
2011-05-31 00:57:36 +00:00
|
|
|
|
|
2012-05-23 04:43:12 +00:00
|
|
|
|
The requirement for Python 2.7 has been removed to support Python 2.6. I have
|
|
|
|
|
received requests to take the minimum Python version back to 2.4, but
|
2013-03-18 19:59:27 +00:00
|
|
|
|
unfortunately this will not be possible, since the ZeroMQ Python bindings do
|
2012-05-23 04:43:12 +00:00
|
|
|
|
not support Python 2.4.
|
2011-05-31 00:57:36 +00:00
|
|
|
|
|
|
|
|
|
Salt 0.8.0 is a very major update, it also changes the network protocol slightly
|
|
|
|
|
which makes communication with older salt daemons impossible, your master and
|
|
|
|
|
minions need to be upgraded together!
|
2014-03-17 22:17:18 +00:00
|
|
|
|
|
2011-05-31 00:57:36 +00:00
|
|
|
|
I could use some help bringing salt to the people! Right now I only have
|
|
|
|
|
packages for Arch Linux, Fedora 14 and Gentoo. We need packages for Debian and
|
|
|
|
|
people willing to help test on more platforms. We also need help writing more
|
|
|
|
|
minion modules and returner modules. If you want to contribute to salt please
|
2013-07-03 02:23:44 +00:00
|
|
|
|
hop on the mailing list and send in patches, make a fork on GitHub and send in
|
2011-05-31 00:57:36 +00:00
|
|
|
|
pull requests! If you want to help but are not sure where you can, please email
|
|
|
|
|
me directly or post tot he mailing list!
|
|
|
|
|
|
|
|
|
|
I hope you enjoy salt, while it is not yet 1.0 salt is completely viable and
|
|
|
|
|
usable!
|
|
|
|
|
|
|
|
|
|
-Thomas S. Hatch
|