The 0.16.0 release is an exciting one, with new features in master redundancy, and a new, powerful requisite.
This new capability allows for a minion to be actively connected to multiple salt masters at the same time. This allows for multiple masters to send out commands to minions and for minions to automatically reconnect to masters that have gone down. A tutorial is available to help get started here:
The new prereq requisite is very powerful! It allows for states to execute based on a state that is expected to make changes in the future. This allows for a change on the system to be preempted by another execution. A good example is needing to shut down a service before modifying files associated with it, allowing, for instance, a webserver to be shut down allowing a load balancer to stop sending requests while server side code is updated. In this case, the prereq will only run if changes are expected to happen in the prerequired state, and the prerequired state will always run after the prereq state and only if the prereq state succeeds.
The peer system has been revamped to make it more reliable, faster, and like the rest of Salt, async. The peer calls when an updated minion and master are used together will be much faster!
The ability to include an sls relative to the defined sls has been added, the new syntax id documented here:
state_output option in the past only supported full and terse,
0.16.0 add the mixed and changes modes further refining how states are sent
to users' eyes.
Support for Salt on Windows continues to improve. Software management on
Windows has become more seamless with Linux/UNIX/BSD software management.
Installed software is now recognized by the short names defined in the
repository SLS. This makes it
possible to run
salt '*' pkg.version firefox and get back results from
Windows and non-Windows minions alike.
When templating files on Windows, Salt will now correctly use Windows appropriate line endings. This makes it much easier to edit and consume files on Windows.
When using the cmd state the
shell option now allows for specifying
Windows Powershell as an alternate shell to execute cmd.run and cmd.script.
This opens up Salt to all the power of Windows Powershell and its advanced
Windows management capabilities.
Several fixes and optimizations were added for the Windows networking modules, especially when working with IPv6.
A system module was added that makes it easy to restart and shutdown Windows minions.
The Salt Minion will now look for its config file in
default. This means that it's no longer necessary to specify the
to specify the location of the config file when starting the Salt Minion on
Windows in a terminal.
pkg.purged now support the
pkgs argument, which allow for
multiple packages to be targeted in a single state. This, as in
pkg.installed, helps speed up these
states by reducing the number of times that the package management tools (apt,
yum, etc.) need to be run.
The temporal parameters in
states (minute, hour, etc.) can now be randomized by using
of a specific value. For example, by using the
random keyword in the
minute parameter of a cron state, the same cron job can be pushed to
hundreds or thousands of hosts, and they would each use a randomly-generated
minute. This can be helpful when the cron job accesses a network resource, and
it is not desirable for all hosts to run the job concurrently.
/path/to/cron/script: cron.present: - user: root - minute: random - hour: 2
Since Salt assumes a value of
* for unspecified temporal parameters, adding
a parameter to the state and setting it to
random will change that value
* to a randomized numeric value. However, if that field in the cron
entry on the minion already contains a numeric value, then using the
keyword will not modify it.
When accepting new keys with
salt-key -a minion-id or
there is now a prompt that will show the affected keys and ask for confirmation
before proceeding. This prompt can be bypassed using the
command line argument, as with other
FreeBSD, NetBSD, and OpenBSD all now support setting passwords in