2012-03-17 07:10:46 +00:00
|
|
|
========================
|
|
|
|
Salt 0.9.8 Release Notes
|
|
|
|
========================
|
|
|
|
|
|
|
|
Salt 0.9.8 is a big step forward, with many additions and enhancements, as
|
2012-03-17 15:39:51 +00:00
|
|
|
well as a number of precursors to advanced future developments.
|
2012-03-17 07:10:46 +00:00
|
|
|
|
|
|
|
This version of Salt adds much more power to the command line, making the
|
2012-03-17 20:59:45 +00:00
|
|
|
old hard timeout issues a thing of the past, and adding keyword argument
|
2012-03-18 00:26:08 +00:00
|
|
|
support. These additions are also available in the salt client api, making
|
|
|
|
the available api tools much more powerful.
|
2012-03-17 07:10:46 +00:00
|
|
|
|
|
|
|
The new pillar system allows for data to be stored on the master and
|
2012-03-18 00:26:08 +00:00
|
|
|
assigned to minions in a granular way similar to the state system. It also
|
|
|
|
allows flexibility for users who want to keep data out of their state tree
|
|
|
|
similar to 'external lookup' functionality in other tools.
|
2012-03-17 07:10:46 +00:00
|
|
|
|
|
|
|
Additions to requisites making them much more powerful have been added and
|
2012-03-17 15:39:51 +00:00
|
|
|
improved error checking for sls files in the state system. A new provider
|
2012-03-18 00:26:08 +00:00
|
|
|
system has been added to allow for redirecting what modules run in the
|
|
|
|
background for individual states.
|
2012-03-17 07:10:46 +00:00
|
|
|
|
2012-03-17 15:39:51 +00:00
|
|
|
Support for OpenSUSE has been added and support for Solaris has begun
|
2012-03-17 20:59:45 +00:00
|
|
|
serious development. Windows support has been signifigantly enhanced as well.
|
2012-03-17 07:10:46 +00:00
|
|
|
|
2012-03-17 20:59:45 +00:00
|
|
|
The matcher and target systems have received a great deal of attention. The
|
|
|
|
default behavior of grain matching has changed slightly to reflect the salt
|
|
|
|
default behavior and the compound matcher system has been greatly refined.
|
2012-03-17 07:10:46 +00:00
|
|
|
|
|
|
|
A number of impressive features with keyword arguments have been added to both
|
2012-03-18 00:26:08 +00:00
|
|
|
the cli and to the state system. This makes states much more powerful and
|
|
|
|
flexible while maintaining the simple configuration everyone loves.
|
2012-03-17 07:10:46 +00:00
|
|
|
|
2012-03-18 00:26:08 +00:00
|
|
|
The new batch size capability allows for executions to be rolled through a
|
|
|
|
group of targeted minions a percentage or specific number at a time. This
|
|
|
|
was added to prevent the "thundering herd" problem when targetting large
|
|
|
|
numbers of minions for things like service restarts or file downloads.
|
2012-03-17 07:10:46 +00:00
|
|
|
|
2012-03-17 20:47:21 +00:00
|
|
|
Upgrade Considerations
|
|
|
|
======================
|
|
|
|
|
2012-03-17 23:27:56 +00:00
|
|
|
Upgrade Issues
|
|
|
|
--------------
|
2012-03-17 20:47:21 +00:00
|
|
|
|
|
|
|
There was an oversight that has been previously missed which could cause a
|
|
|
|
newer minion to crash an older master. This oversight has been repaired so
|
|
|
|
that this version incompatibility issue will not occur again. When upgrading
|
|
|
|
to 0.9.8 make sure to upgrade the master first, followed by the minions.
|
|
|
|
|
|
|
|
Debian/Ubuntu Packages
|
|
|
|
----------------------
|
|
|
|
|
|
|
|
The original Debian/Ubuntu packages were called salt and included all salt
|
|
|
|
applications. New packages in the ppa are split. If an old salt package is
|
|
|
|
installed then it should be manually removed and the new split packages
|
|
|
|
need to be installed fresh.
|
|
|
|
|
2012-03-17 07:10:46 +00:00
|
|
|
|
|
|
|
Major Features
|
|
|
|
==============
|
|
|
|
|
|
|
|
Pillar
|
|
|
|
------
|
|
|
|
|
|
|
|
Pillar offers an interface to declare variable data on the master that is then
|
|
|
|
assigned to the minions. The pillar data is made available to all modules,
|
|
|
|
states, sls files etc. It is compiled on the master and is declared using the
|
2012-03-17 20:59:45 +00:00
|
|
|
existing renderer system. This means that learning pillar should be fairly
|
2012-03-17 07:10:46 +00:00
|
|
|
trivial to those already familiar with salt states.
|
|
|
|
|
|
|
|
CLI Additions
|
|
|
|
-------------
|
|
|
|
|
2012-03-17 21:22:50 +00:00
|
|
|
The salt command in 0.9.8 has received a serious overhaul and is more powerful
|
|
|
|
then ever. Data is returned to the terminal as it is received, and the salt
|
|
|
|
command will now wait for all running minions to return data before stopping.
|
2012-03-17 23:27:56 +00:00
|
|
|
This makes adding very large *--timeout* arguments completely unnecessary.
|
2012-03-18 00:01:52 +00:00
|
|
|
When calling salt via sudo, the user originally running salt is saved to the
|
|
|
|
salt log for auditing purposes. The *salt-key* command gained the *-D* and
|
|
|
|
*--delete-all* arguments for removing all keys.
|
2012-03-17 07:10:46 +00:00
|
|
|
|
2012-03-17 23:27:56 +00:00
|
|
|
Keyword Arguments and States
|
2012-03-17 07:10:46 +00:00
|
|
|
-----------------
|
|
|
|
|
2012-03-17 21:22:50 +00:00
|
|
|
A new addition to writing state modules has been made available. State modules
|
|
|
|
can now accept the ``**kwargs`` argument. The result of this is that all data
|
2012-03-17 23:27:56 +00:00
|
|
|
in a sls file assigned to a state will be made available to the state function.
|
2012-03-17 21:22:50 +00:00
|
|
|
|
|
|
|
This enables data to be passed in a transparent way back to the modules that
|
2012-03-17 23:27:56 +00:00
|
|
|
are executing the logic. In particular, this allows us to add arguments to the
|
2012-03-17 21:22:50 +00:00
|
|
|
pkg.install module that enable more advanced and granular controls with respect
|
|
|
|
to what the state is capable of.
|
|
|
|
|
2012-03-17 23:27:56 +00:00
|
|
|
Keyword Arguments and the CLI
|
2012-03-17 07:10:46 +00:00
|
|
|
------------------
|
|
|
|
|
2012-03-17 22:35:18 +00:00
|
|
|
In the past it was required that all arguments be passed in order to modules
|
2012-03-17 23:27:56 +00:00
|
|
|
from the *salt* and *salt-call* commands. As of 0.9.8, keyword arguments can
|
|
|
|
be passed in the form of ``kwarg=argument``.
|
2012-03-17 21:22:50 +00:00
|
|
|
|
2012-03-17 07:10:46 +00:00
|
|
|
Matcher Refinements and Changes
|
|
|
|
-------------------------------
|
|
|
|
|
2012-03-17 22:32:32 +00:00
|
|
|
Support has been added for matching minions with Yahoo's range library. This
|
|
|
|
is handled by passing range syntax with *-R* or *--range* arguments to salt.
|
|
|
|
|
|
|
|
More information at:
|
|
|
|
https://github.com/grierj/range/wiki/Introduction-to-Range-with-YAML-files
|
|
|
|
|
2012-03-17 23:27:56 +00:00
|
|
|
A number of fixes and changes have been applied to the Matcher system. The
|
|
|
|
most noteworthy is the change in the grain matcher. The grain matcher used
|
|
|
|
a regular expression to match the passed data to a grain, but now defaults
|
|
|
|
to a shell glob like the majority of match interfaces in Salt. A new option
|
|
|
|
is available that still uses the old style regex matching to grain data called
|
|
|
|
grain-pcre. To use regex matching in compound matches use the letter *P*.
|
|
|
|
|
|
|
|
For example, this would match any ArchLinux or Fedora minions:
|
2012-03-17 22:32:32 +00:00
|
|
|
|
|
|
|
.. code-block:: sh
|
|
|
|
|
|
|
|
# salt --grain-pcre 'os:(Arch:Fed).*' test.ping
|
|
|
|
|
2012-03-17 23:27:56 +00:00
|
|
|
And the associated compound matcher suitable for ``top.sls`` is *P*:
|
2012-03-17 22:32:32 +00:00
|
|
|
|
|
|
|
.. code-block:: sh
|
|
|
|
|
|
|
|
P@os:(Arch|Fed).*
|
|
|
|
|
2012-03-17 23:27:56 +00:00
|
|
|
**NOTE**: The default grains matcher has changed from pcre to glob. This is a
|
|
|
|
backwards incompatible change.
|
2012-03-17 22:32:32 +00:00
|
|
|
|
2012-03-17 07:10:46 +00:00
|
|
|
Providers
|
|
|
|
---------
|
|
|
|
|
2012-03-17 21:58:54 +00:00
|
|
|
Salt predetermines what modules should be mapped to what uses based on the
|
|
|
|
properties of a system. These determinations are generally made for modules
|
|
|
|
that provide things like package and service management.
|
|
|
|
|
2012-03-17 23:27:56 +00:00
|
|
|
Sometimes in states, it may be necessary for an alternative module to be used
|
|
|
|
to provide the desired functionality. For instance, an Arch Linux system may
|
2012-03-17 21:58:54 +00:00
|
|
|
have been set up with systemd support, so instead of using the default service
|
|
|
|
module detected for Arch Linux, the systemd module can be used:
|
|
|
|
|
|
|
|
.. code-block:: yaml
|
|
|
|
|
|
|
|
http:
|
|
|
|
service:
|
|
|
|
- running
|
|
|
|
- enable: True
|
|
|
|
- provider: systemd
|
|
|
|
|
2012-03-17 07:10:46 +00:00
|
|
|
Requisite Glob Matching
|
|
|
|
-----------------------
|
|
|
|
|
2012-03-17 21:58:54 +00:00
|
|
|
Requisites can now be defined with glob expansion. This means that if there are
|
2012-03-17 23:27:56 +00:00
|
|
|
many requisites, they can be defined on a single line. For instance, to watch
|
|
|
|
all files in a directory, it can be defined like so:
|
2012-03-17 21:58:54 +00:00
|
|
|
|
|
|
|
.. code-block:: yaml
|
|
|
|
|
|
|
|
http:
|
|
|
|
service:
|
|
|
|
- running
|
|
|
|
- enable: True
|
|
|
|
- watch:
|
|
|
|
- file: /etc/http/conf.d/*
|
|
|
|
|
|
|
|
This example will watch all defined files that match the glob
|
|
|
|
``/etc/http/conf.d/*``
|
|
|
|
|
2012-03-17 07:10:46 +00:00
|
|
|
Batch Size
|
|
|
|
----------
|
|
|
|
|
2012-03-17 23:27:56 +00:00
|
|
|
The new batch size option allows commands to be executed while maintaining that
|
|
|
|
only so many hosts are executing the command at one time. This option can
|
2012-03-17 21:58:54 +00:00
|
|
|
take a percentage or a finite number:
|
|
|
|
|
|
|
|
.. code-block:: bash
|
|
|
|
|
2012-03-17 23:45:49 +00:00
|
|
|
salt \* -b 10% test.ping
|
2012-03-17 23:27:56 +00:00
|
|
|
|
2012-03-17 23:45:49 +00:00
|
|
|
salt -G 'os:RedHat' --batch-size 25% apache.signal restart
|
2012-03-17 21:58:54 +00:00
|
|
|
|
2012-03-17 23:27:56 +00:00
|
|
|
This will only run test.ping on 10% of the targeted minions at a time and work
|
|
|
|
through them all until the task is complete. This makes tasks like rolling web
|
2012-03-17 23:45:49 +00:00
|
|
|
server restarts behind a load balancer or doing maintenance on BSD firewalls
|
|
|
|
using carp much easier with salt.
|
2012-03-17 21:58:54 +00:00
|
|
|
|
2012-03-17 21:14:57 +00:00
|
|
|
|
|
|
|
Module Updates
|
|
|
|
---------------
|
|
|
|
|
|
|
|
This is a list of notable, but not complete updates with new and existing
|
|
|
|
modules.
|
|
|
|
|
2012-03-17 22:35:18 +00:00
|
|
|
For our ruby users, new :doc:`rvm </ref/modules/all/salt.modules.rvm>` and
|
|
|
|
:doc:`gem </ref/modules/all/salt.modules.gem>` modules have been added along
|
|
|
|
with the :doc:`associated </ref/states/all/salt.states.rvm>`
|
|
|
|
:doc:`states </ref/states/all/salt.states.gem>`
|
2012-03-17 22:32:32 +00:00
|
|
|
|
2012-03-17 21:14:57 +00:00
|
|
|
|
2012-03-17 22:32:32 +00:00
|
|
|
The :doc:`virt </ref/modules/all/salt.modules.virt>` module gained basic Xen support.
|
2012-03-17 21:14:57 +00:00
|
|
|
|
2012-03-18 00:01:52 +00:00
|
|
|
The :doc:`yum </ref/modules/all/salt.modules.yumpkg5>`
|
|
|
|
:doc:`pkg </ref/modules/all/salt.modules.yumpkg>` modules gained Scientific
|
2012-03-17 23:45:49 +00:00
|
|
|
Linux support.
|
2012-03-17 21:14:57 +00:00
|
|
|
|
2012-03-17 23:45:49 +00:00
|
|
|
The :doc:`pkg </ref/modules/all/salt.modules.apt>` module on Debian, Ubuntu,
|
|
|
|
and derivatives forces apt to run in a non-interactive mode preventing previous
|
2012-03-18 00:01:52 +00:00
|
|
|
issues with installation.
|
|
|
|
|
|
|
|
A :doc:`pkg </ref/modules/all/salt.modules.zypper>` module for OpenSUSE's
|
|
|
|
zypper was added.
|
|
|
|
|
|
|
|
The :doc:`service </ref/modules/all/salt.modules.upstart>` module on ubuntu
|
|
|
|
natively supports upstart.
|
|
|
|
|
|
|
|
A new :doc:`debconf </ref/modules/all/salt.modules.debconfmod>` module was
|
|
|
|
contributed by our community for more advanced control over deb package
|
|
|
|
deployments on Debian based distributions.
|
2012-03-17 21:14:57 +00:00
|
|
|
|
2012-03-17 23:45:49 +00:00
|
|
|
The :doc:`mysql.user </ref/states/all/salt.states.mysql_user>` state and
|
|
|
|
:doc:`mysql </ref/modules/all/salt.modules.mysql>` module gained a
|
|
|
|
*password_hash* argument.
|
2012-03-17 21:14:57 +00:00
|
|
|
|
2012-03-17 23:45:49 +00:00
|
|
|
The :doc:`cmd </ref/modules/all/salt.modules.cmdmod>` module and state gained
|
|
|
|
a *shell* keyword argument for specifying a shell other than ``/bin/sh`` on
|
|
|
|
Linux / Unix systems.
|
2012-03-17 21:14:57 +00:00
|
|
|
|
|
|
|
|
2012-03-17 07:10:46 +00:00
|
|
|
In Progress Development
|
|
|
|
=======================
|
|
|
|
|
|
|
|
Master Side State Compiling
|
|
|
|
---------------------------
|
|
|
|
|
|
|
|
While we feel strongly that the advantages gained with minion side state
|
2012-03-17 15:39:51 +00:00
|
|
|
compiling is very critical, it does prevent certain features what may be
|
2012-03-17 07:10:46 +00:00
|
|
|
desired. 0.9.8 has support for initial master side state compiling, but many
|
|
|
|
more components still need to be developed, it is hoped that these can be
|
|
|
|
finished for 0.9.9.
|
|
|
|
|
|
|
|
The goal is that states can be compiled on both the master and the minion
|
|
|
|
allowing for compilation to be split between master and minion.
|
2012-03-17 20:59:45 +00:00
|
|
|
|
|
|
|
|
|
|
|
Solaris Support
|
|
|
|
--------------------
|
|
|
|
|
|
|
|
Salt 0.9.8 sees the introduction of basic Solaris support.
|
|
|
|
|
|
|
|
|
|
|
|
Windows Support
|
|
|
|
--------------------
|
|
|
|
|
|
|
|
Salt states on windows are now much more viable thanks to contributions from
|
|
|
|
our community! States for file, user, and group management are more fully
|
|
|
|
fleshed out along with a network module. Windows users can also now manage
|
|
|
|
registry entries using the new "reg" module.
|