0.8.0.rst 4.6 KB

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