1
0

2014.1.0.rst 10 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296
  1. .. _release-2014-1-0:
  2. ===============================================
  3. Salt 2014.1.0 Release Notes - Codename Hydrogen
  4. ===============================================
  5. .. note::
  6. Due to a change in master to minion communication, 2014.1.0 minions are not
  7. compatible with older-version masters. Please upgrade masters first.
  8. More info on backwards-compatibility policy :ref:`here
  9. <installation>`, under the "Upgrading Salt" subheading.
  10. .. note::
  11. A change in the grammar in the state compiler makes ``module.run`` in
  12. requisites illegal syntax. Its use is replaced simply with the word
  13. ``module``. In other words you will need to change requisites like this::
  14. require:
  15. module.run: some_module_name
  16. to::
  17. require:
  18. module: some_module_name
  19. This is a breaking change. We apologize for the inconvenience, we needed to
  20. do this to remove some ambiguity in parsing requisites.
  21. :release: 2014-02-24
  22. The 2014.1.0 release of Salt is a major release which not only increases
  23. stability but also brings new capabilities in virtualization, cloud
  24. integration, and more. This release brings a great focus on the expansion of
  25. testing making roughly double the coverage in the Salt tests, and comes with
  26. many new features.
  27. 2014.1.0 is the first release to follow the new date-based release naming
  28. system. See the :ref:`version numbers<version-numbers>`
  29. page for more details.
  30. Major Features
  31. ==============
  32. Salt Cloud Merged into Salt
  33. ---------------------------
  34. Salt Cloud is a tool for provisioning salted minions across various cloud
  35. providers. Prior to this release, Salt Cloud was a separate project but this
  36. marks its full integration with the Salt distribution. A Getting Started guide
  37. and additional documentation for Salt Cloud can be found :ref:`here <salt-cloud>`:
  38. Google Compute Engine
  39. ---------------------
  40. Alongside Salt Cloud comes new support for the Google Compute Engine. Salt Stack
  41. can now deploy and control GCE virtual machines and the application stacks that
  42. they run.
  43. For more information on Salt Stack and GCE, please see `this blog post`_.
  44. Documentation for Salt and GCE can be found :ref:`here <cloud-getting-started-gce>`.
  45. .. _this blog post: http://googlecloudplatform.blogspot.com/2013/12/saltstack-for-google-compute-engine.html
  46. Salt Virt
  47. ---------
  48. Salt Virt is a cloud controller that supports virtual machine deployment,
  49. inspection, migration, and integration with many aspects of Salt.
  50. Salt Virt has undergone a major overhaul with this release and now supports
  51. many more features and includes a number of critical improvements.
  52. Docker Integration
  53. ------------------
  54. Salt now ships with :mod:`states <salt.states.dockerio>` and an :mod:`execution
  55. module <salt.states.dockerio>` to manage Docker containers.
  56. Substantial Testing Expansion
  57. -----------------------------
  58. Salt continues to increase its unit/regression test coverage. This release
  59. includes over 300 new tests.
  60. BSD Package Management
  61. ----------------------
  62. BSD package management has been entirely rewritten. FreeBSD 9 and older now
  63. default to using pkg_add, while FreeBSD 10 and newer will use pkgng. FreeBSD 9
  64. can be forced to use pkgng, however, by specifying the following option in the
  65. minion config file:
  66. .. code-block:: yaml
  67. providers:
  68. pkg: pkgng
  69. In addition, support for installing software from the ports tree has been
  70. added. See the documentation for the ports :mod:`state <salt.states.ports>` and
  71. :mod:`execution module <salt.modules.freebsdports>` for more information.
  72. Network Management for Debian/Ubuntu
  73. ------------------------------------
  74. Initial support for management of network interfaces on Debian-based distros
  75. has been added. See the documentation for the :mod:`network state
  76. <salt.states.network>` and the :mod:`debian_ip <salt.modules.debian_ip>` for
  77. more information.
  78. IPv6 Support for iptables State/Module
  79. --------------------------------------
  80. The iptables :mod:`state <salt.states.iptables>` and :mod:`module
  81. <salt.modules.iptables>` now have IPv6 support. A new parameter ``family`` has
  82. been added to the states and execution functions, to distinguish between IPv4
  83. and IPv6. The default value for this parameter is ``ipv4``, specifying ``ipv6``
  84. will use ip6tables to manage firewall rules.
  85. GitFS Improvements
  86. ------------------
  87. Several performance improvements have been made to the :mod:`Git fileserver
  88. backend <salt.fileserver.gitfs>`. Additionally, file states can now use any
  89. SHA1 commit hash as a fileserver environment:
  90. .. code-block:: yaml
  91. /etc/httpd/httpd.conf:
  92. file.managed:
  93. - source: salt://webserver/files/httpd.conf
  94. - saltenv: 45af879
  95. This applies to the functions in the :mod:`cp module <salt.modules.cp>` as
  96. well:
  97. .. code-block:: yaml
  98. salt '*' cp.get_file salt://readme.txt /tmp/readme.txt saltenv=45af879
  99. MinionFS
  100. --------
  101. This new fileserver backend allows files which have been pushed from the minion
  102. to the master (using :mod:`cp.push <salt.modules.cp.push>`) to be served up
  103. from the salt fileserver. The path for these files takes the following format::
  104. salt://minion-id/path/to/file
  105. ``minion-id`` is the id of the "source" minion, the one from which the files
  106. were pushed to the master. ``/path/to/file`` is the full path of the file.
  107. The :ref:`MinionFS Walkthrough <tutorial-minionfs>` contains a more
  108. thorough example of how to use this backend.
  109. saltenv
  110. -------
  111. To distinguish between fileserver environments and execution functions which
  112. deal with environment variables, fileserver environments are now specified
  113. using the ``saltenv`` parameter. ``env`` will continue to work, but is
  114. deprecated and will be removed in a future release.
  115. Grains Caching
  116. --------------
  117. A caching layer has been added to the Grains system, which can help speed up
  118. minion startup. Disabled by default, it can be enabled by setting the minion
  119. config option ``grains_cache``:
  120. .. code-block:: yaml
  121. grains_cache: True
  122. # Seconds before grains cache is considered to be stale.
  123. grains_cache_expiration: 300
  124. If set to ``True``, the grains loader will read from/write to a
  125. msgpack-serialized file containing the grains data.
  126. Additional command-line parameters have been added to salt-call, mainly for
  127. testing purposes:
  128. * ``--skip-grains`` will completely bypass the grains loader when salt-call is
  129. invoked.
  130. * ``--refresh-grains-cache`` will force the grains loader to bypass the grains
  131. cache and refresh the grains, writing a new grains cache file.
  132. Improved Command Logging Control
  133. --------------------------------
  134. When using the :mod:`cmd module <salt.modules.cmdmod>`, either on the CLI or
  135. when developing Salt execution modules, a new keyword argument
  136. ``output_loglevel`` allows for greater control over how (or even if) the
  137. command and its output are logged. For example:
  138. .. code-block:: bash
  139. salt '*' cmd.run 'tail /var/log/messages' output_loglevel=debug
  140. The package management modules (``apt``, ``yumpkg``, etc.) have been updated to
  141. log the copious output generated from these commands at loglevel ``debug``.
  142. .. note::
  143. To keep a command from being logged, ``output_loglevel=quiet`` can be used.
  144. Prior to this release, this could be done using ``quiet=True``. This
  145. argument is still supported, but will be removed in a future Salt release.
  146. PagerDuty Support
  147. -----------------
  148. Initial support for firing events via PagerDuty_ has been added. See the
  149. documentation for the :mod:`pagerduty <salt.modules.pagerduty>` module.
  150. .. _PagerDuty: http://www.pagerduty.com
  151. Virtual Terminal
  152. ----------------
  153. Sometimes the subprocess module is not good enough, and, in fact, not even
  154. ``askpass`` is. This virtual terminal is still in it's infant childhood, needs
  155. quite some love, and was originally created to replace ``askpass``, but, while
  156. developing it, it immediately proved that it could do so much more. It's
  157. currently used by salt-cloud when bootstrapping salt on clouds which require
  158. the use of a password.
  159. Proxy Minions
  160. -------------
  161. Initial basic support for Proxy Minions is in this release. Documentation can
  162. be found :ref:`here <proxy-minion>`.
  163. Proxy minions are a developing feature in Salt that enables control of devices
  164. that cannot run a minion. Examples include network gear like switches and
  165. routers that run a proprietary OS but offer an API, or "dumb" devices that just
  166. don't have the horsepower or ability to handle a Python VM.
  167. Proxy minions can be difficult to write, so a simple REST-based example proxy
  168. is included. A Python bottle-based webserver can be found at
  169. https://github.com/cro/salt-proxy-rest as an endpoint for this proxy.
  170. This is an ALPHA-quality feature. There are a number of issues with it
  171. currently, mostly centering around process control, logging, and inability to
  172. work in a masterless configuration.
  173. Additional Bugfixes (Release Candidate Period)
  174. ----------------------------------------------
  175. Below are many of the fixes that were implemented in salt during the release
  176. candidate phase.
  177. - Fix mount.mounted leaving conflicting entries in fstab (:issue:`7079`)
  178. - Fix mysql returner serialization to use json (:issue:`9590`)
  179. - Fix ``ZMQError: Operation cannot be accomplished in current state`` errors (:issue:`6306`)
  180. - Rbenv and ruby improvements
  181. - Fix quoting issues with mysql port (:issue:`9568`)
  182. - Update mount module/state to support multiple swap partitions (:issue:`9520`)
  183. - Fix ``archive`` state to work with ``bsdtar``
  184. - Clarify logs for minion ID caching
  185. - Add numeric revision support to git state (:issue:`9718`)
  186. - Update ``master_uri`` with ``master_ip`` (:issue:`9694`)
  187. - Add comment to Debian ``mod_repo`` (:issue:`9923`)
  188. - Fix potential undefined loop variable in rabbitmq state (:issue:`8703`)
  189. - Fix for salt-virt runner to delete key on VM deletion
  190. - Fix for ``salt-run -d`` to limit results to specific runner or function (:issue:`9975`)
  191. - Add tracebacks to jinja renderer when applicable (:issue:`10010`)
  192. - Fix parsing in monit module (:issue:`10041`)
  193. - Fix highstate output from syndic minions (:issue:`9732`)
  194. - Quiet logging when dealing with passwords/hashes (:issue:`10000`)
  195. - Fix for multiple remotes in git_pillar (:issue:`9932`)
  196. - Fix npm installed command (:issue:`10109`)
  197. - Add safeguards for utf8 errors in zcbuildout module
  198. - Fix compound commands (:issue:`9746`)
  199. - Add systemd notification when master is started
  200. - Many doc improvements