2016.3.0.rst 22 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495
  1. .. _release-2016-3-0:
  2. ============================================
  3. Salt 2016.3.0 Release Notes - Codename Boron
  4. ============================================
  5. Known Issues
  6. ============
  7. .. warning::
  8. **Some Salt Masters may need to apply a patch for Default Job Cache to
  9. prevent a possible crash**
  10. An issue exists that prevents the Salt master from cleaning the default job
  11. cache. This issue can cause an overconsumption of resources resulting in a
  12. crash. 2016.3.0 Salt masters should apply the patch in :pull:`33555`. This
  13. issue will be addressed in 2016.3.1.
  14. - :issue:`33516`: When upgrading from 2015.8.10 to 2016.3.0 on centos7/redhat7
  15. salt-minion must be restarted twice.
  16. - :issue:`33517`: SPM does not work on amazon linux 2015 in 2016.3.0.
  17. Backwards-incompatible Changes
  18. ==============================
  19. - The default path for the :conf_master:`extension_modules` master config
  20. option has been changed. Prior to this release, the location was a directory
  21. named ``extmods`` in the Salt cachedir. On most platforms, this would put the
  22. :conf_master:`extension_modules` directory in ``/var/cache/salt/extmods``.
  23. It has been moved one directory down, into the master cachedir. On most
  24. platforms, this is ``/var/cache/salt/master/extmods``. Most users won't have
  25. to worry about this, but those who have been manually placing custom runners
  26. into ``/var/cache/salt/extmods/runners``, or outputters into
  27. ``/var/cache/salt/extmods/output``, etc. will be affected by this. To
  28. transition, it is recommended not to simply move the extmods directory into
  29. ``/var/cache/salt/master``, but to copy the custom modules into the salt
  30. fileserver under ``salt://_runners``, ``salt://_output``, etc. and sync them
  31. using the functions in the new :mod:`saltutil runner
  32. <salt.runners.saltutil>`.
  33. - The :py:func:`pkg.check_db <salt.modules.yumpkg.check_db>` function has been
  34. removed for yum/dnf.
  35. Core Changes
  36. ============
  37. - The ``onchanges`` requisite now fires if **any** watched state changes. :issue:`19592`.
  38. - The ``ext_pillar`` functions **must** now accept a minion ID as the first
  39. argument. This stops the deprecation path started in Salt 0.17.x. Before this
  40. minion ID first argument was introduced, the minion ID could be retrieved
  41. accessing ``__opts__['id']`` losing the reference to the master ID initially
  42. set in opts. This is no longer the case, ``__opts__['id']`` will be kept as
  43. the master ID.
  44. - Custom types can now be synced to the master using the new :mod:`saltutil
  45. runner <salt.runners.saltutil>`. Before, these needed to manually be placed
  46. under the :conf_master:`extension_modules` directory. This allows custom
  47. modules to easily be synced to the master to make them available when
  48. compiling Pillar data. Just place custom runners into ``salt://_runners``,
  49. custom outputters into ``salt://_output``, etc. and use the functions from
  50. the :mod:`saltutil runner <salt.runners.saltutil>` to sync them.
  51. - The ``client_acl`` configuration options were renamed to ``publisher_acl``.
  52. - Added a new ``--config-dump`` option (:issue:`26639`).
  53. - TCP Transport presence events were updated to work with a NAT (:pull:`30629`).
  54. - A :conf_minion:`minion_pillar_cache` setting was added to save rendered
  55. pillar data to cachedir for later use when file_client is set to local
  56. (:pull:`30428`).
  57. - Added the ability for binary data (such as a license key) to be distributed
  58. via pillar using the :mod:`file.managed <salt.states.file.managed>`
  59. (:issue:`9569`).
  60. - Scheduled jobs now include ``success`` and ``retcode`` (:issue:`24237`).
  61. - The ``saltversioninfo`` grain was changed from a string to a list to enable
  62. reading values by index. (:pull:`30082`).
  63. - A :conf_master:`pillar_merge_lists` option was added to enable recursively
  64. merging pillar lists by aggregating them instead of replacing them
  65. (:pull:`30062`).
  66. - Grain values reported by Debian 8 (jessie) when lsb-release is installed were
  67. updated for consistency (:pull:`28649`).
  68. - A new option for minions called master_tries has been added. This specifies
  69. the number of times a minion should attempt to contact a master to attempt
  70. a connection. This allows better handling of occasional master downtime in
  71. a multi-master topology.
  72. - The default directory for deploying the salt-thin tarball has changed for
  73. salt-ssh. It is now /var/tmp instead of /tmp. Users may also wish
  74. to delete any directories in /tmp ending with `_salt/`. (:issue:`32771`)
  75. External Module Packaging
  76. =========================
  77. Modules may now be packaged via entry-points in setuptools. See
  78. :ref:`external module packaging <tutorial-packaging-modules>` tutorial
  79. for more information.
  80. Cloud Changes
  81. =============
  82. - Refactored the OpenNebula driver and added numerous ``--function`` and
  83. ``--action`` commands to enhance Salt support for image, template, security group,
  84. virtual network and virtual machine management in OpenNebula.
  85. - Added execution/state modules to support the deployment of AWS cognito
  86. identity pools (:pull:`31094`).
  87. - Added ability to set tags and listener policies on a AWS ELB (:pull:`27552`).
  88. Platform Changes
  89. ================
  90. - Renamed modules related to macOS. The following module filenames were changed.
  91. The virtual name remained unchanged.
  92. - :pull:`#30558`: renamed osxdesktop.py to mac_desktop.py
  93. - :pull:`#30557`: renamed macports.py to mac_ports.py
  94. - :pull:`#30556`: renamed darwin_sysctl.py to mac_sysctl.py
  95. - :pull:`#30555`: renamed brew.py to mac_brew.py
  96. - :pull:`#30552`: renamed darwin_pkgutil.py to mac_pkgutil.py
  97. Package Support
  98. ===============
  99. - Ubuntu Xenial: Packages for Ubuntu Xenial (16.04) are available for 2016.3.0 and
  100. onwards. See `repo.saltstack.com`_ for more information. Note that Xenial comes
  101. with Debian's packaged version of Salt 2015.8.8 and official `repo.saltstack.com`_
  102. packages are available for 2015.8 releases beginning with Salt 2015.8.11.
  103. .. _`repo.saltstack.com`: https://repo.saltstack.com/#ubuntu
  104. Proxy Minion Changes
  105. ====================
  106. The deprecated config option ``enumerate_proxy_minions`` has been removed.
  107. As mentioned in earlier documentation, the ``add_proxymodule_to_opts``
  108. configuration variable defaults to ``False`` in this release. This means if you
  109. have proxymodules or other code looking in ``__opts__['proxymodule']`` you
  110. will need to set this variable in your ``/etc/salt/proxy`` file, or
  111. modify your code to use the `__proxy__` injected variable.
  112. The ``__proxyenabled__`` directive now only applies to grains and proxy modules
  113. themselves. Standard execution modules and state modules are not prevented
  114. from loading for proxy minions.
  115. Support has been added to Salt's loader allowing custom proxymodules
  116. to be placed in ``salt://_proxy``. Proxy minions that need these modules
  117. will need to be restarted to pick up any changes. A corresponding utility function,
  118. ``saltutil.sync_proxymodules``, has been added to sync these modules to minions.
  119. Enhancements in grains processing have made the ``__proxyenabled__`` directive
  120. somewhat redundant in dynamic grains code. It is still required, but best
  121. practices for the ``__virtual__`` function in grains files have changed. It
  122. is now recommended that the ``__virtual__`` functions check to make sure
  123. they are being loaded for the correct proxytype, example below:
  124. .. code-block:: python
  125. def __virtual__():
  126. '''
  127. Only work on proxy
  128. '''
  129. try:
  130. if salt.utils.is_proxy() and \
  131. __opts__['proxy']['proxytype'] == 'ssh_sample':
  132. return __virtualname__
  133. except KeyError:
  134. pass
  135. return False
  136. .. note::
  137. ``salt.utils.is_proxy()`` has been renamed to
  138. ``salt.utils.platform.is_proxy`` as of the Oxygen release.
  139. The try/except block above exists because grains are processed very early
  140. in the proxy minion startup process, sometimes earlier than the proxy
  141. key in the ``__opts__`` dictionary is populated.
  142. Grains are loaded so early in startup that no dunder dictionaries are
  143. present, so ``__proxy__``, ``__salt__``, etc. are not available. Custom
  144. grains located in ``/srv/salt/_grains`` and in the salt install grains
  145. directory can now take a single argument, ``proxy``, that is identical
  146. to ``__proxy__``. This enables patterns like
  147. .. code-block:: python
  148. def get_ip(proxy):
  149. '''
  150. Ask the remote device what IP it has
  151. '''
  152. return {'ip':proxy['proxymodulename.get_ip']()}
  153. Then the grain ``ip`` will contain the result of calling the ``get_ip()`` function
  154. in the proxymodule called ``proxymodulename``.
  155. Proxy modules now benefit from including a function called ``initialized()``. This
  156. function should return ``True`` if the proxy's ``init()`` function has been successfully
  157. called. This is needed to make grains processing easier.
  158. Finally, if there is a function called ``grains`` in the proxymodule, it
  159. will be executed on proxy-minion startup and its contents will be merged with
  160. the rest of the proxy's grains. Since older proxy-minions might have used other
  161. methods to call such a function and add its results to grains, this is config-gated
  162. by a new proxy configuration option called ``proxy_merge_grains_in_module``. This
  163. defaults to ``False`` in this release. It will default to True in the release after
  164. next. The next release is codenamed **Carbon**, the following is **Nitrogen**.
  165. The example proxy minions ``rest_sample`` and ``ssh_sample`` have been updated to
  166. reflect these changes.
  167. Syndic Updates
  168. ==============
  169. A major performance and management issue was found and fixed in the syndic. This makes
  170. the Salt Syndic substantially more reliable and performant. Please make sure that the
  171. syndic and the master of masters which syndics attach to are updated, otherwise the
  172. syndic fixes alone can cause minor performance issues with older master of masters.
  173. Please update masters first, then syndics.
  174. Minions do not need to be updated for this fix to work.
  175. Module Changes
  176. ==============
  177. - :mod:`file execution module <salt.modules.file>`: ``show_diff`` is deprecated in favor
  178. of ``show_changes``. (:pull:`30988`)
  179. - :mod:`reg execution module <salt.modules.reg>`:
  180. - Removed the following deprecated functions from the reg module (:pull:`30956`):
  181. - read_key
  182. - set_key
  183. - create_key
  184. - delete_key
  185. - Removed force parameter from reg state module
  186. - Fixed virtual function in state
  187. - Improved error information for ``reg.delete_value`` function
  188. - :mod:`jboss7 execution module <salt.modules.jboss7>`: ``deployed`` function was
  189. decoupled from Artifactory by removing Artifactory-specific functionality.
  190. Note that the changes in some of the function arguments break existing state
  191. files, see :issue:`30515` and :pull:`3080` for details.
  192. - :mod:`pkg state module <salt.states.pkg>`: The ``wait`` function was removed,
  193. the functionality was replaced with the ``onchanges`` requisite (:pull:`30297`).
  194. - :mod:`firewalld state module <salt.states.firewalld>`: A ``permanent`` argument
  195. was added ``add_port``. Note that ``permanent`` defaults to ``True``, which changes
  196. previous behavior (:pull:`30275`). A ``bind`` function was also added that allows
  197. binding zones to interfaces and sources (:pull:`29497`).
  198. - :mod:`journald beacon module <salt.beacons.journald>`: The event string was updated
  199. to include a tag. Note this might impact existing reactors based on this beacon.
  200. (:pull:`30116`).
  201. - :mod:`postgres_privileges state module <salt.states.postgres_privileges>`:
  202. The default value of the ``prepend`` argument was changed from ``None`` to
  203. ``public``.
  204. - :mod:`zenoss execution module <salt.modules.zenoss.add_device>`: The
  205. ``add_device`` function was updated with a default value of ``1000`` for
  206. ``prod_state`` to match the documentation (:pull:`28924`).
  207. - The etcd execution module, state module, returner module, and util module
  208. were refactor (:pull:`28599`). This refactor changes error returns for
  209. several functions (primarily edge cases):
  210. - get: Used to return '' on key-not-found. Now returns None.
  211. - set: Used to return '' on issues setting keys. Now returns None.
  212. - ls: Used to return {path: {}} on key-not-found. Now returns None.
  213. - Tree: Used to return {} on key-not-found. Now returns None.
  214. - :mod:`smartos_virt execution module <salt.modules.smartos_virt>`: Updated to
  215. use most of the new smartos_vmadm (:pull:`28284`).
  216. - :mod:`apache_conf state module <salt.states.apache_conf>`,
  217. :mod:`apache_module state module <salt.states.apache_module>`, and
  218. :mod:`apache_site state module <salt.states.apache_site>`: the ``enable`` and
  219. ``disable`` functions were renamed to ``enabled`` and ``disabled``,
  220. respectively. In :pull:`33562`, these functions were readded and properly
  221. deprecated and will be removed in Salt 2017.7.0. This fix will be available
  222. in 2016.3.1. As a workaround, try
  223. .. code-block:: sls
  224. apache_module.enable{{ 'd' if grains.saltversioninfo == [2016, 3, 0] else '' }}
  225. New Features
  226. ============
  227. Thorium - Provisional New Reactor
  228. ---------------------------------
  229. The 2016.3 release introduces the new Thorium Reactor. This reactor is an
  230. experimental new feature that implements a flow programming interface using
  231. the salt state system as the engine. This means that the Thorium reactor uses
  232. a classic state tree approach to create a reactor that can aggregate event
  233. data from multiple sources and make aggregate decisions about executing
  234. reactions.
  235. This feature is both experimental and provisional, it may be removed and APIs
  236. may be changed. This system should be considered as ambitious as the Salt
  237. State System in that the scope of adding a programmable logic engine of
  238. this scale into the event systems is non trivial.
  239. See :ref:`Thorium Complex Reactor <thorium-reactor>`.
  240. Improved Mac OS Support
  241. -----------------------
  242. Improved Solaris Support
  243. ------------------------
  244. A lot of work was done to improve support for SmartOS. This work also
  245. resulted in improvements for Solaris and illumos as SmartOS.
  246. - rewrite of :mod:`vmadm module <salt.modules.smartos_vmadm>` (SmartOS)
  247. - rewrite of :mod:`imgadm module <salt.modules.smartos_imgadm>` (SmartOS)
  248. - deprecation of :mod:`virt module <salt.modules.smartos_virt>` in favor of vmadm (SmartOS)
  249. - implemented :mod:`smartos state <salt.states.smartos>` (SmartOS)
  250. - improved :mod:`zpool module <salt.modules.zpool>` add SmartOS, illumos and Solaris support
  251. - improved :mod:`zfs module <salt.modules.zfs>` add SmartOS, illumos and Solaris support
  252. - implemented :mod:`zpool state <salt.states.zpool>`
  253. - implemented :mod:`zfs state <salt.states.zfs>`
  254. implemented :mod:`solaris_system <salt.modules.solaris_system>` system module to provide better Solaris support (:pull:`30519`)
  255. - other minor fixes to grains, localmod, ...
  256. Tornado Transport
  257. -----------------
  258. .. important::
  259. The Tornado Transport wire protocol was changed in 2016.3, making it incompatible with 2015.8 (:pull:`29339`).
  260. Windows DSC Integration (Experiemental)
  261. ---------------------------------------
  262. Dimension Data Cloud Support
  263. ----------------------------
  264. A SaltStack Cloud driver for `Dimension Data Public Cloud`_, provides the driver functionality to service automation for any of the Dimension
  265. Data Public Cloud locations:
  266. - Deploy new virtual machines
  267. - List and query virtual machine images
  268. - Destroy and query virtual machines
  269. Documentation of the Dimension Data SaltStack integration is found on `developer.dimensiondata.com`_
  270. .. _`Dimension Data Public Cloud`: https://cloud.dimensiondata.com/
  271. .. _`developer.dimensiondata.com`: https://developer.dimensiondata.com/display/SAL/Getting+started
  272. Minion Blackout
  273. ---------------
  274. During a blackout, minions will not execute any remote execution commands,
  275. except for :mod:`saltutil.refresh_pillar
  276. <salt.modules.saltutil.refresh_pillar>`. Blackouts are enabled using a special
  277. pillar key, ``minion_blackout`` set to ``True``.
  278. See :ref:`Minion Blackout <blackout>`.
  279. Splunk Returner
  280. ---------------
  281. A Splunk Returner that uses HTTP Event Collector is now available (:pull:`30718`).
  282. SQLCipher Pillar Module
  283. -----------------------
  284. Support was added for retrieving pillar data via queries to SQLCiper databases (:pull:`29782`).
  285. New Modules
  286. ===========
  287. The following list contains a link to the new modules added in this release.
  288. Beacons
  289. -------
  290. * :mod:`beacons.adb <salt.beacons.adb>`
  291. * :mod:`beacons.glxinfo <salt.beacons.glxinfo>`
  292. * :mod:`beacons.memusage <salt.beacons.memusage>`
  293. * :mod:`beacons.network_settings <salt.beacons.network_settings>`
  294. * :mod:`beacons.proxy_example <salt.beacons.proxy_example>`
  295. * :mod:`beacons.salt_proxy <salt.beacons.salt_proxy>`
  296. Engines
  297. -------
  298. * :mod:`engines.docker_events <salt.engines.docker_events>`
  299. * :mod:`engines.redis_sentinel <salt.engines.redis_sentinel>`
  300. * :mod:`engines.slack <salt.engines.slack>`
  301. * :mod:`engines.sqs_events <salt.engines.sqs_events>`
  302. * :mod:`engines.thorium <salt.engines.thorium>`
  303. Execution Modules
  304. -----------------
  305. * :mod:`modules.bcache <salt.modules.bcache>`
  306. * :mod:`modules.beacons <salt.modules.beacons>`
  307. * :mod:`modules.boto_cloudtrail <salt.modules.boto_cloudtrail>`
  308. * :mod:`modules.boto_datapipeline <salt.modules.boto_datapipeline>`
  309. * :mod:`modules.boto_iot <salt.modules.boto_iot>`
  310. * :mod:`modules.boto_lambda <salt.modules.boto_lambda>`
  311. * :mod:`modules.boto_s3_bucket <salt.modules.boto_s3_bucket>`
  312. * :mod:`modules.chronos <salt.modules.chronos>`
  313. * :mod:`modules.cytest <salt.modules.cytest>`
  314. * :mod:`modules.dockercompose <salt.modules.dockercompose>`
  315. * :mod:`modules.dsc <salt.modules.dsc>`
  316. * :mod:`modules.ethtool <salt.modules.ethtool>`
  317. * :mod:`modules.github <salt.modules.github>`
  318. * :mod:`modules.infoblox <salt.modules.infoblox>`
  319. * :mod:`modules.iwtools <salt.modules.iwtools>`
  320. * :mod:`modules.jenkins <salt.modules.jenkins>`
  321. * :mod:`modules.linux_ip <salt.modules.linux_ip>`
  322. * :mod:`modules.mac_assistive <salt.modules.mac_assistive>`
  323. * :mod:`modules.mac_brew <salt.modules.mac_brew>`
  324. * :mod:`modules.mac_defaults <salt.modules.mac_defaults>`
  325. * :mod:`modules.mac_desktop <salt.modules.mac_desktop>`
  326. * :mod:`modules.mac_keychain <salt.modules.mac_keychain>`
  327. * :mod:`modules.mac_pkgutil <salt.modules.mac_pkgutil>`
  328. * :mod:`modules.mac_ports <salt.modules.mac_ports>`
  329. * :mod:`modules.mac_power <salt.modules.mac_power>`
  330. * :mod:`modules.mac_service <salt.modules.mac_service>`
  331. * :mod:`modules.mac_shadow <salt.modules.mac_shadow>`
  332. * :mod:`modules.mac_softwareupdate <salt.modules.mac_softwareupdate>`
  333. * :mod:`modules.mac_sysctl <salt.modules.mac_sysctl>`
  334. * :mod:`modules.mac_system <salt.modules.mac_system>`
  335. * :mod:`modules.mac_timezone <salt.modules.mac_timezone>`
  336. * :mod:`modules.mac_xattr <salt.modules.mac_xattr>`
  337. * :mod:`modules.marathon <salt.modules.marathon>`
  338. * :mod:`modules.minion <salt.modules.minion>`
  339. * :mod:`modules.openvswitch <salt.modules.openvswitch>`
  340. * :mod:`modules.opkg <salt.modules.opkg>`
  341. * :mod:`modules.philips_hue <salt.modules.philips_hue>`
  342. * :mod:`modules.proxy <salt.modules.proxy>`
  343. * :mod:`modules.pushbullet <salt.modules.pushbullet>`
  344. * :mod:`modules.restartcheck <salt.modules.restartcheck>`
  345. * :mod:`modules.s6 <salt.modules.s6>`
  346. * :mod:`modules.salt_proxy <salt.modules.salt_proxy>`
  347. * :mod:`modules.ssh_package <salt.modules.ssh_package>`
  348. * :mod:`modules.ssh_service <salt.modules.ssh_service>`
  349. * :mod:`modules.sysfs <salt.modules.sysfs>`
  350. * :mod:`modules.vboxmanage <salt.modules.vboxmanage>`
  351. * :mod:`modules.win_certutil <salt.modules.win_certutil>`
  352. * :mod:`modules.win_dism <salt.modules.win_dism>`
  353. * :mod:`modules.win_dism <salt.modules.win_dism>`
  354. * :mod:`modules.win_license <salt.modules.win_license>`
  355. * :mod:`modules.win_iis <salt.modules.win_iis>`
  356. * :mod:`modules.win_task <salt.modules.win_task>`
  357. * :mod:`modules.zabbix <salt.modules.zabbix>`
  358. Pillar
  359. ------
  360. * :mod:`pillar.http_yaml <salt.pillar.http_yaml>`
  361. * :mod:`pillar.stack <salt.pillar.stack>`
  362. Proxy
  363. -----
  364. * :mod:`proxy.chronos <salt.proxy.chronos>`
  365. * :mod:`proxy.junos <salt.proxy.junos>`
  366. * :mod:`proxy.marathon <salt.proxy.marathon>`
  367. * :mod:`proxy.phillips_hue <salt.proxy.phillips_hue>`
  368. * :mod:`proxy.ssh_sample <salt.proxy.ssh_sample>`
  369. Roster
  370. ------
  371. * :mod:`roster.range <salt.roster.range>`
  372. States
  373. ------
  374. * :mod:`states.apache_conf <salt.states.apache_conf>`
  375. * :mod:`states.apache_site <salt.states.apache_site>`
  376. * :mod:`states.boto_cloudtrail <salt.states.boto_cloudtrail>`
  377. * :mod:`states.boto_datapipeline <salt.states.boto_datapipeline>`
  378. * :mod:`states.boto_iot <salt.states.boto_iot>`
  379. * :mod:`states.boto_lamda <salt.states.boto_lamda>`
  380. * :mod:`states.boto_s3_bucket <salt.states.boto_s3_bucket>`
  381. * :mod:`states.chocolatey <salt.states.chocolatey>`
  382. * :mod:`states.chronos_job <salt.states.chronos_job>`
  383. * :mod:`states.firewall <salt.states.firewall>`
  384. * :mod:`states.github <salt.states.github>`
  385. * :mod:`states.gpg <salt.states.gpg>`
  386. * :mod:`states.grafana_dashboard <salt.states.grafana_dashboard>`
  387. * :mod:`states.grafana_datasource <salt.states.grafana_datasource>`
  388. * :mod:`states.infoblox <salt.states.infoblox>`
  389. * :mod:`states.jenkins <salt.states.jenkins>`
  390. * :mod:`states.mac_assistive <salt.states.mac_assistive>`
  391. * :mod:`states.mac_defaults <salt.states.mac_defaults>`
  392. * :mod:`states.mac_keychain <salt.states.mac_keychain>`
  393. * :mod:`states.mac_xattr <salt.states.mac_xattr>`
  394. * :mod:`states.marathon_app <salt.states.marathon_app>`
  395. * :mod:`states.openvswitch_bridge <salt.states.openvswitch_bridge>`
  396. * :mod:`states.openvswitch_port <salt.states.openvswitch_port>`
  397. * :mod:`states.postgres_cluster <salt.states.postgres_cluster>`
  398. * :mod:`states.proxy <salt.states.proxy>`
  399. * :mod:`states.salt_proxy <salt.states.salt_proxy>`
  400. * :mod:`states.virt <salt.states.virt>`
  401. * :mod:`states.win_certutil <salt.states.win_certutil>`
  402. * :mod:`states.win_dism <salt.states.win_dism>`
  403. * :mod:`states.win_license <salt.states.win_license>`
  404. * :mod:`states.zabbix_host <salt.states.zabbix_host>`
  405. * :mod:`states.zabbix_hostgroup <salt.states.zabbix_hostgroup>`
  406. * :mod:`states.zabbix_user <salt.states.zabbix_user>`
  407. * :mod:`states.zabbix_usergroup <salt.states.zabbix_usergroup>`