5.3 KiB
Salt 0.16.0 Release Notes
- release
- 2013-07-01
The 0.16.0 release is an exciting one, with new features in master redundancy, and a new, powerful requisite.
Major Features
Multi-Master
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:
Multi Master Tutorial <tutorial-multi-master>
Prereq, the New Requisite
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.
Peer System Improvements
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!
Relative Includes
The ability to include an sls relative to the defined sls has been added, the new syntax id documented here:
Includes <states-include>
More State Output Options
The 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.
Improved Windows Support
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 <windows-package-manager>
. 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
c:\salt\conf
by default. This means that it's no longer
necessary to specify the -c
option to specify the location
of the config file when starting the Salt Minion on Windows in a
terminal.
Multiple Targets for pkg.removed, pkg.purged States
Both pkg.removed <salt.states.pkg.removed>
and pkg.purged
<salt.states.pkg.purged>
now support the pkgs
argument, which allow for multiple packages to be targeted in a single
state. This, as in pkg.installed <salt.states.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.
Random Times in Cron States
The temporal parameters in cron.present <salt.states.cron.present>
states
(minute, hour, etc.) can now be randomized by using random
instead 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 from *
to a
randomized numeric value. However, if that field in the cron entry on
the minion already contains a numeric value, then using the
random
keyword will not modify it.
Confirmation Prompt on Key Acceptance
When accepting new keys with salt-key -a minion-id
or
salt-key -A
, there is now a prompt that will show the
affected keys and ask for confirmation before proceeding. This prompt
can be bypassed using the -y
or --yes
command
line argument, as with other salt-key
commands.
Support for Setting Password Hashes on BSD Minions
FreeBSD, NetBSD, and OpenBSD all now support setting passwords in
user.present <salt.states.user.present>
states.