123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692693694695696697698699700701702703704705706707708709710711712713714715716717718719720721722723724725726727728729730731732733734735736737738739740741742743744745746747748749750751752753754755756757758759760761762763764765766767768769770771772773774775776777778779780781782783784785786787788789790791792793794795796797798799800801802803804805806807808809810811812813814815816817818819820821822823824825826827 |
- .. _release-2016-11-0:
- ==============================================
- Salt 2016.11.0 Release Notes - Codename Carbon
- ==============================================
- New Features
- ============
- Docker Introspection and Configuration
- --------------------------------------
- Major additions have been made to the Docker support in 2016.11.0. The new
- addition allows Salt to be executed within a Docker container without a
- minion running or installed in the container. This allows states to
- be run inside a container, but also all of Salt's remote execution
- commands to be run inside docker containers as well. This makes
- container introspection simple and powerful. See the tutorial on using
- this new feature here:
- See :ref:`Salt in Docker Containers <docker-sls>`.
- Advanced Ceph Control
- ---------------------
- Our friends over at SUSE have delivered a powerful new tool to make the
- deployment of Ceph storage systems using Salt very easy. These new Ceph
- tools allow for a storage system to be easily defined using the new
- `ceph.quorum` state.
- Thorium Additions and Improvements
- ----------------------------------
- The Thorium advanced reactor has undergone extensive testing and updates.
- These updates include many more Thorium states, a system for automating
- key management, the ability to use Thorium to easily replace old
- reactors and a great deal of stability and bug fixes.
- State Rollback Using Snapper
- ----------------------------
- Rollback has been one of the most prevalent requests for Salt. We
- have researched it extensively and concluded that the only way to
- accomplish truly reliable rollback would be to execute it at
- the filesystem layer. To accomplish this we have introduced Snapper
- integration into Salt States.
- Snapper is a tool which allows for simple and reliable snapshots
- of the filesystem to be made. With the new `snapper_states` option
- set to `True` in the minion config a snapshot will be made before
- and after every Salt State run.
- These snapshots can be viewed, managed and rolled back to via the
- `snapper` execution module.
- Preserve File Perms in File States
- ----------------------------------
- This feature has been requested for years, the ability to set a flag
- and use the same file permissions for files deployed to a minion as
- the permissions set to the file on the master. Just set the `keep_mode`
- option on any file management state to `True`.
- Ponies!
- -------
- We all agreed that cowsay was just not good enough, install the `ponysay`
- command and the new `pony` outputter will work. Fun for the whole family!
- Additional Features
- -------------------
- - Minions can run in stand-alone mode to use beacons and engines without
- having to connect to a master. (Thanks @adelcast!)
- - Added a ``salt`` runner to allow running salt modules via salt-run.
- .. code-block:: bash
- salt-run salt.cmd test.ping
- # call functions with arguments and keyword arguments
- salt-run salt.cmd test.arg 1 2 3 a=1
- - Added SSL support to Cassandra CQL returner.
- SSL can be enabled by setting ``ssl_options`` for the returner.
- Also added support for specifying ``protocol_version`` when establishing
- cluster connection.
- - The ``mode`` parameter in the :py:mod:`file.managed
- <salt.states.file.managed>` state, and the ``file_mode`` parameter in the
- :py:mod:`file.recurse <salt.states.file.recurse>` state, can both now be set
- to ``keep`` and the minion will keep the mode of the file from the Salt
- fileserver. This works only with files coming from sources prefixed with
- ``salt://``, or files local to the minion (i.e. those which are absolute
- paths, or are prefixed with ``file://``). For example:
- .. code-block:: yaml
- /etc/myapp/myapp.conf:
- file.managed:
- - source: salt://conf/myapp/myapp.conf
- - mode: keep
- /var/www/myapp:
- file.recurse:
- - source: salt://path/to/myapp
- - dir_mode: 755
- - file_mode: keep
- - The ``junos`` state module is now available. It has all the functions
- that are present in the ``junos`` execution module.
- - The ``junos`` state module is now available. It has all the functions
- that are present in the ``junos`` execution module.
- - The minion data cache is a pluggable data store now. It's configurable with
- :conf_master:`cache` option. Default is ``localfs``.
- - User names in :conf_master:`client_acl` support glob matching now.
- New Top File Merging Strategy for States
- ========================================
- A new strategy called ``merge_all`` has been added to provide a new way of
- merging top file matches when executing a :ref:`highstate <running-highstate>`.
- See the :conf_master:`top_file_merging_strategy` documentation for further
- information.
- In addition, the ``same`` merging strategy was not functioning as documented.
- This has now been corrected. While this is technically a bugfix, we decided to
- hold a change in top file merging until a feature release to minimize user
- impact.
- Improved Archive Extraction Support
- ===================================
- The :py:func:`archive.extracted <salt.states.archive.extracted>` state has been
- overhauled. Notable changes include the following:
- - When enforcing ownership (with the ``user`` and/or ``group`` arguments), the
- ``if_missing`` argument no longer has any connection to which path(s) have
- ownership enforced. Instead, the paths are determined using the either the
- newly-added :py:func:`archive.list <salt.modules.archive.list_>` function, or
- the newly-added ``enforce_ownership_on`` argument.
- - ``if_missing`` also is no longer required to skip extraction, as Salt is now
- able to tell which paths would be present if the archive were extracted. It
- should, in most cases, only be necessary in cases where a semaphore file is
- used to conditionally skip extraction of the archive.
- - Password-protected ZIP archives are now detected before extraction, and the
- state fails without attempting to extract the archive if no password was
- specified.
- - By default, a single top-level directory is enforced, to guard against
- 'tar-bombs'. This enforcement can be disabled by setting ``enforce_toplevel``
- to ``False``.
- - The ``tar_options`` and ``zip_options`` arguments have been deprecated in
- favor of a single ``options`` argument.
- - The ``archive_format`` argument is now optional. The ending of the ``source``
- argument is used to guess whether it is a tar, zip or rar file. If the
- ``archive_format`` cannot be guessed, then it will need to be specified, but
- in many cases it can now be omitted.
- - Ownership enforcement is now performed irrespective of whether or not the
- archive needed to be extracted. This means that the state can be re-run after
- the archive has been fully extracted to repair changes to ownership.
- A number of new arguments were also added. See the docs py:func:`docs for the
- archive.extracted state <salt.states.archive.extracted>` for more information.
- Additionally, the following changes have been made to the :mod:`archive
- <salt.modules.archive>` execution module:
- - A new function (:py:func:`archive.list <salt.modules.archive.list_>`) has
- been added. This function lists the files/directories in an archive file, and
- supports a ``verbose`` argument that gives a more detailed breakdown of which
- paths are files, which are directories, and which paths are at the top level
- of the archive.
- - A new function (:py:func:`archive.is_encrypted
- <salt.modules.archive.is_encrypted>`) has been added. This function will
- return ``True`` if the archive is a password-protected ZIP file, ``False`` if
- not. If the archive is not a ZIP file, an error will be raised.
- - :py:func:`archive.cmd_unzip <salt.modules.archive.cmd_unzip>` now supports
- passing a password, bringing it to feature parity with
- :py:func:`archive.unzip <salt.modules.archive.unzip>`. Note that this is
- still not considered to be secure, and :py:func:`archive.unzip
- <salt.modules.archive.unzip>` is recommended for dealing with
- password-protected ZIP archives.
- - The default value for the ``extract_perms`` argument to
- :py:func:`archive.unzip <salt.modules.archive.unzip>` has been changed to
- ``True``.
- Improved Checksum Handling in :py:func:`file.managed <salt.states.file.managed>`, :py:func:`archive.extracted <salt.states.archive.extracted>` States
- -----------------------------------------------------------------------------------------------------------------------------------------------------
- When the ``source_hash`` argument for these states refers to a file containing
- checksums, Salt now looks for checksums matching the name of the source URI, as
- well as the file being managed. Prior releases only looked for checksums
- matching the filename being managed. Additionally, a new argument
- (``source_hash_name``) has been added, which allows the user to disambiguate
- ambiguous matches when more than one matching checksum is found in the
- ``source_hash`` file.
- A more detailed explanation of this functionality can be found in the
- :py:func:`file.managed <salt.states.file.managed>` documentation, in the
- section for the new ``source_hash_name`` argument.
- .. note::
- This improved functionality is also available in the ``2016.3`` (Boron)
- release cycle, starting with the 2016.3.5 release.
- Config Changes
- ==============
- The following default config values were changed:
- - ``gitfs_ssl_verify``: Changed from ``False`` to ``True``
- - ``git_pillar_ssl_verify``: Changed from ``False`` to ``True``
- - ``winrepo_ssl_verify``: Changed from ``False`` to ``True``
- Grains Changes
- ==============
- - All core grains containing ``VMWare`` have been changed to ``VMware``, which
- is the `official capitalization <https://www.vmware.com>`_. Additionally,
- all references to ``VMWare`` in the documentation have been changed to
- ``VMware`` :issue:`30807`. Environments using versions of Salt before and
- after Salt 2016.11.0 should employ case-insensitive grain matching on these
- grains.
- .. code-block:: jinja
- {% set on_vmware = grains['virtual'].lower() == 'vmware' %}
- - On Windows the ``cpu_model`` grain has been changed to provide the actual cpu
- model name and not the cpu family.
- Old behavior:
- .. code-block:: bash
- root@master:~# salt 'testwin200' grains.item cpu_model
- testwin200:
- ----------
- cpu_model:
- Intel64 Family 6 Model 58 Stepping 9, GenuineIntel
- New behavior:
- .. code-block:: bash
- root@master:~# salt 'testwin200' grains.item cpu_model
- testwin200:
- ----------
- cpu_model:
- Intel(R) Core(TM) i7-3520M CPU @ 2.90GHz
- Beacons Changes
- ===============
- - The ``loadavg`` beacon now outputs averages as integers instead of strings.
- (Via :issue:`31124`.)
- Runner Changes
- ==============
- - Runners can now call out to :ref:`utility modules <writing-utility-modules>`
- via ``__utils__``.
- - ref:`Utility modules <writing-utility-modules>` (placed in
- ``salt://_utils/``) are now able to be synced to the master, making it easier
- to use them in custom runners. A :py:mod:`saltutil.sync_utils
- <salt.runners.saltutil.sync_utils>` function has been added to the
- :py:mod:`saltutil runner <salt.runners.saltutil>` to facilitate the syncing of
- utility modules to the master.
- Pillar Changes
- ==============
- - Thanks to the new :py:mod:`saltutil.sync_utils
- <salt.runners.saltutil.sync_utils>` runner, it is now easier to get
- ref:`utility modules <writing-utility-modules>` synced to the correct
- location on the Master so that they are available in execution modules called
- from Pillar SLS files.
- Junos Module Changes
- ====================
- - The following new functionalities were added to the junos module
- - facts - Displays the facts gathered during the connection.
- - shutdown - Shut down or reboot a device running Junos OS.
- - install_config - Modify the configuration of a Junos device.
- - install_os - Install Junos OS software package.
- - zeroize - Remove all configuration information on the Routing Engines and reset all key values on a device.
- - file_copy - Copy file from proxy to the Junos device.
- .. _release-2016-11-0-network-automation-napalm:
- Network Automation: NAPALM
- ==========================
- Beginning with 2016.11.0, network automation is included by default in the core
- of Salt. It is based on a the `NAPALM <https://github.com/napalm-automation/napalm>`_
- library and provides facilities to manage the configuration and retrieve data
- from network devices running widely used operating systems such: JunOS, IOS-XR,
- eOS, IOS, NX-OS etc.
- - see `the complete list of supported devices
- <http://napalm.readthedocs.io/en/latest/support/index.html#supported-devices>`_.
- The connection is established via the :mod:`NAPALM proxy <salt.proxy.napalm>`.
- In the current release, the following modules were included:
- - :mod:`NAPALM grains <salt.grains.napalm>` - Select network devices based on their characteristics
- - :mod:`NET execution module <salt.modules.napalm_network>` - Networking basic features
- - :mod:`NTP execution module <salt.modules.napalm_ntp>`
- - :mod:`BGP execution module <salt.modules.napalm_bgp>`
- - :mod:`Routes execution module <salt.modules.napalm_route>`
- - :mod:`SNMP execution module <salt.modules.napalm_snmp>`
- - :mod:`Users execution module <salt.modules.napalm_users>`
- - :mod:`Probes execution module <salt.modules.napalm_probes>`
- - :mod:`NTP peers management state <salt.states.netntp>`
- - :mod:`SNMP configuration management state <salt.states.netsnmp>`
- - :mod:`Users management state <salt.states.netusers>`
- Cisco NXOS Proxy Minion
- =======================
- Beginning with 2016.11.0, there is a proxy minion that can be used to configure
- nxos cisco devices over ssh.
- - :mod:`Proxy Minion <salt.proxy.nxos>`
- - :mod:`Execution Module <salt.modules.nxos>`
- - :mod:`State Module <salt.states.nxos>`
- Cisco Network Services Orchestrator Proxy Minion
- ================================================
- Beginning with 2016.11.0, there is a proxy minion to use the Cisco Network
- Services Orchestrator as a proxy minion.
- - :mod:`Proxy Minion <salt.proxy.cisconso>`
- - :mod:`Execution Module <salt.modules.cisconso>`
- - :mod:`State Module <salt.states.cisconso>`
- Junos Module Changes
- ====================
- - The following new functionalities were added to the junos module
- - facts - Displays the facts gathered during the connection.
- - shutdown - Shut down or reboot a device running Junos OS.
- - install_config - Modify the configuration of a Junos device.
- - install_os - Install Junos OS software package.
- - zeroize - Remove all configuration information on the Routing Engines and reset all key values on a device.
- - file_copy - Copy file from proxy to the Junos device.
- Returner Changes
- ================
- - Any returner which implements a `save_load` function is now required to
- accept a `minions` keyword argument. All returners which ship with Salt
- have been modified to do so.
- Renderer Changes
- ================
- Added the ability to restrict allowed renderers. Two new config parameters,
- :conf_master:`renderer_whitelist` and :conf_master:`renderer_blacklist` are
- introduced for this purpose.
- eAuth Changes
- =============
- - External auth modules' ``auth`` method can return an ACL list for the given
- username instead of ``True``. This list should be in the same format as
- described in the :ref:`eAuth documentation <acl-eauth>`. It will be
- used for the user instead of one set in master config.
- Example of the ``auth`` method return that allows a user to execute functions
- in the ``test`` and ``network`` modules on the minions that match the ``web*``
- target and allow access to ``wheel`` and ``runner`` modules:
- .. code-block:: python
- [{'web*': ['test.*',
- 'network.*']},
- '@wheel',
- '@runner']
- - External auth is supported by :ref:`salt-run <salt-run>` and
- :ref:`salt-key <salt-key>` now. Note that master must be started to
- use them with eAuth.
- External Module Packaging
- =========================
- Modules may now be packaged via entry-points in setuptools. See
- :ref:`external module packaging <tutorial-packaging-modules>` tutorial
- for more information.
- Functionality Changes
- =====================
- - The ``onfail`` requisite now uses OR logic instead of AND logic.
- :issue:`22370`
- - The consul external pillar now strips leading and trailing whitespace.
- :issue:`31165`
- - The win_system.py state is now case sensitive for computer names. Previously
- computer names set with a state were converted to all caps. If you have a
- state setting computer names with lower case letters in the name that has
- been applied, the computer name will be changed again to apply the case
- sensitive name.
- - The ``mac_user.list_groups`` function in the ``mac_user`` execution module
- now lists all groups for the specified user, including groups beginning with
- an underscore. In previous releases, groups beginning with an underscore were
- excluded from the list of groups.
- - The ``junos.call_rpc`` function in the ``junos`` execution module can now be used
- to call any valid rpc. Earlier it used to call only "get_software_information".
- - A new option for minions called ``master_tries`` has been added. This
- specifies the number of times a minion should attempt to contact a master to
- attempt a connection. This allows better handling of occasional master
- downtime in a multi-master topology.
- - The default hash_type is now sha256 instead of md5. You will need to make sure both
- your master and minion share the same hash_type.
- - Nodegroups consisting of a simple list of minion IDs can now also be declared
- as a yaml list. The below two examples are equivalent:
- .. code-block:: yaml
- # Traditional way
- nodegroups:
- - group1: L@host1,host2,host3
- # New way (optional)
- nodegroups:
- - group1:
- - host1
- - host2
- - host3
- New Azure ARM Cloud Driver
- ==========================
- A new cloud driver has been added for Azure ARM, aka, the Azure Resource
- Manager. The older Azure driver is still required to work with the older Azure
- API. This new driver works with the newer ARM API, which is managed via the
- newer Azure Portal website.
- New Modules
- ===========
- Beacons
- -------
- - :mod:`salt.beacons.avahi_announce <salt.beacons.avahi_announce>`
- - :mod:`salt.beacons.bonjour_announce <salt.beacons.bonjour_announce>`
- - :mod:`salt.beacons.haproxy <salt.beacons.haproxy>`
- - :mod:`salt.beacons.status <salt.beacons.status>`
- Clouds
- ------
- - :mod:`salt.cloud.clouds.azurearm <salt.cloud.clouds.azurearm>`
- Engines
- -------
- - :mod:`salt.engines.hipchat <salt.engines.hipchat>`
- - :mod:`salt.engines.http_logstash <salt.engines.http_logstash>`
- Modules
- -------
- - :mod:`salt.modules.boto_cloudwatch_event <salt.modules.boto_cloudwatch_event>`
- - :mod:`salt.modules.celery <salt.modules.celery>`
- - :mod:`salt.modules.ceph <salt.modules.ceph>`
- - :mod:`salt.modules.influx08 <salt.modules.influx08>`
- - :mod:`salt.modules.inspectlib.entities <salt.modules.inspectlib.entities>`
- - :mod:`salt.modules.inspectlib.fsdb <salt.modules.inspectlib.fsdb>`
- - :mod:`salt.modules.inspectlib.kiwiproc <salt.modules.inspectlib.kiwiproc>`
- - :mod:`salt.modules.inspector <salt.modules.inspector>`
- - :mod:`salt.modules.libcloud_dns <salt.modules.libcloud_dns>`
- - :mod:`salt.modules.openstack_mng <salt.modules.openstack_mng>`
- - :mod:`salt.modules.servicenow <salt.modules.servicenow>`
- - :mod:`salt.modules.testinframod <salt.modules.testinframod>`
- - :mod:`salt.modules.win_lgpo <salt.modules.win_lgpo>`
- - :mod:`salt.modules.win_pki <salt.modules.win_pki>`
- - :mod:`salt.modules.win_psget <salt.modules.win_psget>`
- - :mod:`salt.modules.win_snmp <salt.modules.win_snmp>`
- - :mod:`salt.modules.xbpspkg <salt.modules.xbpspkg>`
- Outputters
- ----------
- - :mod:`salt.output.pony <salt.output.pony>`
- Pillar
- ------
- - :mod:`salt.pillar.csvpillar <salt.pillar.csvpillar>`
- - :mod:`salt.pillar.http_json <salt.pillar.http_json>`
- - :mod:`salt.pillar.makostack <salt.pillar.makostack>`
- Returners
- ---------
- - :mod:`salt.returners.zabbix_return <salt.returners.zabbix_return>`
- Runners
- -------
- - :mod:`salt.runners.auth <salt.runners.auth>`
- - :mod:`salt.runners.event <salt.runners.event>`
- - :mod:`salt.runners.smartos_vmadm <salt.runners.smartos_vmadm>`
- - :mod:`salt.runners.vistara <salt.runners.vistara>`
- SDB
- ---
- - :mod:`salt.sdb.env <salt.sdb.env>`
- States
- ------
- - :mod:`salt.states.boto_cloudwatch_event <salt.states.boto_cloudwatch_event>`
- - :mod:`salt.states.csf <salt.states.csf>`
- - :mod:`salt.states.ethtool <salt.states.ethtool>`
- - :mod:`salt.states.influxdb08_database <salt.states.influxdb08_database>`
- - :mod:`salt.states.influxdb08_user <salt.states.influxdb08_user>`
- - :mod:`salt.states.libcloud_dns <salt.states.libcloud_dns>`
- - :mod:`salt.states.snapper <salt.states.snapper>`
- - :mod:`salt.states.testinframod <salt.states.testinframod>`
- - :mod:`salt.states.win_lgpo <salt.states.win_lgpo>`
- - :mod:`salt.states.win_pki <salt.states.win_pki>`
- - :mod:`salt.states.win_snmp <salt.states.win_snmp>`
- Thorium
- -------
- - :mod:`salt.thorium.calc <salt.thorium.calc>`
- - :mod:`salt.thorium.key <salt.thorium.key>`
- - :mod:`salt.thorium.runner <salt.thorium.runner>`
- - :mod:`salt.thorium.status <salt.thorium.status>`
- - :mod:`salt.thorium.wheel <salt.thorium.wheel>`
- Deprecations
- ============
- General Deprecations
- --------------------
- - ``env`` to ``saltenv``
- All occurrences of ``env`` and some occurrences of ``__env__`` marked for
- deprecation in Salt 2016.11.0 have been removed. The new way to use the salt
- environment setting is with a variable called ``saltenv``:
- .. code-block:: python
- def fcn(msg='', env='base', refresh=True, saltenv='base', **kwargs):
- has been changed to
- .. code-block:: python
- def fcn(msg='', refresh=True, saltenv='base', **kwargs):
- - If ``env`` (or ``__env__``) is supplied as a keyword argument to a function
- that also accepts arbitrary keyword arguments, then a new warning informs the
- user that ``env`` is no longer used if it is found. This new warning will be
- removed in Salt 2017.7.0.
- .. code-block:: python
- def fcn(msg='', refresh=True, saltenv='base', **kwargs):
- .. code-block:: python
- # will result in a warning log message
- fcn(msg='add more salt', env='prod', refresh=False)
- - If ``env`` (or ``__env__``) is supplied as a keyword argument to a function
- that does not accept arbitrary keyword arguments, then python will issue an
- error.
- .. code-block:: python
- def fcn(msg='', refresh=True, saltenv='base'):
- .. code-block:: python
- # will result in a python TypeError
- fcn(msg='add more salt', env='prod', refresh=False)
- - If ``env`` (or ``__env__``) is supplied as a positional argument to a
- function, then undefined behavior will occur, as the removal of ``env`` and
- ``__env__`` from the function's argument list changes the function's
- signature.
- .. code-block:: python
- def fcn(msg='', refresh=True, saltenv='base'):
- .. code-block:: python
- # will result in refresh evaluating to True and saltenv likely not being a string at all
- fcn('add more salt', 'prod', False)
- - Deprecations in ``minion.py``:
- - The ``salt.minion.parse_args_and_kwargs`` function has been removed. Please
- use the ``salt.minion.load_args_and_kwargs`` function instead.
- Cloud Deprecations
- ------------------
- - The ``vsphere`` cloud driver has been removed. Please use the ``vmware`` cloud driver
- instead.
- - The ``private_ip`` option in the ``linode`` cloud driver is deprecated and has been
- removed. Use the ``assign_private_ip`` option instead.
- - The ``create_dns_record`` and ``delete_dns_record`` functions are deprecated and have
- been removed from the ``digital_ocean`` driver. Use the ``post_dns_record`` function
- instead.
- Execution Module Deprecations
- -----------------------------
- - The ``blockdev`` execution module had four functions removed:
- - dump
- - tune
- - resize2fs
- - wipe
- The ``disk`` module should be used instead with the same function names.
- - The ``boto_vpc`` execution module had two functions removed,
- ``boto_vpc.associate_new_dhcp_options_to_vpc`` and
- ``boto_vpc.associate_new_network_acl_to_subnet`` in favor of more concise function
- names, ``boto_vpc.create_dhcp_options`` and ``boto_vpc.create_network_acl``, respectively.
- - The ``data`` execution module had ``getval`` and ``getvals`` functions removed
- in favor of one function, ``get``, which combines the functionality of the
- removed functions.
- - File module deprecations:
- - The ``contains_regex_multiline`` function was removed. Use ``file.search`` instead.
- - Additional command line options for ``file.grep`` should be passed one at a time.
- Please do not pass more than one in a single argument.
- - The ``lxc`` execution module has the following changes:
- - The ``run_cmd`` function was removed. Use ``lxc.run`` instead.
- - The ``nic`` argument was removed from the ``lxc.init`` function. Use ``network_profile``
- instead.
- - The ``clone`` argument was removed from the ``lxc.init`` function. Use ``clone_from``
- instead.
- - passwords passed to the ``lxc.init`` function will be assumed to be hashed, unless
- ``password_encrypted=False``.
- - The ``restart`` argument for ``lxc.start`` was removed. Use ``lxc.restart`` instead.
- - The old style of defining lxc containers has been removed. Please use keys under which
- LXC profiles should be configured such as ``lxc.container_profile.profile_name``.
- - The ``env`` and ``activate`` keyword arguments have been removed from the ``install``
- function in the ``pip`` execution module. The use of ``bin_env`` replaces both of these
- options.
- - ``reg`` execution module
- Functions in the ``reg`` execution module had misleading and confusing names
- for dealing with the Windows registry. They failed to clearly differentiate
- between hives, keys, and name/value pairs. Keys were treated like value names.
- There was no way to delete a key.
- New functions were added in 2015.5 to properly work with the registry. They
- also made it possible to edit key default values as well as delete an entire
- key tree recursively. With the new functions in place, the following functions
- have been deprecated:
- - read_key
- - set_key
- - create_key
- - delete_key
- Use the following functions instead:
- - for ``read_key`` use ``read_value``
- - for ``set_key`` use ``set_value``
- - for ``create_key`` use ``set_value`` with no ``vname`` and no ``vdata``
- - for ``delete_key`` use ``delete_key_recursive``. To delete a value, use
- ``delete_value``.
- - The ``hash_hostname`` option was removed from the ``salt.modules.ssh`` execution
- module. The ``hash_known_hosts`` option should be used instead.
- - The ``human_readable`` option was removed from the ``uptime`` function in the
- ``status`` execution module. The function was also updated in 2015.8.9 to return
- a more complete offering of uptime information, formatted as an easy-to-read
- dictionary. This updated function replaces the need for the ``human_readable``
- option.
- - The ``persist`` kwarg was removed from the ``win_useradd`` execution module. This
- option is no longer supported for Windows. ``persist`` is only supported as part
- of user management in UNIX/Linux.
- - The ``zpool_list`` function in the ``zpool`` execution module was removed. Use ``list``
- instead.
- Outputter Module Deprecations
- -----------------------------
- - The ``compact`` outputter has been removed. Set ``state_verbose`` to ``False`` instead.
- Runner Module Deprecations
- --------------------------
- - The ``grains.cache`` runner no longer accepts ``outputter`` or ``minion`` as keyword arguments.
- Users will need to specify an outputter using the ``--out`` option. ``tgt`` is
- replacing the ``minion`` kwarg.
- - The ``fileserver`` runner no longer accepts the ``outputter`` keyword argument. Users will
- need to specify an outputter using the ``--out`` option.
- - The ``jobs`` runner no longer accepts the ``outputter`` keyword argument. Users will need to
- specify an outputter using the ``--out`` option.
- - ``virt`` runner module:
- - The ``hyper`` kwarg was removed from the ``init``, ``list``, and ``query`` functions.
- Use the ``host`` option instead.
- - The ``next_hyper`` function was removed. Use the ``next_host`` function instead.
- - The ``hyper_info`` function was removed. Use the ``host_info`` function instead.
- State Module Deprecations
- -------------------------
- - The ``env`` and ``activate`` keyword arguments were removed from the ``installed``
- function in the ``pip`` state module. The use of ``bin_env`` replaces both of these
- options.
- - ``reg`` state module
- The ``reg`` state module was modified to work with the new functions in the
- execution module. Some logic was left in the ``reg.present`` and the
- ``reg.absent`` functions to handle existing state files that used the final
- key in the name as the value name. That logic has been removed so you now must
- specify value name (``vname``) and, if needed, value data (``vdata``).
- For example, a state file that adds the version value/data pair to the
- Software\\Salt key in the HKEY_LOCAL_MACHINE hive used to look like this:
- .. code-block:: yaml
- HKEY_LOCAL_MACHINE\\Software\\Salt\\version:
- reg.present:
- - value: 2016.3.1
- Now it should look like this:
- .. code-block:: yaml
- HKEY_LOCAL_MACHINE\\Software\\Salt
- reg.present:
- - vname: version
- - vdata: 2016.3.1
- A state file for removing the same value added above would have looked like
- this:
- .. code-block:: yaml
- HKEY_LOCAL_MACHINE\\Software\\Salt\\version:
- reg.absent:
- Now it should look like this:
- .. code-block:: yaml
- HKEY_LOCAL_MACHINE\\Software\\Salt
- reg.absent:
- - vname: version
- This new structure is important as it allows salt to deal with key default
- values which was not possible before. If vname is not passed, salt will work
- with the default value for that hive\key.
- Additionally, since you could only delete a value from a the state module, a
- new function (``key_absent``) has been added to allow you to delete a registry
- key and all subkeys and name/value pairs recursively. It uses the new
- ``delete_key_recursive`` function.
- For additional information see the documentation for the ``reg`` execution and
- state modules.
- - ``lxc`` state module: The following functions were removed from the ``lxc`` state
- module:
- - ``created``: replaced by the ``present`` state.
- - ``started``: replaced by the ``running`` state.
- - ``cloned``: replaced by the ``present`` state. Use the ``clone_from`` argument
- to set the name of the clone source.
- - The ``hash_hostname`` option was removed from the ``salt.states.ssh_known_hosts``
- state. The ``hash_known_hosts`` option should be used instead.
- - The ``always`` kwarg used in the ``built`` function of the ``pkgbuild`` state module
- was removed. Use ``force`` instead.
- Utils Module Deprecations
- -------------------------
- - The use of ``jid_dir`` and ``jid_load`` were removed from the
- ``salt.utils.jid``. ``jid_dir`` functionality for job_cache management was moved to
- the ``local_cache`` returner. ``jid_load`` data is now retrieved from the
- ``master_job_cache``.
- - ``ip_in_subnet`` function in ``salt.utils.network.py`` has been removed. Use the
- ``in_subnet`` function instead.
- - The ``iam`` utils module had two functions removed: ``salt.utils.iam.get_iam_region``
- and ``salt.utils.iam.get_iam_metadata`` in favor of the aws utils functions
- ``salt.utils.aws.get_region_from_metadata`` and ``salt.utils.aws.creds``, respectively.
|