summaryrefslogtreecommitdiff
path: root/changelogs/changelog.yaml
diff options
context:
space:
mode:
authorLee Garrett <lgarrett@rocketjump.eu>2021-11-17 20:15:37 +0100
committerLee Garrett <lgarrett@rocketjump.eu>2021-11-17 20:15:37 +0100
commitb1739f3e93dadd7d8fa794644ceedc24bddc8388 (patch)
tree193d287510fd44d67857e2d6b6bfcbb2b495c60a /changelogs/changelog.yaml
parent13e2c2e94d3559b85a7d813d98e9835b891b0a9f (diff)
downloaddebian-ansible-core-b1739f3e93dadd7d8fa794644ceedc24bddc8388.zip
New upstream version 2.12.0
Diffstat (limited to 'changelogs/changelog.yaml')
-rw-r--r--changelogs/changelog.yaml2913
1 files changed, 976 insertions, 1937 deletions
diff --git a/changelogs/changelog.yaml b/changelogs/changelog.yaml
index 4d0bd4bf..7e14bc45 100644
--- a/changelogs/changelog.yaml
+++ b/changelogs/changelog.yaml
@@ -1,2046 +1,1085 @@
-ancestor: 2.10.0
+ancestor: 2.11.0
releases:
- 2.11.0:
+ 2.12.0:
changes:
- bugfixes:
- - ansible-test - ensure the correct unit test target is given when the ``__init__.py``
- file is modified inside the connection plugins directory
- major_changes:
- - ansible-test - Tests run with the ``centos6`` and ``default`` test containers
- now use a PyPI proxy container to access PyPI when Python 2.6 is used. This
- allows tests running under Python 2.6 to continue functioning even though
- PyPI is discontinuing support for non-SNI capable clients.
- minor_changes:
- - ansible-test - Update distribution test containers from version 2.0.1 to 2.0.2.
- - ansible-test - Update the Ansible Core and Ansible Collection default test
- containers to 3.2.0 and 3.2.2 respectively.
- release_summary: '| Release Date: 2021-04-26
+ release_summary: '| Release Date: 2021-11-05
| `Porting Guide <https://docs.ansible.com/ansible/devel/porting_guides.html>`__
'
- codename: Hey Hey, What Can I Do
+ codename: Dazed and Confused
fragments:
- - ansible-test-connection-units-init.yml
- - ansible-test-default-containers-3.2.yml
- - ansible-test-distro-containers-2.0.2.yml
- - ansible-test-pypi-test-container.yml
- - v2.11.0_summary.yaml
- release_date: '2021-04-26'
- 2.11.0b1:
+ - v2.12.0_summary.yaml
+ release_date: '2021-11-05'
+ 2.12.0b1:
changes:
breaking_changes:
- - Made SCM collections be reinstalled regardless of ``--force`` being present.
- - NetBSD virtualization facts (specifically ``ansible_virtualization_type``)
- now returns a more accurate value by checking the value of the ``machdep.hypervisor``
- ``sysctl`` key. This change is breaking because in some cases previously,
- we would erroneously report ``xen`` even when the target is not running on
- Xen. This prevents that behavior in most cases. (https://github.com/ansible/ansible/issues/69352)
- - "Replaced the in-tree dependency resolver with an external implementation
- that pip >= 20.3 uses now by default \u2014 ``resolvelib``. (https://github.com/ansible/ansible/issues/71784)"
- - The ``meta`` module now supports tags for user-defined tasks. Internal ``meta``
- tasks continue to always run. (https://github.com/ansible/ansible/issues/64558)
- - ansible-galaxy login command has been removed (see https://github.com/ansible/ansible/issues/71560)
- bugfixes:
- - ANSIBLE_COLLECTIONS_PATHS - remove deprecation so that users of Ansible 2.9
- and 2.10+ can use the same var when specifying a collection path without a
- warning.
- - Added unsafe_writes test.
- - Address compat with rpmfluff-0.6 for integration tests
- - 'Address the deprecation of the use of stdlib distutils in packaging. It''s
- a short-term hotfix for the problem (https://github.com/ansible/ansible/issues/70456,
- https://github.com/pypa/setuptools/issues/2230, https://github.com/pypa/setuptools/commit/bd110264)
-
- '
- - Adjust various hard-coded action names to also include their ``ansible.builtin.``
- and ``ansible.legacy.`` prefixed version (https://github.com/ansible/ansible/issues/71817,
- https://github.com/ansible/ansible/issues/71818, https://github.com/ansible/ansible/pull/71824).
- - Allow TypeErrors on Undefined variables in filters to be handled or deferred
- when processing for loops.
- - Allow `~` to be present in file names in galaxy roles (https://github.com/ansible/ansible/issues/72966)
- - Always mention the name of the deprecated or tombstoned plugin in routing
- deprecation/tombstone messages (https://github.com/ansible/ansible/pull/73059).
- - Ansible output now uses stdout to determine column width instead of stdin
- - AnsibleModule - added arg ``ignore_invalid_cwd`` to ``AnsibleModule.run_command()``,
- to control its behaviour when ``cwd`` is invalid. (https://github.com/ansible/ansible/pull/72390)
- - Apply ``_wrap_native_text`` only for builtin filters specified in STRING_TYPE_FILTERS.
- - Be smarter about collection paths ending with ansible_collections, emulating
- a-galaxy behaviour. Issue 72628
- - CLI - Restore git information in version output when running from source
- - Collection callbacks were ignoring options and rules for stdout and adhoc
- cases.
- - Collections - Ensure ``action_loader.get`` is called with ``collection_list``
- to properly find collections when ``collections:`` search is specified (https://github.com/ansible/ansible/issues/72170)
- - Command module now returns stdout & stderr if executable is missing or an
- unknown error occurs
- - ConfigManager - Normalize ConfigParser between Python2 and Python3 to for
- handling comments (https://github.com/ansible/ansible/issues/73709)
- - Continue execution when 'flatten' filter when it hits a None/null value as
- part of the list.
- - Correct the inventory source error parse handling, specifically make the config
- INVENTORY_ANY_UNPARSED_IS_FAILED work as expected.
- - Display - Use wcswidth to calculate printable width of a text string (https://github.com/ansible/ansible/issues/63105)
- - Enabled unsafe_writes for get_url which was ignoring the paramter.
- - Ensure Ansible's unique filter preserves order (https://github.com/ansible/ansible/issues/63417)
- - Ensure if a traceback halts ``strategy.run`` that we still attempt to clean
- up (https://github.com/ansible/ansible/issues/23958)
- - Ensure password passed in by -k is used on delegated hosts that do not have
- ansible_password set
- - Ensure the correct options are used when ssh executables are used that don't
- match ssh executable names.
- - Facts collection - get serial number of NVMe device without sg_inq (https://github.com/ansible/ansible/issues/66663).
- - 'Fix --list-tasks format `role_name : task_name` when task name contains the
- role name. (https://github.com/ansible/ansible/issues/72505)'
- - Fix ``RecursionError`` when templating large vars structures (https://github.com/ansible/ansible/issues/71920)
- - 'Fix ``delegate_facts: true`` when ``ansible_python_interpreter`` is not set.
- (https://github.com/ansible/ansible/issues/70168)'
- - Fix an exit code for a non-failing playbook (https://github.com/ansible/ansible/issues/71306)
- - Fix ansible-galaxy collection list to show collections in site-packages (https://github.com/ansible/ansible/issues/70147)
- - Fix bytestring vs string comparison in module_utils.basic.is_special_selinux_path()
- so that special-cased filesystems which don't support SELinux context attributes
- still allow files to be manipulated on them. (https://github.com/ansible/ansible/issues/70244)
- - Fix execution of the meta tasks 'clear_facts', 'clear_host_errors', 'end_play',
- 'end_host', and 'reset_connection' when the CLI flag '--flush-cache' is provided.
- - Fix fileglob bug where it could return different results for different order
- of parameters (https://github.com/ansible/ansible/issues/72873).
- - Fix incorrect msg in the results dict in loops
- - Fix incorrect re-run of roles with tags (https://github.com/ansible/ansible/issues/69848)
- - Fix incorrect variable scoping when using ``import with context`` in Jinja2
- templates. (https://github.com/ansible/ansible/issues/72615)
- - Fix jsonfile cache plugin option '_uri' to be a type path instead of a string.
- (https://github.com/ansible/ansible/issues/38002)
- - 'Fix notifying handlers via `role_name : handler_name` when handler name contains
- the role name. (https://github.com/ansible/ansible/issues/70582)'
- - Fix parsing of values when using empty string as a key (https://github.com/ansible/ansible/issues/57132)
- - Fix statistics reporting when rescue block contains another block (issue https://github.com/ansible/ansible/issues/61253).
- - Fix to previous deprecation change (#70504) which caused command warning deprecation
- to show in all cases, even when not specified by the user.
- - Fixed TypeError instancemethod expecting at least 2 arguments for apt_repository(issue
- https://github.com/ansible/ansible/issues/69308, PR https://github.com/ansible/ansible/pull/69463)
- - Fixed issue when `netstat` is either missing or doesn't have execution permissions
- leading to incorrect command being executed.
- - Fixes ``ansible-galaxy role info`` to support multiple roles on the command
- line (https://github.com/ansible/ansible/pull/70148)
- - Fixes ansible-test traceback when plugin author is not a string or a list
- of strings (https://github.com/ansible/ansible/pull/70507)
- - Handle more varnames that can create conflicts, expand a function in general,
- handle jinja2 globals in particular (https://github.com/ansible/ansible/issues/41955).
- - INTERPRETER_PYTHON_DISTRO_MAP - prefer ``/usr/libexec/platform-python`` on
- ``oraclelinux 8`` when other pythons are present.
- - Improve Ansible config deprecations to show the source of the deprecation
- (ansible-core). Also remove space before a comma in config deprecations (https://github.com/ansible/ansible/pull/72697).
- - Improved/fixed regular expressions in ``validate-modules/validate_modules/schema.py``
- and ``utils/collection_loader/_collection_finder.py`` (https://github.com/ansible/ansible/pull/73577).
- - Includes - Explicitly get the include task, and not assume it is the parent
- (https://github.com/ansible/ansible/issues/65710)
- - InventoryManager - Fix unhandled exception when given limit file was actually
- a directory.
- - InventoryManager - Fix unhandled exception when inventory directory was empty
- or contained empty subdirectories (https://github.com/ansible/ansible/issues/73658).
- - JSON Encoder - Ensure we treat single vault encrypted values as strings (https://github.com/ansible/ansible/issues/70784)
- - Lookup user by UID in password database if login name is not found (https://github.com/ansible/ansible/issues/17029)
- - Pass expression in angle-bracket notation as filename argument to a ``compile()``
- built-in function, so that Python debuggers do not try to parse it as filename.
- - Pass the connection's timeout to connection plugins instead of the task's
- timeout.
- - Provide more information in AnsibleUndefinedVariable (https://github.com/ansible/ansible/issues/55152)
- - Python module_utils finder - refactor logic to eliminate many corner cases,
- remove recursion, fix base module_utils redirections
- - Remove an embedded function from RoleMixin and add tests for it (https://github.com/ansible/ansible/pull/72754).
- - Remove the warning displayed when validating the arg spec of a role with dependencies
- and add it to the documentation.
- - Restore the ability for changed_when/failed_when to function with group_by
- (#70844).
- - Restored unsafe_writes functionality which was being skipped.
- - Restructured pipelining settings to be at the connection plugins leaving base
- config as global and for backwards compatiblity.
- - SSH plugin - Improve error message when ssh client is not found on the host
- - Skip invalid collection names when listing in ansible-doc instead of throwing
- exception. Issue#72257
- - Skip literal_eval for string filters results in native jinja. (https://github.com/ansible/ansible/issues/70831)
- - Stop adding the connection variables to the output results
- - Suppress warning when user directory used in --playbook-dir option with ansible-inventory
- command (https://github.com/ansible/ansible/issues/65262).
- - TOML inventory - Ensure we register dump functions for ``AnsibleUnsafe`` to
- support dumping unsafe values. Note that the TOML format has no functionality
- to mark that the data is unsafe for re-consumption. (https://github.com/ansible/ansible/issues/71307)
- - Terminal plugins - add "\e[m" to the list of ANSI sequences stripped from
- device output
- - The ``docker`` and ``k8s`` action groups / module default groups now also
- support the moved modules in `community.docker <https://galaxy.ansible.com/community/docker>`_,
- `community.kubevirt <https://github.com/ansible-collections/community.kubevirt>`_,
- `community.okd <https://galaxy.ansible.com/community/okd>`_, and `kubernetes.core
- <https://galaxy.ansible.com/kubernetes/core>`_ (https://github.com/ansible/ansible/pull/72428).
- - The ``flush()`` method of ``CachePluginAdjudicator`` now calls the plugin's
- ``flush()`` method instead of iterating over the keys that the adjudicator
- knows about and deleting those from the cache. (https://github.com/ansible/ansible/issues/68770)
- - The `ansible_become` value was not being treated as a boolean value when set
- in an INI format inventory file (fixes bug https://github.com/ansible/ansible/issues/70476).
- - The machine-readable changelog ``changelogs/changelog.yaml`` is now contained
- in the release.
- - Updated docs and added warning on max_fail_percentage and free strategy usage.
- fixes issue 16666.
- - VariableManager - Add the 'vars' key before getting delegated variables (https://github.com/ansible/ansible/issues/71092).
- - Vault - Allow single vault encrypted values to be used directly as module
- parameters. (https://github.com/ansible/ansible/issues/68275)
- - account for bug in Python 2.6 that occurs during interpreter shutdown to avoid
- stack trace
- - action plugins - change all action/module delegations to use FQ names while
- allowing overrides (https://github.com/ansible/ansible/issues/69788)
- - add AlmaLinux to fact gathering (https://github.com/ansible/ansible/pull/73458)
- - add constraints file for ``ansible_runner`` test since an update to ``psutil``
- is now causing test failures
- - add magic/connection vars updates from delegated host info.
- - add support for alpine linux 'apk' package manager in package_facts
- - allow become method 'su' to work on 'local' connection by allocating a fake
- tty.
- - ansible-console - Ctrl+C (in a task) abort current task, and put you back
- on prompt (this behavior doesn't change) (ditto)
- - ansible-console - Ctrl+C (on prompt) used to exit the shell, unlike most shells,
- it should just reset the current line (ie. abort it and spawn a new prompt)
- (https://github.com/ansible/ansible/issues/68529)
- - ansible-console - Ctrl+D (on prompt) now exit the shell, this is the expected
- behavior in a shell (cf bash, sh, zsh, ipython, ...) (ditto)
- - ansible-console - add more documentation, specifically on various commands[1]
- (https://github.com/ansible/ansible/issues/72195)
- - ansible-console - fixes few strings' typos
- - ansible-console - remove useless and poorly formatted comment section (replaced
- with [1])
- - ansible-doc - account for an empty ``meta/main.yml`` file when displaying
- role information (https://github.com/ansible/ansible/pull/73590)
- - ansible-doc - collection name for plugin top-level deprecation was not inserted
- when deprecating by version (https://github.com/ansible/ansible/pull/70344).
- - ansible-doc - improve error message in text formatter when ``description``
- is missing for a (sub-)option or a return value or its ``contains`` (https://github.com/ansible/ansible/pull/70046).
- - ansible-doc - improve man page formatting to avoid problems when YAML anchors
- are used (https://github.com/ansible/ansible/pull/70045).
- - ansible-doc - include the collection name in the text output (https://github.com/ansible/ansible/pull/70401).
- - ansible-doc - plugin option deprecations now also get ``collection_name``
- added (https://github.com/ansible/ansible/pull/71735).
- - ansible-doc - properly show plugin name when ``name:`` is used instead of
- ``<plugin_type>:`` (https://github.com/ansible/ansible/pull/71966).
- - ansible-galaxy - Cache the responses for available collection versions after
- getting all pages. (https://github.com/ansible/ansible/issues/73071)
- - ansible-galaxy - Instead of assuming the first defined server is galaxy, filter
- based on the servers that support the v1 API, and return the first of those
- (https://github.com/ansible/ansible/issues/65440)
- - ansible-galaxy - Use ``sys.exit`` instead of ``exit`` when reporting an error
- for the removed login command.
- - ansible-galaxy - correct ``collections-path`` command line argument (https://github.com/ansible/ansible/issues/73127)
- - ansible-galaxy - fixed galaxy role init command (https://github.com/ansible/ansible/issues/71977).
- - ansible-galaxy collection download - fix downloading tar.gz files and collections
- in git repositories (https://github.com/ansible/ansible/issues/70429)
- - ansible-galaxy collection install - fix fallback mechanism if the AH server
- did not have the collection requested - https://github.com/ansible/ansible/issues/70940
- - ansible-galaxy download - fix bug when downloading a collection in a SCM subdirectory
- - ansible-test - Add ``pytest < 6.0.0`` constraint for managed installations
- on Python 3.x to avoid issues with relative imports.
- - ansible-test - Always connect additional Docker containers to the network
- used by the current container (if any).
- - ansible-test - Always map ``/var/run/docker.sock`` into test containers created
- by the ``--docker`` option if the docker host is not ``localhost``.
- - ansible-test - Attempt to detect the Docker hostname instead of assuming ``localhost``.
- - ansible-test - Avoid using ``/tmp`` to resolve occasional failures starting
- tests with the ``--docker`` option.
- - ansible-test - Change classification using ``--changed`` now consistently
- handles common configuration files for supported CI providers.
- - ansible-test - Change detection now properly resolves relative imports instead
- of treating them as absolute imports.
- - ansible-test - Correctly detect changes in a GitHub pull request when running
- on Azure Pipelines.
- - ansible-test - Correctly detect running in a Docker container on Azure Pipelines.
- - ansible-test - Do not try to validate PowerShell modules ``setup.ps1``, ``slurp.ps1``,
- and ``async_status.ps1``
- - ansible-test - Prefer container IP at ``.NetworkSettings.Networks.{NetworkName}.IPAddress``
- over ``.NetworkSettings.IPAddress``.
- - ansible-test - Running tests using an installed version of ``ansible-test``
- against one Python version from another no longer fails due to a missing ``egg-info``
- directory. This could occur when testing plugins which import ``pkg_resources``.
- - ansible-test - Running tests using an installed version of ``ansible-test``
- no longer generates an error attempting to create an ``egg-info`` directory
- when an existing one is not found in the expected location. This could occur
- if the existing ``egg-info`` directory included a Python version specifier
- in the name.
- - ansible-test - Skip installing requirements if they are already installed.
- - ansible-test - Symbolic links are no longer used to inject ``python`` into
- the environment, since they do not work reliably in all cases. Instead, the
- existing Python based exec wrapper is always used.
- - ansible-test - Temporarily limit ``cryptography`` to versions before 3.4 to
- enable tests to function.
- - ansible-test - The ``--raw`` option for ``ansible-test shell --remote`` now
- uses ``sh`` for the shell instead of ``bash``, which may not be present.
- - ansible-test - The ``--remote`` option has been updated for Python 2.7 to
- work around breaking changes in the newly released ``get-pip.py`` bootstrapper.
- - ansible-test - The ``--remote`` option has been updated to use a versioned
- ``get-pip.py`` bootstrapper to avoid issues with future releases.
- - ansible-test - The ``ansible-doc`` sanity test now works for ``netconf`` plugins.
- - ansible-test - The ``changelog`` sanity test has been updated to ensure ``rstcheck``
- does not load the ``sphinx`` module.
- - ansible-test - The ``cs`` and ``openshift`` test plugins now search for containers
- on the current network instead of assuming the ``bridge`` network.
- - ansible-test - The ``resource_prefix`` variable provided to tests running
- on Azure Pipelines is now converted to lowercase to match other CI providers.
- - ansible-test - Unified SSH key management for all instances created with the
- ``--remote`` or ``--docker`` options.
- - ansible-test - Using the ``--remote`` option on Azure Pipelines now works
- from a job running in a container.
- - ansible-test - ``cryptography`` is now limited to versions prior to 3.2 only
- when an incompatible OpenSSL version (earlier than 1.1.0) is detected
- - 'ansible-test - add constraint for ``cffi`` to prevent failure on systems
- with older versions of ``gcc`` (https://foss.heptapod.net/pypy/cffi/-/issues/480)
-
- '
- - ansible-test - convert target paths to unicode on Python 2 to avoid ``UnicodeDecodeError``
- (https://github.com/ansible/ansible/issues/68398, https://github.com/ansible/ansible/pull/72623).
- - ansible-test - improve classification of changes to ``.gitignore``, ``COPYING``,
- ``LICENSE``, ``Makefile``, and all files ending with one of ``.in`, ``.md`,
- ``.rst``, ``.toml``, ``.txt`` in the collection root directory (https://github.com/ansible/ansible/pull/72353).
- - ansible-test - integration and unit test change detection now works for filter,
- lookup and test plugins
- - ansible-test now always uses the ``--python`` option for ``virtualenv`` to
- select the correct interpreter when creating environments with the ``--venv``
- option
- - ansible-test sanity changelog test - bump dependency on antsibull-changelog
- to 0.9.0 so that `fragments that add new plugins or objects <https://github.com/ansible-community/antsibull-changelog/blob/main/docs/changelogs.rst#adding-new-roles-playbooks-test-and-filter-plugins>`_
- will not fail validation (https://github.com/ansible/ansible/pull/73428).
- - ansible-test units - fixed collection location code to work under pytest >=
- 6.0.0
- - ansible-test validate-modules - ``version_added`` on module level was not
- validated for modules in collections (https://github.com/ansible/ansible/pull/70869).
- - ansible-test validate-modules - return correct error codes ``option-invalid-version-added``
- resp. ``return-invalid-version-added`` instead of the wrong error ``deprecation-either-date-or-version``
- when an invalid value of ``version_added`` is specified for an option or a
- return value (https://github.com/ansible/ansible/pull/70869).
- - ansible-test validate-modules - when a module uses ``add_file_common_args=True``
- and does not use a keyword argument for ``argument_spec`` in ``AnsibleModule()``,
- the common file arguments were not considered added during validation (https://github.com/ansible/ansible/pull/72334).
- - ansible_pkg_mgr fact - now correctly returns ``atomic_container`` when run
- on "RHEL for Edge" images and Fedora/RHEL/CentOS Atomic Host (https://github.com/ansible/ansible/issues/73084).
- - api - time.clock is removed in Python 3.8, add backward compatible code (https://github.com/ansible/ansible/issues/70649).
- - apt - add ``fail_on_autoremove`` param to apt module to avoid unintended package
- removals (https://github.com/ansible/ansible/issues/63231)
- - apt - include exception message from apt python library in error output
- - apt_key - Specifying ``file`` as mutually exclusive with ``data``, ``keyserver``,
- ``url`` (https://github.com/ansible/ansible/pull/70492).
- - apt_repository - fixes ``mode`` doc to remove ineffective default (https://github.com/ansible/ansible/pull/70319).
- - assemble - fix decrypt argument in the module (https://github.com/ansible/ansible/issues/65450).
- - async - Fix Python 3 interpreter parsing from module by comparing with bytes
- (https://github.com/ansible/ansible/issues/70690)
- - async_wrapper - Fix race condition when ``~/.ansible_async`` folder tries
- to be created by multiple async tasks at the same time - https://github.com/ansible/ansible/issues/59306
- - avoid possible errors accessing os.environ by not assuming existance of variables.
- - basic - handle exceptions for default selectors in Python 2.7 (https://github.com/ansible/ansible/issues/71704).
- - basic - use PollSelector implementation when DefaultSelector fails (https://github.com/ansible/ansible/issues/70238).
- - bcrypt hashing - Ensure we repair the salt, to avoid warnings (https://github.com/ansible/ansible/issues/36129)
- - 'blockinfile - properly insert a block at the end of a file that does not
- have a trailing newline character (https://github.com/ansible/ansible/issues/72055)
-
- '
- - blockinfile now returns name of backup file when this option is used.
- - clarified changed status to reflect existing rule that had never been written
- down.
- - collection loader - fix bogus code coverage entries for synthetic packages
- - collection metadata - ensure collection loader uses libyaml/CSafeLoader to
- parse collection metadata if available
- - cron - cron file should not be empty after adding var (https://github.com/ansible/ansible/pull/71207)
- - cron - encode and decode crontab files in UTF-8 explicitly to allow non-ascii
- chars in cron filepath and job (https://github.com/ansible/ansible/issues/69492)
- - default callback - Ensure that the ``host_pinned`` strategy is not treated
- as lockstep (https://github.com/ansible/ansible/issues/73364)
- - delegate_to - Ensure that calculating ``delegate_to`` vars with a loop uses
- the correct context to correctly evaluate the loop (https://github.com/ansible/ansible/issues/37132)
- - display correct error information when an error exists in the last line of
- the file (https://github.com/ansible/ansible/issues/16456)
- - distribution - add support for Pardus Linux distribution (https://github.com/ansible/ansible/issues/71636).
- - distribution facts - Allow ``distribution_major_version`` and ``distribution_version``
- to work for RC and PRERELEASE versions of FreeBSD (and derived distributions)
- (https://github.com/ansible/ansible/issues/72331).
- - dnf - fix filtering to avoid dependncy conflicts (https://github.com/ansible/ansible/issues/72316)
- - 'dnf - it is now possible to specify both ``security: true`` and ``bugfix:
- true`` to install updates of both types. Previously, only security would get
- installed if both were true. (https://github.com/ansible/ansible/issues/70854)'
- - ensure 'local' connection always has the correct default user for actions
- to consume.
- - ensure delegated vars can resolve hostvars object and access vars from hostvars[inventory_hostname].
- - ensure find_mount_point consistently returns text.
- - ensure we don't clobber role vars data when getting an empty file
- - expect - Operate pexpect with bytes to avoid potential encoding issues (https://github.com/ansible/ansible/issues/29351)
- - facts - account for Slackware OS with ``+`` in the name (https://github.com/ansible/ansible/issues/38760)
- - facts - fix distribution fact for SLES4SAP (https://github.com/ansible/ansible/pull/71559).
- - facts - fix incorrect UTC timestamp in ``iso8601_micro`` and ``iso8601``
- - facts - properly report virtualization facts for Linux guests running on bhyve
- (https://github.com/ansible/ansible/issues/73167)
- - file - prevent link src from being rewritten when src is not specified explicitly
- (https://github.com/ansible/ansible/issues/65448)
- - file - the module should warn in check_mode when path an owner/group don't
- exist (https://github.com/ansible/ansible/issues/67307).
- - find module - Don't treat empty excludes as a match (https://github.com/ansible/ansible/issues/70640)
- - find module - Stop traversing directories past the requested depth. (https://github.com/ansible/ansible/issues/73627)
- - fix issue with inventory_hostname and delegated host vars mixing on connection
- settings.
- - fortimanager httpapi plugin - fix redirect to point to the ``fortinet.fortimanager``
- collection (https://github.com/ansible/ansible/pull/71073).
- - galaxy - handle plus sign in user token appearing in role url (https://github.com/ansible/ansible/issues/45475).
- - get_sysctl now handles multiline values and does not die silently anymore.
- - get_url - skip checksum during ``--check`` (https://github.com/ansible/ansible/issues/61369).
- - git - Only pass ``--raw`` flag to git verify commands (verify-tag, verify-commit)
- when ``gpg_whitelist`` is in use. Otherwise don't pass it so that non-whitelist
- GPG validation still works on older Git versions. (https://github.com/ansible/ansible/issues/64469)
- - gluster modules - fix redirect to point to the ``gluster.gluster`` collection
- (https://github.com/ansible/ansible/pull/71240).
- - hostname - Fixed an issue where the hostname on the alinux could not be set.
- - hostname - add Almalinux support (https://github.com/ansible/ansible/pull/73619)
- - hostname - add macOS support (https://github.com/ansible/ansible/pull/54439)
- - if the ``type`` for a module parameter in the argument spec is callable, do
- not pass ``kwargs`` to avoid errors (https://github.com/ansible/ansible/issues/70017)
- - import_playbook - change warning about extra parameters to deprecation (https://github.com/ansible/ansible/issues/72745)
- - improve deprecation message when using bare variable (https://github.com/ansible/ansible/pull/70687)
- - inventory - pass the vars dictionary to combine_vars instead of an individual
- key's value (https://github.com/ansible/ansible/issues/72975).
- - inventory plugins - Let plugins define the sanitization method for the constructed
- ``groups`` feature.
- - inventory_hostnames - Use ``InventoryManager`` instead of trying to replicate
- its behavior (https://github.com/ansible/ansible/issues/17268)
- - is_string/vault - Ensure the is_string helper properly identifies AnsibleVaultEncryptedUnicode
- as a string (https://github.com/ansible/ansible/pull/71609)
- - lineinfile - fix not subscriptable error in exception handling around file
- creation
- - linux network facts - get the correct value for broadcast address (https://github.com/ansible/ansible/issues/64384)
- - native jinja2 types - properly handle Undefined in nested data.
- - package - use list of built in package managers from facts rather than creating
- a new list
- - paramiko connection plugin - Ensure we only reset the connection when one
- has been previously established (https://github.com/ansible/ansible/issues/65812)
- - password hashing - Ensure we validate salts against allowed characters and
- length when using ``crypt`` (https://github.com/ansible/ansible/issues/71107)
- - password lookup - Try to automatically generate salts using known salt sizes
- (https://github.com/ansible/ansible/issues/53750)
- - 'pause - Fix indefinite hang when using a pause task on a background process
- (https://github.com/ansible/ansible/issues/32142)
-
- '
- - pause - catch additional error on setting up curses (https://github.com/ansible/ansible/pull/73588).
- - pause - do not warn when running in the background if a timeout is provided
- (https://github.com/ansible/ansible/issues/73042)
- - pause - handle exception when there is no stdout (https://github.com/ansible/ansible/pull/47851)
- - powershell - fix escaping of strings that broken modules like fetch when dealing
- with special chars - https://github.com/ansible/ansible/issues/62781
- - powershell - fix the CLIXML parser when it contains nested CLIXML objects
- - https://github.com/ansible/ansible/issues/69550
- - powershell - remove getting the PowerShell version from the env var ``POWERSHELL_VERSION``.
- This feature never worked properly and can cause conflicts with other libraries
- that use this var
- - psrp - Fix hang when copying an empty file to the remote target
- - psrp - Use native PSRP mechanism when copying files to support custom endpoints
- - quote filter - normalize how ``None`` is handled, to match Python3 behavior
- (https://github.com/ansible/ansible/issues/32174)
- - reboot - Add support for the runit init system, used on Void Linux, that does
- not support the normal Linux syntax.
- - remove contradictory recomendation from template docs. https://github.com/ansible/ansible/issues/63484
- - remove redundant remote_user setting in play_context for local as plugin already
- does it, also removes fork/thread issue from use of pwd library.
- - reset logging level to INFO due to CVE-2019-14846.
- - runas - create a new token when running as ``SYSTEM`` to ensure it has the
- full privileges assigned to that account
- - service - Fix for the BSD rcconf code using a Python 2 specific string replace
- function
- - 'set_mode_if_different - handle symlink if it is inside a directory with sticky
- bit set (https://github.com/ansible/ansible/pull/45198)
-
- '
- - several fixes to make apt_key better at identifying needs for change and also
- to avoid changes in check_mode.
- - shell - fix quoting of mkdir command in creation of remote_tmp in order to
- allow spaces and other special characters (https://github.com/ansible/ansible/issues/69577).
- - splunk httpapi plugin - switch from splunk.enterprise_security to splunk.es
- in runtime.yml to reflect upstream change of Collection Name
- - 'ssh connection plugin - use ``get_option()`` rather than ``_play_context``
- to ensure ``ANSBILE_SSH_ARGS`` are applied properly (https://github.com/ansible/ansible/issues/70437)
-
- '
- - stat - handle colons in filename while parsing the mimetype output (https://github.com/ansible/ansible/issues/70256).
- - strftime filter - Input epoch is allowed to be a float (https://github.com/ansible/ansible/issues/71257)
- - 'systemd - account for templated unit files using ``@`` when searching for
- the unit file (https://github.com/ansible/ansible/pull/72347#issuecomment-730626228)
-
- '
- - systemd - fixed chroot usage on new versions of systemd, that broke because
- of upstream changes in systemctl output
- - 'systemd - follow up fix to https://github.com/ansible/ansible/issues/72338
- to use ``list-unit-files`` rather than ``list-units`` in order to show all
- units files on the system.
-
- '
- - systemd - made the systemd module work correctly when the SYSTEMD_OFFLINE
- environment variable is set
- - 'systemd - preserve the full unit name when using a templated service and
- ``systemd`` failed to parse dbus due to a known bug in ``systemd`` (https://github.com/ansible/ansible/pull/72985)
-
- '
- - 'systemd - work around bug with ``systemd`` 245 and 5.8 kernel that does not
- correctly report service state (https://github.com/ansible/ansible/issues/71528)
-
- '
- - 'task parsing - strip spaces from action name when using ``action: foo bar=baz``
- form. (https://github.com/ansible/ansible/issues/62136)'
- - templating - fix error message for ``x in y`` when y is undefined (https://github.com/ansible/ansible/issues/70984)
- - the unvault lookup plugin returned a byte string. Now returns a real string.
- - to_text(stdout) before json.loads in psrp.Connection.put_file in case stdout
- is bytes
- - unarchive - ``zip`` unarchive no longer errors on RHEL/CentOS 6 and old Fedora
- when attempting to use a numeric gid (https://github.com/ansible/ansible/issues/71903).
- - unarchive - check ``fut_gid`` against ``run_gid`` in addition to supplemental
- groups (https://github.com/ansible/ansible/issues/49284)
- - undeprecate hash_merge setting and add more docs clarifying its use and why
- not to use it.
- - uri - ``status_code`` elements are type ``int``
- - url lookup - make sure that options supplied in ansible.cfg are actually used
- (https://github.com/ansible/ansible/pull/71736).
- - url lookup - set default user agent to ``ansible-httpget`` (https://github.com/ansible/ansible/pull/72324)
- - urls - Close filedescriptor of certificate chain tempfile to prevent stale
- filedescriptor leakage (https://github.com/ansible/ansible/pull/71825).
- - 'user - AnsibleModule.run_command returns a tuple of return code, stdout and
- stderr. The module main function of the user module expects user.create_user
- to return a tuple of return code, stdout and stderr. Fix the locations where
- stdout and stderr got reversed.
-
- '
- - 'user - Local users with an expiry date cannot be created as the ``luseradd``
- / ``lusermod`` commands do not support the ``-e`` option. Set the expiry time
- in this case via ``lchage`` after the user was created / modified. (https://github.com/ansible/ansible/issues/71942)
-
- '
- - 'user - do the right thing when ``password_lock=True`` and ``password`` are
- used together (https://github.com/ansible/ansible/issues/72992)
-
- '
- - user - don't create home directory and missing parents when create_home ==
- false (https://github.com/ansible/ansible/pull/70600).
- - validate-modules - do not raise an ``AttributeError`` if a value is assigned
- to a module attribute in a try/except block.
- - vault - Support reading raw binary data from stdin under python3
- - virtual facts - kubevirt is now identified as "KubeVirt" and with a "guest"
- role instead of "kvm" and "host" role (https://github.com/ansible/ansible/issues/72001).
- - wait_for - catch and ignore errors when getting active connections with psutil
- (https://github.com/ansible/ansible/issues/72322)
- - win setup - Fix redirection path for the windows setup module
- - windows async - use full path when calling PowerShell to reduce reliance on
- environment vars being correct - https://github.com/ansible/ansible/issues/70655
- - winrm - preserve winrm forensic data on put_file failures
- - yamllint - do not raise an ``AttributeError`` if a value is assigned to a
- module attribute at the top of the module.
- deprecated_features:
- - Starting in 2.14, shell and command modules will no longer have the option
- to warn and suggest modules in lieu of commands. The ``warn`` parameter to
- these modules is now deprecated and defaults to ``False``. Similarly, the
- ``COMMAND_WARNINGS`` configuration option is also deprecated and defaults
- to ``False``. These will be removed and their presence will become an error
- in 2.14.
- - apt_key - the parameter ``key`` does not have any effect, has been deprecated
- and will be removed in ansible-core version 2.14 (https://github.com/ansible/ansible/pull/70319).
- - psrp - Set the minimum version of ``pypsrp`` to ``0.4.0``.
- known_issues:
- - ansible-test - The ``pylint`` sanity test no longer correctly detects "bad"
- variable names for non-constants. See https://github.com/PyCQA/pylint/issues/3701
- for additional details.
- major_changes:
- - A collection can be reinstalled with new version requirements without using
- the ``--force`` flag. The collection's dependencies will also be updated if
- necessary with the new requirements. Use ``--upgrade`` to force transitive
- dependency updates.
- - 'Declared ``resolvelib >= 0.5.3, < 0.6.0`` a direct dependency of
-
- ansible-core. Refs:
-
- - https://github.com/sarugaku/resolvelib
-
- - https://pypi.org/p/resolvelib
-
- - https://pradyunsg.me/blog/2020/03/27/pip-resolver-testing
-
- '
- - It became possible to install Ansible Collections from local folders and namespaces
- folder similar to SCM structure with multiple collections.
- - It became possible to upgrade Ansible collections from Galaxy servers using
- the ``--upgrade`` option with ``ansible-galaxy collection install``.
- - Support for role argument specification validation at role execution time.
- When a role contains an argument spec, an implicit validation task is inserted
- at the start of role execution.
- - add ``ArgumentSpecValidator`` class for validating parameters against an argument
- spec outside of ``AnsibleModule`` (https://github.com/ansible/ansible/pull/73335)
- minor_changes:
- - Add ``--format`` CLI option to ``ansible-galaxy collection list`` which allows
- for ``human`` (default), ``yaml``, or ``json``. (https://github.com/ansible/ansible/pull/73474)
- - Add an example for using var in with_sequence (https://github.com/ansible/ansible/issues/68836).
- - Add new rolespec_validate option to the import/include_role modules do allow
- disabling of the implicit role arg validation task on a per-role basis.
- - Add option to pass extra vars to ansible-inventory
- - Add path of collection location in Ansible CLI version info.
- - Add standard Python 2/3 compatibility boilerplate to setup script, module_utils
- and docs_fragments which were missing them.
- - Add support for `argument_specs` data in role metadata.
- - Add support for datetime.date object type in module result (https://github.com/ansible/ansible/issues/70583).
- - Add which conditional is being evaluated at each step when debugging.
- - Add yum/dnf version comparison documentation for package install
- - Added NO_COLOR environment var to ansible color configuration, allowing it
- to integrate with existing convention.
- - Added name of aliases in user error (https://github.com/ansible/ansible/issues/58752).
- - Added support for GSSAPI/Kerberos authentication with ``urls.py`` that is
- used by ``uri`` and ``get_url``.
- - Added support for specify custom credentials for GSSAPI authentication.
- - Allow an attribute to be passed to the min and max filters with Jinja 2.10+
- - Allow for the skipped filter to be used on a registered looped task results.
- (https://github.com/ansible/ansible/issues/16949)
- - Allow inventory plugins access to extra vars by default
- - Allow unsafe_writes to be set on target via env var, for those targets that
- need a blanket setting.
- - Also added extra vars cli option to console CLI.
- - AnsiballZ - Improve performance of ``ModuleDepFinder`` by using faster lookups
- and reducing the object types that are walked while looking for ``import``
- statements. (https://github.com/ansible/ansible/pull/70475)
- - CLI - Specify jinja version in ``--version`` output
- - CLI - Specify whether PyYAML includes libyaml support in version output
- - CLI version displays clarified as core version
- - 'Collection routing: Cisco NSO content from community.network migrated to
- cisco.nso (https://github.com/ansible/ansible/pull/73046).'
- - 'Collection routing: DellEMC content from community.general migrated to dellemc.openmanage
- (https://github.com/ansible/ansible/pull/73046).'
- - 'Collection routing: FortiOS content from community.network migrated to community.fortios
- (https://github.com/ansible/ansible/pull/73046).'
- - 'Collection routing: Google content from community.general migrated to community.google
- (https://github.com/ansible/ansible/pull/73046).'
- - 'Collection routing: Hashi Vault content from community.general migrated to
- community.hashi_vault (https://github.com/ansible/ansible/pull/73046).'
- - 'Collection routing: Hetzner Robot content from community.general migrated
- to community.hrobot (https://github.com/ansible/ansible/pull/73046).'
- - 'Collection routing: KubeVirt content from community.general migrated to community.kubevirt
- (https://github.com/ansible/ansible/pull/73046).'
- - 'Collection routing: OC content from community.general migrated to community.okd
- (https://github.com/ansible/ansible/pull/73046).'
- - 'Collection routing: PostgreSQL content from community.general migrated to
- community.postgresql (https://github.com/ansible/ansible/pull/73046).'
- - 'Collection routing: RouterOS content from community.network migrated to community.routeros
- (https://github.com/ansible/ansible/pull/73046).'
- - 'Collection routing: docker content from community.general migrated to community.docker
- (https://github.com/ansible/ansible/pull/73046).'
- - Controller - Add warning for Ansible 2.11 when running a Python version older
- than Python 3.8 to inform users that 2.12 will only support Python 3.8 and
- newer on the controller. Starting with Ansible 2.11, the project will only
- be packaged for Python 3.8 and newer.
- - Discourage the use of 'hexdigits' in password lookup, as it distorts expected
- entropy.
- - Enable extra vars for inventory plugin options
- - Errors - Ensure that errors passed with ``orig_exc`` include the context of
- that exception (https://github.com/ansible/ansible/issues/68605)
- - Filters - Add new ``split`` filter for splitting strings
- - Fixed ansible-doc to not substitute for words followed by parenthesis. For
- instance, ``IBM(International Business Machines)`` will no longer be substituted
- with a link to a non-existent module. https://github.com/ansible/ansible/pull/71070
- - Force the template module to use non-native Jinja2 (https://github.com/ansible/ansible/issues/46169)
- - Internal config entries will not be documented, to mark an entry as internal
- it must start with `_`.
- - Interpreter Discovery - Add Python 3.8 and Python 3.9 to the fallback list
- - Minor code cleanup in plugin loader.
- - Module API - libselinux-python is no longer required for basic module API
- selinux operations (affects core modules assemble, blockinfile, copy, cron,
- file, get_url, lineinfile, setup, replace, unarchive, uri, user, yum_repository)
- - Module API - new module_respawn API allows modules that need to run under
- a specific Python interpreter to respawn in place under that interpreter
- - Module iptables multiport destination support added (https://github.com/ansible/ansible/pull/72928)
- - Module iptables set/ipset support added (https://github.com/ansible/ansible/pull/72984)
- - New 'timeout' feature added to adhoc and console CLIs, corresponding to the
- recent 'timeout' task keyword.
- - New virtualization facts, ``virtualization_tech_guest`` and ``virtualization_tech_host``
- now allow for conveying when a system is a host or guest of multiple virtualization
- technologies.
- - Now 'choices' keyword in config definitions also restricts valid values for
- the entry.
- - Refactored ``ansible-galaxy collection [download|install|list|verify]`` CLI
- subcommands with the public interface kept intact.
- - Restructured _fixup_perms2() in ansible.plugins.action to make it more linear
- - Shadow prompt input to ansible-vault encrypt-string unless the ``--show-input``
- flag is set
- - Switch to hashlib.sha256() for ansible-test to allow for FIPs mode.
- - TOML inventory plugin is no longer in preview status
- - Templar - reduce the complexity of ``Templar._lookup`` (https://github.com/ansible/ansible/pull/73277)
- - The ``csvfile`` lookup plugin now uses ``parse_kv()`` internally. As a result,
- multi-word search keys can now be passed.
- - The ``csvfile`` lookup plugin's documentation has been fixed; it erroneously
- said that the delimiter could be ``t`` which was never true. We now accept
- ``\t``, however, and the error in the documentation has been fixed to note
- that.
- - The constructed inventory plugin has new option to force using vars plugins
- on previouslly processed inventory sources.
- - The find module is now more specific about the reasons it skips candidate
- files.
- - The logging functionality in module_utils.basic now returns a nicer error
- when it falls back to syslog but ends up getting a TypeError thrown back.
- - The new dependency resolver prefers ``MANIFEST.json`` over ``galaxy.yml``
- if it exists in the target directory.
- - The plugin loader now keeps track of the collection where a plugin was resolved
- to, in particular whether the plugin was loaded from ansible-core's internal
- paths (``ansible.builtin``) or from user-supplied paths (no collection name).
- - Toggle allowing usage of extra_vars in compose
- - When connecting as an unprivileged user, and becoming an unprivileged user,
- we now fall back to also trying ``chmod +a`` which works on macOS and makes
- use of ACLs.
- - allow tree callback plugin to be configurable, for use with playbooks.
- - ansible-doc - In Windows setup steps, ``ExecutionPolicy`` should be restored
- to default value ``RemoteSigned`` (https://github.com/ansible/ansible/pull/72993).
- - ansible-doc - provide ``has_action`` field in JSON output for modules. That
- information is currently only available in the text view (https://github.com/ansible/ansible/pull/72359).
- - ansible-doc has new option to show keyword documentation.
- - ansible-doc will now format, ``L()``, ``R()``, and ``HORIZONTALLINE`` in plugin
- docs just as the website docs do. https://github.com/ansible/ansible/pull/71070
- - ansible-galaxy - Add installation successful message
- - ansible-galaxy - Added caching mechanisms when retrieving collection info
- to speed up installs and downloads
- - ansible-galaxy - Change the output verbosity level of the download message
- from 3 to 0 (https://github.com/ansible/ansible/issues/70010)
- - ansible-galaxy - Ensure ``get_collection_versions`` returns an empty list
- when a collection does not exist for consistency across API versions.
- - 'ansible-galaxy - find any collection dependencies in the globally configured
- Galaxy servers and not just the server the parent collection is from.
-
- '
- - ansible-test - A warning is no longer emitted when a ``pip*`` or ``python*``
- binary is found without a matching couterpart.
- - ansible-test - Add ``macos/10.15`` as a supported value for the ``--remote``
- option.
- - ansible-test - Add a ``--docker-network`` option to choose the network for
- running containers when using the ``--docker`` option.
- - ansible-test - Add support for running tests on Fedora 33 (https://github.com/ansible/ansible/pull/72861).
- - ansible-test - Added Ubuntu 20.04 LTS image to the default completion list
- - ansible-test - Added a ``--export`` option to the ``ansible-test coverage
- combine`` command to facilitate multi-stage aggregation of coverage in CI
- pipelines.
- - ansible-test - Added the ``-remote rhel/7.9`` option to run tests on RHEL
- 7.9
- - ansible-test - Allow custom ``--remote-stage`` options for development and
- testing.
- - ansible-test - CentOS 8 container is now 8.2.2004 (https://github.com/ansible/distro-test-containers/pull/45).
- - ansible-test - Changed the internal name of the custom plugin used to identify
- use of unwanted imports and functions.
- - ansible-test - Cleaned up code to resolve warnings and errors reported by
- PyCharm.
- - ansible-test - Code cleanup in the ``import`` sanity test.
- - ansible-test - Code cleanup in the internal logic for code coverage collection
- of PowerShell modules.
- - ansible-test - Collections can now specify pip constraints for unit and integration
- test requirements using ``tests/unit/constraints.txt`` and ``tests/integration/constraints.txt``
- respectively.
- - ansible-test - Containers used with the ``--remote`` option have been updated
- to version 1.29.0 to include the latest Ansible requirements.
- - ansible-test - Files used to track remote instances no longer have a region
- suffix.
- - ansible-test - Fix ``ansible-test coverage`` reporting sub-commands (``report``,
- ``html``, ``xml``) on Python 2.6.
- - ansible-test - Fix container hostname/IP discovery for the ``acme`` test plugin.
- - ansible-test - FreeBSD 11.4 and 12.2 provisioning can now be used with the
- ``--python 3.8`` option.
- - ansible-test - FreeBSD instances provisioned with ``--remote`` now make ``libyaml``
- available for use with PyYAML installation.
- - ansible-test - Generation of an ``egg-info`` directory, if needed, is now
- done after installing test dependencies and before running tests. When running
- from an installed version of ``ansible-test`` a temporary directory is used
- to avoid permissions issues. Previously it was done before installing test
- dependencies and adjacent to the installed directory.
- - ansible-test - Implemented CloudStack test container selection by ENV variable
- `ANSIBLE_CLOUDSTACK_CONTAINER` with a default to `quay.io/ansible/cloudstack-test-container:1.4.0`.
- - ansible-test - Improved handling of minimum Python version requirements for
- sanity tests. Supported versions are now included in warning messages displayed
- when tests are skipped.
- - ansible-test - More sanity test requirements have been pinned to specific
- versions to provide consistent test results.
- - ansible-test - Most sanity test specific ``pip`` constraints are now used
- only when running sanity tests. This should reduce conflicts with ``pip``
- requirements and constraints when testing collections.
- - ansible-test - Most sanity tests are now skipped on Python 3.5 and earlier
- with a warning. Previously this was done for Python 2.7 and earlier.
- - ansible-test - Now supports freebsd/11.4 remote (https://github.com/ansible/ansible/issues/48782).
- - ansible-test - Now supports freebsd/12.2 remote (https://github.com/ansible/ansible/issues/72366).
- - ansible-test - OpenSuse container now uses Leap 15.2 (https://github.com/ansible/distro-test-containers/pull/48).
- - ansible-test - Pin the ``virtualenv`` version used for ``--remote`` pip installs
- to the latest version supported by Python 2.x, which is version 16.7.10.
- - ansible-test - Provisioning of RHEL instances now includes installation of
- pinned versions of ``packaging`` and ``pyparsing`` to match the downstream
- vendored versions.
- - ansible-test - RHEL 8.2+ provisioning can now be used with the ``--python
- 3.8`` option, taking advantage of the Python 3.8 AppStream.
- - ansible-test - Raise the number of bytes scanned by ansible-test to determine
- if a file is binary to 4096.
- - ansible-test - Refactor code for installing ``cryptography`` to allow re-use
- in the future.
- - ansible-test - Refactor code to remove unused logic for obsolete support of
- multiple provisioning endpoints.
- - ansible-test - Remove ``pytest < 6.0.0`` constraint for managed installations
- on Python 3.x now that pytest 6 is supported.
- - ansible-test - Remove em dash from the Pytest configuration file in order
- to be readable on systems where preferred encoding is ASCII. (https://github.com/ansible/ansible/issues/71739)
- - 'ansible-test - Remove outdated ``--docker`` completion entries: fedora30,
- fedora31, ubuntu1604'
- - 'ansible-test - Remove outdated ``--remote`` completion entries: freebsd/11.1,
- freebsd/12.1, osx/10.11, macos/10.15, rhel/7.6, rhel/7.8, rhel/8.1, rhel/8.2'
- - 'ansible-test - Remove outdated ``--windows`` completion entries: 2008, 2008-R2'
- - ansible-test - Remove the discontinued ``us-east-2`` choice from the ``--remote-aws-region``
- option.
- - 'ansible-test - Remove unused ``--remote`` completion entry: power/centos/7'
- - ansible-test - Removed ``pip`` constraints related to integration tests that
- have been moved to collections. This should reduce conflicts with ``pip``
- requirements and constraints when testing collections.
- - ansible-test - Removed the obsolete ``--remote-aws-region`` provisioning option.
- - ansible-test - Removed the obsolete ``tower`` test plugin for testing Tower
- modules.
- - ansible-test - Removed unused provisioning code and cleaned up remote provider
- management logic.
- - ansible-test - Rename internal functions to match associated constant names
- that were previously updated.
- - ansible-test - Reorganize internal ``pylint`` configuration files for easier
- comparison and maintenance.
- - ansible-test - Report the correct line number in the ``yamllint`` sanity test
- when reporting ``libyaml`` parse errors in module documentation.
- - ansible-test - Request remote resources by provider name for all provider
- types.
- - ansible-test - Show a warning when the obsolete ``--remote-aws-region`` option
- is used.
- - ansible-test - Silence ``pip`` warnings about Python 3.5 being EOL when installing
- requirements.
- - ansible-test - Support custom remote endpoints with the ``--remote-endpoint``
- option.
- - ansible-test - The ``--remote`` option no longer pre-installs the ``virtualenv``
- module on Python 3.x instances. The Python built-in ``venv`` module should
- be used instead.
- - ansible-test - The ``default`` container for both collections and core have
- been updated to versions 2.11.0 and 1.9.0 respectively.
- - ansible-test - The ``pylint`` sanity test is now skipped with a warning on
- Python 3.9 due to unresolved upstream regressions.
- - ansible-test - The ``pylint`` sanity test is now supported on Python 3.8.
- - ansible-test - The ``rstcheck`` sanity test is no longer used for collections,
- but continues to be used for ansible-core.
- - ansible-test - Ubuntu containers as well as ``default-test-container`` and
- ``ansible-base-test-container`` are now slightly smaller due to apt cleanup
- (https://github.com/ansible/distro-test-containers/pull/46).
- - ansible-test - Update ``pylint`` and its dependencies to the latest available
- versions to support Python 3.9.
- - ansible-test - Update built-in service endpoints for the ``--remote`` option.
- - ansible-test - Updated the default test containers to version 3.1.0.
- - ansible-test - Upgrade ansible-runner version used in compatibility tests,
- remove some tasks that were only needed with older versions, and skip in python2
- because ansible-runner is soon dropping it.
- - ansible-test - Use new endpoint for Parallels based instances with the ``--remote``
- option.
- - ansible-test - ``default-test-container`` and ``ansible-base-test-container``
- now use Python 3.9.0 instead of 3.9.0rc1.
- - ansible-test - add https endpoint for ansible-test
- - ansible-test - add macOS 11.1 as a remote target (https://github.com/ansible/ansible/pull/72622)
- - ansible-test - add the collection plugin directories ``plugin_utils`` and
- ``sub_plugins`` to list of plugin types. This ensures such plugins are tested
- for the ``import`` sanity test (https://github.com/ansible/ansible/pull/73599).
- - ansible-test - centos6 end of life - container image updated to point to vault
- base repository (https://github.com/ansible/distro-test-containers/pull/54)
- - ansible-test - centos6 image now has multiple fallback yum repositories for
- CentOS Vault.
- - ansible-test - default container now uses default-test-container 2.7.0 and
- ansible-base-test-container 1.6.0. This brings in Python 3.9.0rc1 for testing.
- - ansible-test - now makes a better attempt to support podman when calling ``docker
- images`` and asking for JSON format.
- - ansible-test - python-cryptography is now bounded at <3.2, as 3.2 drops support
- for OpenSSL 1.0.2 upon which some of our CI infrastructure still depends.
- - ansible-test - remote macOS instances no longer install ``virtualenv`` during
- provisioning
- - ansible-test - the ACME test container was updated, it now supports external
- account creation and has a basic OCSP responder (https://github.com/ansible/ansible/pull/71097,
- https://github.com/ansible/acme-test-container/releases/tag/2.0.0).
- - ansible-test - the ``import`` sanity test now also tries to import all non-module
- and non-module_utils Python files in ``lib/ansible/`` resp. ``plugins/`` (https://github.com/ansible/ansible/pull/72497).
- - ansible-test - virtualenv helper scripts now prefer ``venv`` on Python 3 over
- ``virtualenv``
- - ansible-test Now supports RHEL 8.3
- - ansible-test pylint - ensure that removal collection version numbers conform
- to the semantic versioning specification at https://semver.org/ (https://github.com/ansible/ansible/pull/71679).
- - ansible-test pylint sanity test - stop ignoring ``used-before-assignment``
- errors (https://github.com/ansible/ansible/pull/73639).
- - ansible-test runtime-metadata - compare deprecation and tombstone versions
- to the current version to ensure that they are correct (https://github.com/ansible/ansible/pull/72625).
- - ansible-test runtime-metadata - ensure that removal collection version numbers
- conform to the semantic versioning specification at https://semver.org/ (https://github.com/ansible/ansible/pull/71679).
- - ansible-test runtime-metadata - ensure that the tombstone removal date is
- not in the future (https://github.com/ansible/ansible/pull/72625).
- - ansible-test runtime-metadata - validate removal version numbers, and check
- removal dates more strictly (https://github.com/ansible/ansible/pull/71679).
- - ansible-test validate-modules - ensure that removal collection version numbers
- and version_added collection version numbers conform to the semantic versioning
- specification at https://semver.org/ (https://github.com/ansible/ansible/pull/71679).
- - ansible-test validate-modules - no longer assume that ``default`` for ``type=bool``
- options is ``false``, as the default is ``none`` and for some modules, ``none``
- and ``false`` mean different things (https://github.com/ansible/ansible/issues/69561).
- - ansible-test validate-modules - validate removal version numbers (https://github.com/ansible/ansible/pull/71679).
- - ansible.utils.encrypt now returns `AnsibleError` instead of crypt.crypt's
- `OSError` on Python 3.9
- - apt - module now works under any supported Python interpreter
- - apt_repository - module now works under any supported Python interpreter
- - callback plugins - ``meta`` tasks now get sent to ``v2_playbook_on_task_start``.
- Explicit tasks are always sent. Plugins can opt in to receiving implicit ones.
- - callbacks - Add feature allowing forks to send callback events (https://github.com/ansible/ansible/issues/14681)
- - conditionals - change the default of CONDITIONAL_BARE_VARS to False (https://github.com/ansible/ansible/issues/70682).
- - 'config - more types are now automatically coerced to string when ``type:
- str`` is used and the value is parsed as a different type'
- - constructed - Add a toggle to allow the separator to be omitted if no prefix
- has been provided.
- - constructed inventory plugin - Sanitize group names created from the ``groups``
- option silently.
- - create ``get_type_validator`` standalone function and move that functionality
- out of ``AnsibleModule`` (https://github.com/ansible/ansible/pull/72667)
- - create ``get_unsupported_parameters`` validation function (https://github.com/ansible/ansible/pull/72447/files)
- - debconf - add a note about no_log=True since module might expose sensitive
- information to logs (https://github.com/ansible/ansible/issues/32386).
- - default callback - add ``show_task_path_on_failure`` option to display file
- and line number of tasks only on failed tasks when running at normal verbosity
- level (https://github.com/ansible/ansible/issues/64625)
- - default callback - task name is now shown for ``include_tasks`` when using
- the ``free`` strategy (https://github.com/ansible/ansible/issues/71277).
- - default callback - task name is now shown for ``include_tasks`` when using
- the ``linear`` strategy with ``ANSIBLE_DISPLAY_SKIPPED_HOSTS=0``.
- - default_callback - moving 'check_mode_markers' documentation in default_callback
- doc_fragment (https://github.com/ansible-collections/community.general/issues/565).
- - distribution - add support for DragonFly distribution (https://github.com/ansible/ansible/issues/43739).
- - distribution - added distribution fact and hostname support for Parrot OS
- (https://github.com/ansible/ansible/pull/69158).
- - distribution - handle NetBSD OS Family (https://github.com/ansible/ansible/issues/43739).
- - distribution facts - ``distribution_release`` is now ``"Stream"`` on CentOS
- Stream (https://github.com/ansible/ansible/issues/73027).
- - dnf - Add nobest option (https://github.com/ansible/ansible/issues/69983)
- - 'dnf - When ``state: absent``, package names are now matched similarly to
- how the ``dnf`` CLI matches them (https://github.com/ansible/ansible/issues/72809).'
- - dnf - module now works under any supported Python interpreter
- - dnf - now shows specific package changes (installations/removals) under ``results``
- in check_mode. (https://github.com/ansible/ansible/issues/66132)
- - facts - ``/dev/kvm`` is now consulted in Linux virtualization facts, and the
- host is considered a KVM host if this file exists and none of the pre-existing
- checks matched.
- - facts - add new fact ``date_time['tz_dst']``, which returns the daylight saving
- timezone (https://github.com/ansible/ansible/issues/69004).
- - facts - add uptime to openbsd
- - find module - Now has a ``read_whole_file`` boolean parameter which allows
- for reading the whole file and doing an ``re.search()`` regex evaluation on
- it when searching using the ``contains`` option. This allows (for example)
- for ensuring the very end of the file matches a pattern.
- - galaxy - add documentation about galaxy parameters in examples/ansible.cfg
- (https://github.com/ansible/ansible/issues/68402).
- - galaxy - handle token as dict while loading from yaml file (https://github.com/ansible/ansible/issues/70887).
- - get_url - allow checksum urls to point to file:// resources, moving scheme
- test to function
- - get_url - handle same SHA sum for checksum file (https://github.com/ansible/ansible/issues/71420).
- - git - add ``single_branch`` parameter (https://github.com/ansible/ansible/pull/28465)
- - hash filter - fail when unsupported hash type is passed as an argument (https://github.com/ansible/ansible/issues/70258)
- - inventory cache - do not show a warning when the cache file does not (yet)
- exist.
- - iptables - add a note about ipv6-icmp in protocol parameter (https://github.com/ansible/ansible/issues/70905).
- - iptables - fixed get_chain_policy API (https://github.com/ansible/ansible/issues/68612).
- - iptables - reorder comment postition to be at the end (https://github.com/ansible/ansible/issues/71444).
- - lineinfile - add search_string parameter for non-regexp searching (https://github.com/ansible/ansible/issues/70470)
- - linux facts - Add additional check to ensure 'container' virtual fact gets
- added to guest_tech when appropriate (https://github.com/ansible/ansible/pull/71385)
- - meta - now include a ``skip_reason`` when skipped (https://github.com/ansible/ansible/pull/71355).
- - module_utils - ``get_file_attributes()`` now takes an optional ``include_version``
- boolean parameter. When ``True`` (default), the file's version/generation
- number is included in the result (but requires ``lsattr -v`` to work on the
- target platform).
- - now !unsafe works on all types of data, not just strings, even recursively
- for mappings and sequences.
- - package_facts - module support for apt and rpm now works under any supported
- Python interpreter
- - pipe lookup - update docs for Popen with shell=True usages (https://github.com/ansible/ansible/issues/70159).
- - plugin examples - Allow non-YAML examples, so that examples for plugins like
- the INI and TOML inventory plugins can be directly represented (https://github.com/ansible/ansible/pull/71184)
- - plugin option validation - now the option type ``dict``/``dictionary`` is
- also validated by the config manager (https://github.com/ansible/ansible/pull/71928).
- - 'reboot - add ``reboot_command`` parameter to allow specifying the command
- used to reboot the system (https://github.com/ansible/ansible/issues/51359)
-
- '
- - remove ``excommunicate`` debug command from AnsiballZ
- - selinux - return selinux_getpolicytype facts correctly.
- - service_facts - return service state information on AIX.
- - setup - allow list of filters (https://github.com/ansible/ansible/pull/68551).
- - setup.py - Declare that Python 3.9 is now supported (https://github.com/ansible/ansible/pull/72861).
- - setup.py - Skip doing conflict checks for ``sdist`` and ``egg_info`` commands
- (https://github.com/ansible/ansible/pull/71310)
- - subelements - clarify the lookup plugin documentation for parameter handling
- (https://github.com/ansible/ansible/issues/38182).
- - subversion - ``validate_certs`` option, which, when true, will avoid passing
- ``--trust-server-cert`` to ``svn`` commands (https://github.com/ansible/ansible/issues/22599).
- - unarchive - Add support for .tar.zst (zstd compression) (https://github.com/ansible/ansible/pull/73265).
- - unarchive - add ``RETURN`` documentation (https://github.com/ansible/ansible/issues/67445).
- - 'unarchive - add ``include`` parameter to allow extracting specific files
- from an archive (https://github.com/ansible/ansible/pull/40522)
-
- '
- - update sphinx to 2.1.2 and rstcheck to 3.3.1 for building documentation.
- - uri - add ``ca_path`` argument to allow specification of a CA certificate
- (https://github.com/ansible/ansible/pull/71979).
- - user - add new parameters ``password_expire_max`` and ``password_expire_min``
- for controlling password expiration (https://github.com/ansible/ansible/issues/68775)
- - varnames lookup plugin - Fixed grammar error in exception message when the
- plugin is given a non-string term.
- - vault - Provide better error for single value encrypted values to indicate
- the file, line, and column of the errant vault (https://github.com/ansible/ansible/issues/72276)
- - version test - Add semantic version functionality
- - virtual facts - containerd cgroup is now recognized as container tech (https://github.com/ansible/ansible/issues/66304).
- - virtualization facts - Detect ``vdsmd`` in addition to ``vdsm`` when trying
- to detect RHEV hosts. (https://github.com/ansible/ansible/issues/66147)
- - winrm - Added ``ansible_winrm_kinit_args`` that can be used to control the
- args that are sent to the ``kinit`` call for Kerberos authentication.
- - yum - module now works under any supported Python interpreter
- - yum_repository - added boolean option module_hotfixes which allows to enable
- functionality for dnf.
- release_summary: '| Release Date: 2021-03-02
-
- | `Porting Guide <https://docs.ansible.com/ansible/devel/porting_guides.html>`__
-
- '
- removed_features:
- - Removed `SharedPluginLoaderObj` class from ansible.plugins.strategy. It was
- deprecated in favor of using the standard plugin loader.
- - Removed `_get_item()` alias from callback plugin base class which had been
- deprecated in favor of `_get_item_label()`.
- - The "user" parameter was previously deprecated and is now removed in favor
- of "scope"
- - The deprecated ``ansible.constants.BECOME_METHODS`` has been removed.
- - The deprecated ``ansible.constants.get_config()`` has been removed.
- - The deprecated ``ansible.constants.mk_boolean()`` has been removed.
- - '`with_*` loops are no longer optimized for modules whose `name` parameters
- can take lists (mostly package managers). Use `name` instead of looping over
- individual names with `with_items` and friends.'
- security_fixes:
- - '**security issue** - Mask default and fallback values for ``no_log`` module
- options (CVE-2021-20228)'
- - '**security issue** - copy - Redact the value of the no_log ''content'' parameter
- in the result''s invocation.module_args in check mode. Previously when used
- with check mode and with ''-vvv'', the module would not censor the content
- if a change would be made to the destination path. (CVE-2020-14332)
-
- '
- - Sanitize no_log values from any response keys that might be returned from
- the uri module (CVE-2020-14330).
- - dnf - Previously, regardless of the ``disable_gpg_check`` option, packages
- were not GPG validated. They are now. (CVE-2020-14365)
- codename: Hey Hey, What Can I Do
- fragments:
- - 14681-allow-callbacks-from-forks.yml
- - 16456-correct-YAML-error-message-when-file-load-failed.yml
- - 16949-global-skipped-result-flag-looped-tasks.yml
- - 17029-prevent-user-fact-lookup-failure-is-logname-is-set.yml
- - 17268-inventory-hostnames.yml
- - 22599_svn_validate_certs.yml
- - 23958-cleanup.yml
- - 29351-expect-bytes.yml
- - 32143-pause-background-hangs.yml
- - 32174-normalize-None-quote.yml
- - 322214-hostname-macos-support.yml
- - 32386_debconf_password.yml
- - 37132-delegate-to-loop-context.yml
- - 38182_subelements.yml
- - 38760-slackware-os-dist.yml
- - 40522-unarchive-add-include.yml
- - 43739_dragonflybsd_disto.yml
- - 45475_galaxy.yml
- - 46169-non-native-template-module.yml
- - 50909-min-max-attrs.yml
- - 52229-vault-python3-binary-stdin.yml
- - 55152-add-more-info-to-AnsibleUndefinedVariable.yml
- - 565_default_callback.yml
- - 58752_argument_aliases.yml
- - 60882-keyed_groups-leading-separator-toggle.yaml
- - 61234-yum-dnf-version-comp-doc.yml
- - 61369_get_url.yml
- - 62136_strip_spaces_from_action_names.yml
- - 63105-wcswidth.yml
- - 63378_find_module_regex_whole_file.yml
- - 63417-unique-filter-preserve-order.yml
- - 64469_git_no_raw.yml
- - 64625-show-file-path-on-task-failure-callback-option.yml
- - 65262_ansible_inventory.yml
- - 65710-find-include-parent.yml
- - 65812-paramiko-attribute-error.yml
- - 66132_dnf_show_pkgs_in_check_mode.yml
- - 66147_rhev_vdsm_vdsmd.yml
- - 66304-facts_containerd.yml
- - 67508-meta-task-tags.yaml
- - 68275-vault-module-args.yml
- - 68402_galaxy.yml
- - 68551_allow_list_of_filters_for_the_setup_module.yml
- - 68605-ansible-error-orig-exc-context.yml
- - 68612_iptables.yml
- - 68770_cache_adjudicator_flush.yml
- - 69352-netbsd-virtual-facts.yml
- - 69463-fix-apt_repository-typeerror- instancemethod.yaml
- - 69531_user_password_expire.yml
- - 69578-shell-remote_tmp-quoting.yaml
- - 69640-file_should_warn_when_path_and_owner_or_group_dont_exist.yml
- - 69848-fix-rerunning-tagged-roles.yml
- - 70017-avoid-params-to-callable-checkers.yml
- - 70042-dnf-repository-hotfixes.yml
- - 70045-ansible-doc-yaml-anchors.yml
- - 70046-ansible-doc-description-crash.yml
- - 70056-add-a-param-to-apt-module-to-avoid-unintended-uninstalls.yml
- - 70099-make-apt-errors-more-transparent.yaml
- - 70122-improve-error-message-ssh-client-is-not-found.yml
- - 70148-galaxy-role-info.yaml
- - 70168-fix-delegate_facts-without-interpreter-set.yml
- - 70238_selector.yml
- - 70244-selinux-special-fs.yml
- - 70256_stat_colon_split.yml
- - 70258-hash-filter-fail-unsupported-type.yml
- - 70261_pipe_lookup.yml
- - 70284-facts-get-nvme-serial-from-file.yml
- - 70318-dnf-add-nobest-option.yml
- - 70319-reduce-ignored-module-sanity-tests.yml
- - 70344-plugin-deprecation-collection-name.yml
- - 70375-galaxy-server.yml
- - 70426-allow-non-ascii-chars-in-cron.yml
- - 70437-ssh-args.yml
- - 70449-facts-add-dst-timezone.yml
- - 70465-assemble-fix-decrypt-argument.yaml
- - 70475-modify-module.yaml
- - 70484-bool-ansible-become.yaml
- - 70492-replace-filename-with-file-in-apt_key.yml
- - 70507-validate-null-author.yaml
- - 70524-fix-download-collections.yaml
- - 70525-setuptools-disutils-reorder.yml
- - 70583_datetime_date_in_module_result.yml
- - 70587-package_facts-apk.yml
- - 70600-user-module-dont-create-home-when-create_home-is-false.yml
- - 70640-find-empty-excludes.yml
- - 70649_time_clock.yml
- - 70683-terminal-ansi-re.yaml
- - 70687-improve-deprecation-message-bare-variable.yaml
- - 70690-async-interpreter.yml
- - 70704-void-linux-reboot.yml
- - 70762-sanitize-uri-keys.yml
- - 70784-vault-is-string.yml
- - 70831-skip-literal_eval-string-filter-native-jinja.yml
- - 70854-dnf-mutually-exclusive-filters.yml
- - 70869-ansible-test-validate-modules-version-added.yml
- - 70887_galaxy_token.yml
- - 70905_iptables_ipv6.yml
- - 70922-fix-block-in-rescue.yml
- - 70984-templating-ansibleundefined-in-operator.yml
- - 71007_callback_on_meta.yml
- - 71073-fortimanager-httpapi-redirect.yml
- - 71097-ansible-test-acme-container.yml
- - 71107-encryption.yml
- - 71184-allow-non-yaml-examples.yml
- - 71197-systemctl-ignore-message.yaml
- - 71205_get_url_allow_checksum_file_url.yml
- - 71214-add-vars-variable-for-delegated-vars.yaml
- - 71240-gluster-modules-redirect.yml
- - 71257-strftime-float.yml
- - 71277-include_tasks-show-name-with-free-strategy.yml
- - 71279-skip-conflict-check.yml
- - 71306-fix-exit-code-no-failure.yml
- - 71307-toml-dumps-unsafe.yml
- - 71355_execute_meta_skip_reason.yml
- - 71385-enhance-container-reporting-linux-vfacts.yml
- - 71420_get_url.yml
- - 71496-iptables-reorder-comment-position.yml
- - 71528-systemd-capbpf-workaround.yml
- - 71528-systemd-improve-unit-searching.yml
- - 71528-systemd-list-unit-files.yml
- - 71559-fix-distribution-fact-sles4sap.yaml
- - 71609-is_string-vault.yml
- - 71636_distro.yml
- - 71679-ansible-test.yml
- - 71704_selector.yml
- - 71722-fix-default-connection-timeout.yaml
- - 71735-deprecation-tagging.yml
- - 71739-remove-em-dash-from-pytest-config.yml
- - 71824-action-fqcns.yml
- - 71825-close-file-descriptor-after-building-cert-chaing.yml
- - 71903-unarchive-gid-cast.yml
- - 71905_bump-cloudstack-test-container.yml
- - 71920-fix-templating-recursion-error.yml
- - 71921-raise-bytes-for-binary-test.yml
- - 71928-ensure_type-dict.yml
- - 71966-ansible-doc-plugin-name.yml
- - 71977-ansible-galaxy-role-init.yml
- - 71979_ca_path_for_uri.yaml
- - 72025-fact-add-uptime-to-openbsd.yml
- - 72055-blockinfile-fix-insert-after-line-no-linesep.yml
- - 72073-service_facts-aix-src.yml
- - 72170-action-loader-collection-list.yml
- - 72197-upgrade-test-ansible-runner.yml
- - 72276-provide-better-vault-error.yml
- - 72315-fact-caching-relative-to-config.yml
- - 72316-dnf-filtering.yml
- - 72322-wait-for-handle-errors.yml
- - 72331-truenas-rc-major-version.yml
- - 72411-fips-mode-ansible-test.yml
- - 72428-action-groups-docker-k8s.yml
- - 72497-ansible-test-import-plugins.yml
- - 72511-always-prepend-role-to-task-name.yml
- - 72516-fix-aix-network-facts.yml
- - 72545_fix_facts_value_empty_key.yml
- - 72546-unarchive-returndoc.yml
- - 72591-ansible-galaxy-collection-resolvelib.yaml
- - 72615-jinja-import-context-fix.yml
- - 72623-ansible-test-unicode-paths.yml
- - 72697-improve-config-deprecations.yml
- - 72699-validate-modules-default-for-bools.yml
- - 72745-import_playbook-deprecation-extra-params.yml
- - 72754-extract-emb-func.yaml
- - 72809-dnf-remove-NV.yml
- - 72873-fix-fileglob-ordering.yml
- - 72894-add-alinux-hostname-module-support.yml
- - 72928_adding_multiport_support.yml
- - 72966-allow-tilde-inside-galaxy-roles.yml
- - 72979-fix-inventory-merge-hash-replace.yaml
- - 72984_adding_set_support.yml
- - 72992-user-account-lock-always-changes.yml
- - 72993-ansible-doc-has_action.yml
- - 73004-let-command-always-return-stdout-and-stderr.yml
- - 73027-differentiate-centos-stream.yml
- - 73059-improve-deprecation-texts.yml
- - 73084-rhel-for-edge-pkg_mgr-fact-fix.yml
- - 73120-rolemetadata-argspecs.yml
- - 73152-role-arg-spec.yaml
- - 73167-bhyve-facts.yml
- - 73176_sphinx_rstcheck_versions.yml
- - 73263-shadow-encrypt-string.yml
- - 73277-reduce-lookup-complexity.yml
- - 73335-argument-spec_validator.yml
- - 73336-ansible-galaxy_collection_install_upgrade.yaml
- - 73364-default-callback-host-pinned-not-lockstep.yml
- - 73428-changelog-linting-bump-version.yml
- - 73429-inventory-sanitization-constructed-features.yml
- - 73456-let-vault-lookup-output-string.yml
- - 73463_self_signed_https_endpoint_for_ansible-test.yml
- - 73474-galaxy-list-format-options.yml
- - 73498-INTERPRETER_PYTHON_DISTRO_MAP-Treat-oracle-same-as-rhel-centos.yml
- - 73557-ansible-galaxy-cache-paginated-response.yml
- - 73577-regex-fix.yml
- - 73589-rolespec-validate.yml
- - 73599-ansible-test-new-plugin-dirs.yml
- - 73619-hostname-almalinux-support.yml
- - 73639-ansible-test-pylint-ignores.yml
- - 73653-rolespec-rm-warning.yml
- - 73658-inventorymanager-throws-on-empty-inventory-dir.yml
- - 73665-fixes-ansible-console.yml
- - 73700-let-file-module-not-change-link-to-absolute-on-touch.yml
- - 73709-normalize-configparser.yml
- - 73718-find-dir-depth-traversal.yml
- - add_keywords_to_ansible_doc.yml
- - added_existing_nocolor.yml
- - allow_restricted_config_values.yml
- - ansiballz-remove-excommunicate.yaml
- - ansible-base-update-containers.yml
- - ansible-boilerplate.yml
- - ansible-doc-collection-name.yml
- - ansible-doc-formats.yml
- - ansible-doc-has_action.yml
- - ansible-doc-role-empty-meta-main.yml
- - ansible-galaxy-stdout.yml
- - ansible-galaxy-version-response.yml
- - ansible-test-acme-test-plugin.yml
- - ansible-test-azp-agent-temp-dir.yml
- - ansible-test-azp-change-detection.yml
- - ansible-test-azp-resource-prefix.yml
- - ansible-test-centos6-eol.yml
- - ansible-test-centos6-vault-mirrors.yml
- - ansible-test-change-classification.yml
- - ansible-test-changelog-lint-update.yml
- - ansible-test-cleanup-pylint-config.yml
- - ansible-test-cleanup.yml
- - ansible-test-code-cleanup.yml
- - ansible-test-code-naming.yml
- - ansible-test-collection-classification.yml
- - ansible-test-collection-constraints.yml
- - ansible-test-constraints-cryptography-old-openssl.yml
- - ansible-test-constraints-cryptography.yml
- - ansible-test-container-ip-lookup.yml
- - ansible-test-coverage-code-cleanup.yml
- - ansible-test-coverage-combine-export.yml
- - ansible-test-coverage-py26.yml
- - ansible-test-cryptography-refactor.yml
- - ansible-test-default-3.1.0.yml
- - ansible-test-default-container-update.yml
- - ansible-test-docker-default-network.yml
- - ansible-test-docker-detection-fix.yml
- - ansible-test-docker-not-localhost.yml
- - ansible-test-docker-socket.yml
- - ansible-test-egg-info-handling.yml
- - ansible-test-endpoint-update.yml
- - ansible-test-fedora33.yml
- - ansible-test-freebsd-python-3.8.yml
- - ansible-test-freebsd-pyyaml-libyaml.yml
- - ansible-test-freebsd11-4.yml
- - ansible-test-freebsd12-2.yml
- - ansible-test-macos-10.15.yml
- - ansible-test-more-code-cleanup.yml
- - ansible-test-network-container-search.yml
- - ansible-test-parallels-endpoint.yml
- - ansible-test-pip-bootstrap-s3.yml
- - ansible-test-pip-bootstrap.yml
- - ansible-test-platforms.yml
- - ansible-test-plugin-classification.yml
- - ansible-test-podman-json-format.yml
- - ansible-test-pylint-plugin-name.yml
- - ansible-test-pylint-python-3.8-3.9.yml
- - ansible-test-pylint-upgrade.yml
- - ansible-test-pytest-cap-revert.yml
- - ansible-test-pytest-cap.yml
- - ansible-test-python-exec-wrapper.yml
- - ansible-test-python-pip-warnings.yml
- - ansible-test-relative-import-analysis.yml
- - ansible-test-remote-aws-region.yml
- - ansible-test-remote-shell-raw.yml
- - ansible-test-rhel-python-3.8.yml
- - ansible-test-rhel-requirements.yml
- - ansible-test-rstcheck-core-only.yml
- - ansible-test-runtime-dates-versions.yml
- - ansible-test-sanity-ansible-doc.yml
- - ansible-test-sanity-importer-cleanup.yml
- - ansible-test-sanity-yamllint-lineno.yml
- - ansible-test-ssh-key-management.yml
- - ansible-test-tower-plugin.yml
- - ansible-test-ubuntu2004.yml
- - ansible-test-update-current-distro-containers.yml
- - ansible-test-updates.yml
- - ansible-test-validate-modules-file-common-args.yml
- - ansible-test-venv-virtualenv-fallback.yml
- - ansible-test-virtualenv-fix.yml
- - ansible-test-virtualenv-install.yml
- - ansible_runtime_meta.yml
- - ansible_test_yamllint_avoid_attribute_exception.yaml
- - apt_key_fixes.yml
- - arg_spec-check_arguments-handle_aliases.yml
- - arg_spec-get_type_validator.yml
- - async-race-condition.yml
- - better_os_environ_access.yml
- - better_winrm_putfile_error.yml
- - blockinfile_fix_no_backup_return.yml
- - bsd_rcconf_string_replace.yaml
- - cffi-constraint.yml
- - changed_clarified.yml
- - changed_when_group_by.yml
- - changelog-yaml.yml
- - ci-add-macos-11.yml
- - colleciton_flex_ac_dir_paths.yml
- - collection-ad-hoc.yml
- - collection-list-site-packages.yaml
- - collection_meta_use_libyaml.yml
- - collections_cb_fix.yml
- - command-warnings-deprecation-2.yml
- - command-warnings-deprecation.yml
- - constants-deprecation.yml
- - constructed_vars_plugins.yml
- - controller-python-warning.yml
- - copy-sanitize-check-mode-invocation-args.yaml
- - core_version.yml
- - crypt-oserror.yml
- - cryptography-fix.yml
- - csvfile-parse_kv.yml
- - date-time-facts-fix-utctime.yml
- - default-test-container160.yml
- - delegate_has_hostvars.yml
- - delegation_password.yml
- - deprecation-callback-get_item.yml
- - deprecation-strategy-SharedPluginLoaderObj.yml
- - deprecation-systemd-user.yml
- - deprecation-taskexecutor-squash.yml
- - dev-kvm.yml
- - display-stdout-column-width.yml
- - distribution_support_netbsd.yml
- - distribution_support_parrot.yml
- - dnf_gpg.yml
- - enable_su_on_local.yaml
- - ensure_local_user_correctness.yml
- - facts_fixes.yml
- - find_explicit.yml
- - fix-cron-file-regression.yaml
- - fix-incorrect-msg-in-loops-results.yml
- - fix_ansible_issue_71942.yaml
- - fix_bogus_coverage.yml
- - fix_expression_as_filename_in_compile.yaml
- - fix_inventory_source_parse_error_handling.yml
- - fix_lp_flat.yml
- - fix_meta_tasks_with_flush_cache.yml
- - fix_mount_point.yml
- - fix_reversed_return_value_order_72088.yaml
- - fix_role_var_loading.yml
- - fix_ssh_executable_options.yml
- - fixup_perms2-cleanup.yml
- - fq_action_module_resolution.yml
- - galaxy-cache.yml
- - galaxy-collection-fallback.yml
- - galaxy-collection-list-correct-arg-name.yml
- - galaxy-download-scm.yaml
- - galaxy-servers.yml
- - galaxy-sys-exit.yml
- - galaxy_collections_paths-remove-dep.yml
- - galaxy_login_bye.yml
- - get_file_attributes-without-lsattr-version.yml
- - git-add-single_branch.yml
- - give_compose_extra_vars.yml
- - handle_undefined_in_type_errors_filters.yml
- - inventory-cache-file-missing-warning.yaml
- - keep_log_at_info.yml
- - kubevirt-virt-fact.yml
- - lineinfile-add-search_string-parameter-for-non-regexp-searching.yaml
- - lineinfile_exc_fix.yml
- - linux-network-facts-broadcast-address.yaml
- - macos-chmod-acl.yml
- - max_fail_free.yml
- - moar_reserved_vars.yml
- - module_respawn.yml
- - module_utils_finder_refactor.yml
- - more-types-to-string-config.yml
- - multivirt.yml
- - native-jinja2-types-properly-handle-nested-undefined.yml
- - no_log-fallback.yml
- - package-use-manager-from-facts.yaml
- - passwd_lookup_hexdigits.yml
- - pause-catch-error-when-no-std-exists.yml
- - pause-do-not-warn-background-with-seconds.yml
- - pause-import.yml
- - pipelinig_to_plugins.yml
- - play_context_remove_redundant_pwd.yml
- - plugin-loader-cleanup.yml
- - plugin-loader-collection-name.yml
- - powershell-fix-quoting.yaml
- - powershell-nested-clixml.yml
- - powershell-version-env.yml
- - ps-sanity-requirements.yml
- - psrp-copy-empty-file.yml
- - psrp-copy.yaml
- - psrp-json-loads-bytes.yml
- - py26-multiprocess-queue-bug.yml
- - py38-py39-fallback.yml
- - pytest-collections-fix.yml
- - reboot-add-boot-command-parameter.yaml
- - remove_contradiction.yml
- - rhel-7.9.yml
- - rpmfluff-compat-fixes.yml
- - run-command-cwd.yml
- - runas-become-system-privileges.yml
- - runtime-splunk-redirect.yml
- - selinux_getpolicytype_compat.yml
- - set_fact-connection_vars.yml
- - set_mode_if_different-symlink-sticky-dir.yml
- - setup-py-declare-py39.yml
- - skip_invalid_coll_name_when_listing.yml
- - split-filter.yml
- - support_almalinux.yml
- - syslog-prettier-error.yml
- - systemd-preserve-full-unit-name.yml
- - test-ansible-runner-pin-psutil.yml
- - test_rhel83.yml
- - timeout_moar_clis.yml
- - toml-no-preview.yml
- - tree_config.yml
- - unarchive-check-future-gid-against-run-gid.yml
- - unarchive-support-zst.yml
- - undo_hashmerge_depr.yml
- - unsafe_for_all.yml
- - unsafe_writes_env.yml
- - unsafe_writes_fix.yml
- - update-conditionals-bare-vars-default.yml
- - uri-status-code-int.yml
- - url-lookup-add-httpagent.yml
- - url-lookup-ini.yml
- - urls-gssapi.yml
- - v2.11.0-initial-commit.yaml
- - v2.11.0b1_summary.yaml
- - validate-modules-ps-doc-blacklist.yaml
- - validate-modules_found_try_except_import_fails_module_attribute.yaml
- - vanquish-rare-container-bootstrap-failure.yml
- - varnames-error-grammar.yml
- - version-jinja.yml
- - version-libyaml-git.yml
- - version-test-semver.yml
- - which_when_false.yml
- - win_async_full_path.yml
- - win_setup-redirection.yaml
- - winrm_kinit_args.yaml
- - with_seq_example.yml
- - wrap_native_text-non-collections-only.yml
- modules:
- - description: Validate role argument specs.
- name: validate_argument_spec
- namespace: ''
- release_date: '2021-03-02'
- 2.11.0b2:
- changes:
- bugfixes:
- - A handler defined within a role will now search handlers subdir for included
- tasks (issue https://github.com/ansible/ansible/issues/71222).
- - ALLOW_WORLD_READABLE_TMP, switched to 'moved' message as 'deprecation' is
- misleading since config settings still work w/o needing change.
- - Automatically remove async cache files for polled async tasks that have completed
- (issue https://github.com/ansible/ansible/issues/73206).
- - Deal with failures when sorting JSON and you have incompatible key types.
- - Setup virtualization_facts - add RHV and oVirt type. This change will fully
- work for VMs in clusters at cluster level 4.4 or newer (https://github.com/ansible/ansible/pull/72876).
- - '[set_fact] Corrected and expanded documentation as well as now raise errors
- that were previously ignored.'
- - ansible-test - ensure unit test paths for connection and inventory plugins
- are correctly identified for collections (https://github.com/ansible/ansible/issues/73876).
- - connection/ssh, ensure parameters come from correct source get_option, so
- functionality matches docs.
- - connection/ssh, fix reset to use same parameters to check if socket exists
- as actually used, was hardcoded to default string construction previouslly.
- - j2 plugin loader clarified comments, made note with better fqcn detection.
- - notify keyword is not ignored anymore on import_tasks, also able to apply
- to blocks now.
- - restrict module valid JSON parsed output to objects as lists are not valid
- responses.
- - setup, don't give up on all local facts gathering if one script file fails.
- - su become plugin, ensure correct type for localization option.
- minor_changes:
- - ansible-test - The generated ``resource_prefix`` variable now meets the host
- name syntax requirements specified in RFC 1123 and RFC 952. The value used
- for local tests now places the random number before the hostname component,
- rather than after. If the resulting value is too long, it will be truncated.
- - ansible-test validate-modules - option names that seem to indicate they contain
- secret information that should be marked ``no_log=True`` are now flagged in
- the validate-modules sanity test. False positives can be marked by explicitly
- setting ``no_log=False`` for these options in the argument spec. Please note
- that many false positives are expected; the assumption is that it is by far
- better to have false positives than false negatives (https://github.com/ansible/ansible/pull/73508).
- - distribution - add facts about Amazon Linux Distribution facts (https://github.com/ansible/ansible/issues/73742).
- - module payload builder - module_utils imports in any nested block (eg, ``try``,
- ``if``) are treated as optional during module payload builds; this allows
- modules to implement runtime fallback behavior for module_utils that do not
- exist in older versions of Ansible.
- release_summary: '| Release Date: 2021-03-15
-
- | `Porting Guide <https://docs.ansible.com/ansible/devel/porting_guides.html>`__
-
- '
- codename: Hey Hey, What Can I Do
- fragments:
- - 72876-setup-facts-add-redhat-vendor.yml
- - 73508-validate-modules-no_log.yml
- - 73742_amazon_distribution.yml
- - 73760-async-cleanup.yml
- - 73809-search-handler-subdir.yml
- - 73876-ansible_test-units.yml
- - allow_world_readable_move.yml
- - ansible-test-resource-prefix.yml
- - fix_import_notify.yml
- - fix_json_module_parsing.yml
- - fix_set_fact.yml
- - inv_json_sort_types_fix.yml
- - j2ploader_minor.yml
- - local_facts_continue.yml
- - optional_module_utils.yml
- - ssh_connection_fixes.yml
- - su_fix.yml
- - v2.11.0b2_summary.yaml
- release_date: '2021-03-15'
- 2.11.0b3:
- changes:
- bugfixes:
- - Fix adding unrelated candidate names to the plugin loader redirect list.
- - Strategy - When building the task in the Strategy from the Worker, ensure
- it is properly marked as finalized and squashed. Addresses an issue with ``ansible_failed_task``.
- (https://github.com/ansible/ansible/issues/57399)
- - ansible-pull - Run all playbooks that when multiple are supplied via the command
- line (https://github.com/ansible/ansible/issues/72708)
- - find module, fix default pattern when use_regex is true.
- major_changes:
- - AnsibleModule - use ``ArgumentSpecValidator`` class for validating argument
- spec and remove private methods related to argument spec validation. Any modules
- using private methods should now use the ``ArgumentSpecValidator`` class or
- the appropriate validation function.
- minor_changes:
- - Callbacks - Migrate more places in the ``TaskExecutor`` to sending callbacks
- directly over the queue, instead of sending them as ``TaskResult`` and short
- circuiting in the Strategy to send the callback. This enables closer to real
- time callbacks of retries and loop results (https://github.com/ansible/ansible/issues/73899)
- - setup - fix distribution facts for Older Amazon Linux with ``/etc/os-release``
- (https://github.com/ansible/ansible/issues/73946).
- release_summary: '| Release Date: 2021-03-19
-
- | `Porting Guide <https://docs.ansible.com/ansible/devel/porting_guides.html>`__
-
- '
- codename: Hey Hey, What Can I Do
- fragments:
- - 57399-finalize-task-in-strategy.yml
- - 72708_ansible_pull_multiple_playbooks.yml
- - 73863-fix-plugin-redirect-list.yaml
- - 73899-more-te-callbacks.yml
- - 73946_amazon_linux.yml
- - fix_find_default.yml
- - use-validator-in-ansiblemodule.yml
- - v2.11.0b3_summary.yaml
- release_date: '2021-03-19'
- 2.11.0b4:
- changes:
- bugfixes:
- - Correctly set template_path and template_fullpath for usage in template lookup
- and action plugins.
- - Try to avoid kernel 'blocking' state on reading files while fact gathering.
- - apt - fix policy_rc_d parameter throwing an exception when restoring original
- file (https://github.com/ansible/ansible/issues/66211)
- - argument spec validation - fix behavior of ``apply_defaults=True`` when an
- empty dictionary is specified for such an option (https://github.com/ansible/ansible/pull/74029).
- - pause - do not accept enter to continue when a timeout is set (https://github.com/ansible/ansible/issues/73948)
- - setup module, fix error handling on bad subset given
- - wait_for module, move missing socket into function to get proper comparrison
- in time.
- minor_changes:
- - ansible-galaxy CLI - ``collection verify`` command now exits with a non-zero
- exit code on verification failure
- - ansible-galaxy CLI - ``collection verify`` command now supports a ``--offline``
- option for local-only verification
- release_summary: '| Release Date: 2021-03-29
-
- | `Porting Guide <https://docs.ansible.com/ansible/devel/porting_guides.html>`__
-
- '
- codename: Hey Hey, What Can I Do
- fragments:
- - 73840_apt-policy-rc-d.yml
- - 73948-pause-no-enter-with-timeout.yml
- - 74029-argspec-apply_defaults.yml
- - fix_setup_bad_subset.yml
- - galaxy_verify_exitcode.yml
- - galaxy_verify_local.yml
- - less_blocks_on_facts.yml
- - template_temp_vars_fix.yml
- - v2.11.0b4_summary.yaml
- - wait_for_fix.yml
- release_date: '2021-03-29'
- 2.11.0rc1:
- changes:
- bugfixes:
- - OpenBSD module_utils - update sysctl variable name
- - WorkerProcess - Implement workaround for stdout deadlock in multiprocessing
- shutdown to avoid process hangs.
- - ansible-test - Add a ``six < 1.14.0`` constraint for Python 2.6.
- - ansible-test - The ``--export`` option for ``ansible-test coverage`` is now
- limited to the ``combine`` command. It was previously available for reporting
- commands on which it had no effect.
- - ansible-test - The ``ansible-test coverage combine`` option ``--export`` now
- exports relative paths. This avoids loss of coverage data when aggregating
- across systems with different absolute paths. Paths will be converted back
- to absolute when generating reports.
- - debug action, prevent setting facts when displaying ansible_facts.
- minor_changes:
- - ansible-test - Add constraint for ``decorator`` for Python versions prior
- to 3.5.
- - service_facts - return service state information on OpenBSD.
- release_summary: '| Release Date: 2021-04-05
-
- | `Porting Guide <https://docs.ansible.com/ansible/devel/porting_guides.html>`__
-
- '
- codename: Hey Hey, What Can I Do
- fragments:
- - ansible-test-decorator-constraint.yml
- - ansible-test-fix-coverage-export.yml
- - ansible-test-six.yml
- - debug_dont_set_facts.yml
- - openbsd-service.yml
- - openbsd-sysutil.yml
- - v2.11.0rc1_summary.yaml
- - workerprocess-stdout-deadlock.yml
- release_date: '2021-04-05'
- 2.11.0rc2:
- changes:
- bugfixes:
- - WorkerProcess - Python 3.5 fix for workaround for stdout deadlock in multiprocessing
- shutdown to avoid process hangs. (https://github.com/ansible/ansible/issues/74149)
- release_summary: '| Release Date: 2021-04-06
-
- | `Porting Guide <https://docs.ansible.com/ansible/devel/porting_guides.html>`__
-
- '
- codename: Hey Hey, What Can I Do
- fragments:
- - fix-for-workerprocess-stdout-deadlock-fix.yml
- - v2.11.0rc2_summary.yaml
- release_date: '2021-04-06'
- 2.11.1:
- changes:
- release_summary: '| Release Date: 2021-05-24
-
- | `Porting Guide <https://docs.ansible.com/ansible/devel/porting_guides.html>`__
-
- '
- codename: Hey Hey, What Can I Do
- fragments:
- - v2.11.1_summary.yaml
- release_date: '2021-05-24'
- 2.11.1rc1:
- changes:
+ - Action, module, and group names in module_defaults must be static values.
+ Their values can still be templates.
+ - Fully qualified 'ansible.legacy' plugin names are not included implicitly
+ in action_groups.
+ - Unresolvable groups, action plugins, and modules in module_defaults are an
+ error.
+ - ansible-test - Automatic installation of requirements for "cloud" test plugins
+ no longer occurs. The affected test plugins are ``aws``, ``azure``, ``cs``,
+ ``hcloud``, ``nios``, ``opennebula``, ``openshift`` and ``vcenter``. Collections
+ should instead use one of the supported integration test requirements files,
+ such as the ``tests/integration/requirements.txt`` file.
+ - ansible-test - The HTTP Tester is no longer available with the ``ansible-test
+ shell`` command. Only the ``integration`` and ``windows-integration`` commands
+ provide HTTP Tester.
+ - ansible-test - The ``--disable-httptester`` option is no longer available.
+ The HTTP Tester is no longer optional for tests that specify it.
+ - ansible-test - The ``--httptester`` option is no longer available. To override
+ the container used for HTTP Tester tests, set the ``ANSIBLE_HTTP_TEST_CONTAINER``
+ environment variable instead.
+ - ansible-test - Unit tests for ``modules`` and ``module_utils`` are now limited
+ to importing only ``ansible.module_utils`` from the ``ansible`` module.
+ - conditionals - ``when`` conditionals no longer automatically parse string
+ booleans such as ``"true"`` and ``"false"`` into actual booleans. Any non-empty
+ string is now considered true. The ``CONDITIONAL_BARE_VARS`` configuration
+ variable no longer has any effect.
+ - hostname - Drops any remaining support for Python 2.4 by using ``with open()``
+ to simplify exception handling code which leaked file handles in several spots
+ - hostname - On FreeBSD, the string ``temporarystub`` no longer gets written
+ to the hostname file in the get methods (and in check_mode). As a result,
+ the default hostname will now appear as ``''`` (empty string) instead of ``temporarystub``
+ for consistency with other strategies. This means the ``before`` result will
+ be different.
+ - hostname - On OpenRC systems and Solaris, the ``before`` value will now be
+ ``''`` (empty string) if the permanent hostname file does not exist, for consistency
+ with other strategies.
+ - intersect, difference, symmetric_difference, union filters - the default behavior
+ is now to be case-sensitive (https://github.com/ansible/ansible/issues/74255)
+ - unique filter - the default behavior is now to fail if Jinja2's filter fails
+ and explicit ``case_sensitive=False`` as the Ansible's fallback is case-sensitive
+ (https://github.com/ansible/ansible/pull/74256)
bugfixes:
- Add RockyLinux to fact gathering (https://github.com/ansible/ansible/pull/74530).
+ - Add unicode support to ``ansible-inventory`` CLI (https://github.com/ansible/ansible/issues/57378)
+ - Add yaml representer for VarsWithSources (https://github.com/ansible/ansible/pull/68525).
+ - Added page describing terminal plugins to docsite
+ - AnsibleModule.set_mode_if_different - don't check file existence when check_mode
+ is activated (https://github.com/ansible/ansible/issues/61185).
+ - Apply ``display_failed_stderr`` callback option on loop item results. (https://github.com/ansible/ansible/issues/74864)
+ - Binary GnuPG keys downloaded via URLs by the 'ansible.builtin.apt_key' module
+ were corrupted so 'gpg' could not import them (https://github.com/ansible/ansible/issues/74424).
+ - Ensure end_play ends play, not batch (https://github.com/ansible/ansible/issues/73971)
+ - Ensure we get full path for extra vars into cliargs to avoid realpath issues
+ after initial load.
+ - Fix ``keys()`` implementation of ``BaseFileCacheModule`` to strip the prefix
+ from the key and only return keys that share the same prefix as the cache.
+ - Fix ``when`` evaluation on Native Jinja and Python 3.10.
+ - Fix templating task action with host-specific vars (https://github.com/ansible/ansible/issues/75568)
+ - Fully qualified 'ansible.legacy' and 'ansible.builtin' plugin names work in
+ conjunction with module_defaults.
+ - Give a warning instead of an error if a handler name contains undefined variables
+ and has no listen topics (https://github.com/ansible/ansible/issues/58841).
- Improve resilience of ``ansible-galaxy collection`` by increasing the page
size to make fewer requests overall and retrying queries with a jittered exponential
backoff when rate limiting HTTP codes (520 and 429) occur. (https://github.com/ansible/ansible/issues/74191)
+ - Jinja2 globals should be accessible even when importing a template without
+ the context (https://github.com/ansible/ansible/issues/75371)
+ - PlayContext - Remove deprecated ``make_become_cmd`` (https://github.com/ansible/ansible/issues/74136)
+ - PowerShell - Ignore the ``LIB`` environment variable when compiling C# Ansible
+ code
- Prevent ``ansible_failed_task`` from further templating (https://github.com/ansible/ansible/issues/74036)
- Remove 'default' from ssh plugin as we want to rely on default from ssh itself
or ssh/config.
- - The error message about the failure to import a ``gpg`` key by the ``apt_key``
+ - Replace usage of private dnf.Base() attribute by future dnf API
+ - Save unreachable hosts between plays by adding them to the PlayIterator's
+ _play._removed_hosts (https://github.com/ansible/ansible/issues/66945).
+ - Solaris - correct version check in svcadm_supports_sync (https://github.com/ansible/ansible/pull/73860).
+ - Task depth - Prevent exception when the task depth exceeds Pythons recursion
+ depth (https://github.com/ansible/ansible/issues/73996)
+ - Templating - Ensure we catch exceptions when calling ``.filters()`` or ``.tests()``
+ on their respective plugins and properly error, instead of aborting which
+ results in no filters being added to the jinja2 environment (https://github.com/ansible/ansible/pull/74127)
+ - The ``apt_key`` module did not properly handle GnuPG errors (https://github.com/ansible/ansible/issues/74477)
+ - The error message about the failure to import a ```gpg`` key by the ``apt_key``
module was incorrect (https://github.com/ansible/ansible/issues/74423).
+ - Update network user guide to explain use of cli_parse and validate plugins.
+ - Variable Manager - Only check if ``play.hosts`` is a template when the play
+ hasn't been finalized (https://github.com/ansible/ansible/issues/73926)
+ - WorkerProcess - Python 3.5 fix for workaround for stdout deadlock in multiprocessing
+ shutdown to avoid process hangs. (https://github.com/ansible/ansible/issues/74149)
+ - '``AnsibleModule.run_command`` - Address thread safety issues, concerning
+ mutating the environment, current working directory, and umask. (https://github.com/ansible/ansible/issues/74783)
+
+ '
+ - '``failed_when``/``changed_when`` - Catch templating errors to prevent masking
+ of module output (https://github.com/ansible/ansible/issues/37187)'
+ - '``heuristic_log_sanitize`` - Return the full string if there is no password
+ (https://github.com/ansible/ansible/issues/75542)
+
+ '
+ - '``pip`` now uses the ``pip`` Python module installed for the Ansible module''s
+ Python interpreter, if available, unless ``executable`` or ``virtualenv``
+ were specified.'
+ - advanced_host_list inventory plugin - Fixed variable referenced before assignment
+ when hostname/range could not be parsed.
+ - ansiballz - avoid treating path to site_packages as regex; escape it. This
+ prevents a crash when ansible is installed to, or running from, an oddly named
+ directory like ``ansi[ble``
+ - ansible-doc - in text output, do not show empty ``version_added_collection``
+ values (https://github.com/ansible/ansible/pull/74999).
+ - ansible-doc can now dump kewyords with --metadata-dump (still just for internal
+ use)
+ - ansible-doc, fix output for internal metadata dump option
+ - ansible-doc, make inventory plugin selection for snippets generic and not
+ a hardcoded list
+ - ansible-galaxy - Fix a bug with build_ignore when installing collections from
+ source (https://github.com/ansible/ansible/issues/75528).
+ - ansible-galaxy - Fix handling HTTP exceptions from Galaxy servers. Continue
+ to the next server in the list until the collection is found.
+ - ansible-galaxy - Improve error message from dependency resolution when a candidate
+ has inconsistent requirements (https://github.com/ansible/ansible/issues/75139).
+ - ansible-inventory - handle an exception while parsing inventory in toml format
+ (https://github.com/ansible/ansible/issues/74404).
+ - ansible-playbook, more robust handling of --list-hosts and undefined vars
+ in hosts keyword.
+ - ansible-pull - update documentation for ``--directory`` option to clarify
+ path must be absolute.
+ - ansible-pull, restore other options to use as repo other than git.
+ - ansible-test - Add constraint for ``pyspnego>=0.1.6`` for Python 3.10 - https://github.com/ansible/ansible/pull/74612
- ansible-test - Avoid publishing the port used by the ``pypi-test-container``
since it is only accessed by other containers. This avoids issues when trying
to run tests in parallel on a single host.
+ - ansible-test - Failure to download test results from a remote host no longer
+ hide test failures. If a download failure occurs after tests fail, a warning
+ will be issued instead.
- ansible-test - Fix docker container IP address detection. The ``bridge`` network
is no longer assumed to be the default.
+ - ansible-test - Fix traceback when generating coverage reports and no coverage
+ directory exists.
+ - ansible-test - Random port selection is no longer handled by ``ansible-test``,
+ avoiding possible port conflicts. Previously ``ansible-test`` would, under
+ some circumstances, use one host's available ports to determine those of another
+ host.
+ - ansible-test - Running tests in a single test run with multiple "cloud" plugins
+ no longer results in port conflicts. Previously two or more containers with
+ overlapping ports could not be used in the same test run.
+ - ansible-test - Tab completion after options like ``--docker`` which accept
+ an optional argument will no longer provide incorrect completions.
+ - ansible-test - The ``--python`` and ``--venv`` options are no longer ignored
+ by some commands, such as ``coverage``.
+ - ansible-test - The ``docker inspect`` command is now used to check for existing
+ images instead of the ``docker images`` command. This resolves an issue where
+ a ``docker pull`` would be unnecessarily executed for an image referenced
+ by checksum.
+ - ansible-test - Use ``--strict`` for ``pytest`` on Python 2.6 since ``--strict-markers``
+ is not available.
- ansible-test - Use documented API to retrieve build information from Azure
Pipelines.
+ - ansible-test - Use pwsh to generate correct coverage line counts for stub
+ files to get a more accurate coverage result
+ - ansible-test - add packaging python module to ``ansible-doc`` sanity test
+ requirements.
+ - ansible-test - allow the same listening port on all container interfaces
+ - ansible-test - ensure the correct unit test target is given when the ``__init__.py``
+ file is modified inside the connection plugins directory
+ - ansible-test - make the ``a/`` and ``b/`` prefixes an optional match since
+ these can be turned off with the ``diff.noprefix`` setting in ``git``
+ - ansible-test - restrict ``packaging`` to ``< 21.0`` for Python ``< 3.6`` (https://github.com/ansible/ansible/pull/75186).
+ - ansible-test validate-modules - EXAMPLES will no longer be marked as invalid
+ YAML when it uses Ansible-specific YAML tags (https://github.com/ansible/ansible/pull/74384).
+ - ansible-test validate-modules - correctly validate positional parameters to
+ ``AnsibleModules`` (https://github.com/ansible/ansible/pull/75332).
- ansible.builtin.cron - Keep non-empty crontabs, when removing cron jobs (https://github.com/ansible/ansible/pull/74497).
- ansible.utils.encrypt now handles missing or unusable 'crypt' library.
- ansible_test - add constraint for ``MarkupSafe`` (https://github.com/ansible/ansible/pull/74666)
- - apt_key - Binary GnuPG keys downloaded via URLs were corrupted so GnuPG could
- not import them (https://github.com/ansible/ansible/issues/74424).
+ - apt_key - set --recv argument as last one in apt-key command when using env
+ var HTTP_PROXY (https://github.com/ansible/ansible/issues/74946)
+ - arg_spec - remove unused imports
+ - async_status, ensure we always get documented returns
+ - async_status, resurrected module to deprecate for those that were invoking
+ it directly.
+ - basic - skip over module parameters which are used in ``journal.send`` API
+ call (https://github.com/ansible/ansible/issues/71343).
- become - fix a regression on Solaris where chmod can return 5 which we interpret
as auth failure and stop trying become tmpdir permission fallbacks
- become - work around setfacl not existing on modern Solaris (and possibly
failing on some filesystems even when it does exist)
- - callback default, now uses task delegate_to instead of delegate vars to display
- delegate to host
- - callbacks, restores missing delegate_vars
+ - callbacks, restore displaying delegation to host as host label.
+ - cli defaults for ssh args set to None as '' was bypassing normal default.
+ - command - remove unreachable code path when trying to convert the value for
+ ``chdir`` to bytes (https://github.com/ansible/ansible/pull/75036)
+ - command module, clarify order of remove/creates checks.
+ - command module, correctly handles chdir to symlinks.
+ - command module, move to standarized messages in 'msg' vs abusing 'stdout'.
+ - command module, now all options work in ad-hoc execution.
+ - command module, now always returns what we documented as 'returns always'.
+ - config - use ``callbacks_enabled`` instead ``callback_enabled`` in a deprecated
+ message (https://github.com/ansible/ansible/issues/70028).
+ - config lookup, can also handle collection plugins now
+ - config, ensure 'quoted' lists from ini or env do not take the quotes literally
+ as part of the list item.
+ - connection ssh, no ssh_args cli option, so removed doc entry.
+ - constants, internal _deprecated function always requires version.
- correct doc links for become on warnings over world readable settings.
- correctly use world readable setting since old constant is not 'settable'
anymore.
+ - dnf - align the return value of the list argument with the ``yum`` module
+ (https://github.com/ansible/ansible/issues/75483)
+ - dnf - properly capture transaction error (https://github.com/ansible/ansible/issues/72651)
+ - dnf - refactor code to use `dnf whatprovides` API (https://github.com/ansible/ansible/issues/73503).
+ - dnf - support non-english environments (https://github.com/ansible/ansible/issues/75021)
+ - dnf module - Use all components of a package name to determine if it's installed
+ (https://github.com/ansible/ansible/issues/75311).
+ - do not trigger interpreter discovery in the forced_local module path as they
+ should use the ansible playbook python unless otherwise configured.
- facts - detect homebrew installed at /opt/homebrew/bin/brew
+ - facts, service_mgr, handle issues if ps command fails or returns empty.
- filter plugins - patch new versions of Jinja2 to prevent warnings/errors on
renamed filter decorators (https://github.com/ansible/ansible/issues/74667)
+ - find - fix a bug where ``size`` argument was ignored for regular files with
+ ``file_type`` of ``any``.
+ - find action, correctly convert path to text when warning about skiping.
+ - find does not ignore errors from os.walk anymore and issues warnings as expected.
+ - gather_facts, improved message on timeout.
+ - gather_facts, package, service - fix using module_defaults for the modules
+ in addition to the action plugins. (https://github.com/ansible/ansible/issues/72918)
+ - get_bin_path, clarify with quotes what the missing required executable is.
- get_url - Fixed checksum validation for binary files (leading asterisk) in
checksum files (https://github.com/ansible/ansible/pull/74502).
+ - getent, fix return data for when there are multiple results for the same key
+ - git - Fix git path used when .git file is present (https://github.com/ansible/ansible/issues/75608).
+ - host_group_vars vars plugin fixed ini entry, section and key were reversed.
- hostname - Add Rocky Linux support
+ - hostname - No longer modifies system files in get_* methods and therefore
+ when consulted in check_mode (https://github.com/ansible/ansible/issues/66432)
+ - include - Remove deprecated ``static`` argument for ``include`` (https://github.com/ansible/ansible/issues/74135)
+ - includes - Remove the deprecated ability to specify ``tags`` as ``vars`` on
+ includes (https://github.com/ansible/ansible/issues/74144)
+ - ini lookup - better error on mixed/bad parameters
- ini lookup - handle errors for duplicate keys and missing sections (https://github.com/ansible/ansible/issues/74601)
- interpreter discovery - Debian 8 and lower will avoid unsupported Python3
version in interpreter discovery
+ - interpreter discovery is now handling special (ansible_network_os) cases in
+ less noisy ways.
+ - interpreter_discovery - hide warning 'No python interpreters...' when ANSIBLE_PYTHON_INTERPRETER=auto_silent
+ (https://github.com/ansible/ansible/issues/74274).
+ - module_common - handle exception when multiple workers try to create the cache
+ directory
+ - module_defaults - Fix action defaults for legacy actions/modules (https://github.com/ansible/ansible/issues/75279).
+ - module_utils - detect symlinked init systems, even if unable to read /proc/1/comm
+ (https://github.com/ansible/ansible/issues/74866).
+ - netconf - catch and handle exception to prevent stack trace when running in
+ FIPS mode
+ - network module_utils - fix bug where ``to_bits()`` returned the ``str`` type
+ instead of a useful value.
+ - paramiko_ssh - mark connection as connected when ``_connect()`` is called
+ (https://github.com/ansible/ansible/issues/74081)
+ - password - Handle passlib wrapped algos bsd_nthash, django_argon2, django_bcrypt,
+ ldap_bcrypt, ldap_bsdi_crypt, ldap_des_crypt, ldap_hex_md5, ldap_hex_sha1,
+ ldap_md5_crypt, ldap_pbkdf2_sha1, ldap_pbkdf2_sha256, ldap_pbkdf2_sha512,
+ ldap_sha1_crypt, ldap_sha256_crypt, ldap_sha512_crypt, roundup_plaintext (https://github.com/ansible/ansible/pull/75527).
- pause - ensure control characters are always set to an appropriate value (https://github.com/ansible/ansible/issues/73264)
+ - pkg_mgr.py - Lower the priority of rpm-ostree detection to avoid false positives
+ on systems not using it as the main package manager (https://github.com/ansible/ansible/issues/74578)
+ - play - validate the ``hosts`` entry in a play (https://github.com/ansible/ansible/issues/65386)
- playbook loaded from collection subdir now does not ignore subdirs.
- plugin config now allows list type options to have multiple valid choices
(#74225).
+ - psrp - Always cleanup the last run pipeline if a second pipeline is invoked
+ to avoid violating any resource limits.
+ - psrp - Fix error when resetting a connection that was initialised but not
+ connected - (https://github.com/ansible/ansible/issues/74092).
+ - psrp - Try to clean up any server-side resources when resetting a connection.
+ - recursive_diff - handle condition when parameters are not dict (https://github.com/ansible/ansible/issues/56249).
+ - register - Ensure that ``register`` used on ``set_fact`` or ``include_vars``
+ does not automatically wrap the facts as unsafe. (https://github.com/ansible/ansible/issues/21088)
+ - rekey_on_member - handle undefined positional arguments better.
+ - remote tmpdir permissions - fix type error in macOS chmod ACL fallback (https://github.com/ansible/ansible/pull/74613).
- replace - better handling of file operation exceptions (https://github.com/ansible/ansible/pull/74686).
- roles - allow for role arg specs in new meta file (https://github.com/ansible/ansible/issues/74525).
+ - roles - fix unexpected ``AttributeError`` when an empty ``argument_specs.yml``
+ is present (https://github.com/ansible/ansible/pull/75604).
+ - roles - make sure argspec validation task is tagged with ``always`` (https://github.com/ansible/ansible/pull/74994).
+ - roles - make sure argspec validation task templates suboptions (https://github.com/ansible/ansible/issues/75070).
+ - schema validation now uses dynamic range of versions for valid deprecation
+ entries vs hardcoded out of date list.
+ - script inventory plugin - Remove deprecated caching support (https://github.com/ansible/ansible/issues/74143)
+ - sequence - fix error message so that unrecognized options to the plugin display
+ correctly as a list and normalize error messages.
- service - compare version without LooseVersion API (https://github.com/ansible/ansible/issues/74488).
+ - set ssh host_key_checking defaults to True, restoring original behaviour (https://github.com/ansible/ansible/issues/75168)
+ - setup module should now not truncate hpux interface names.
+ - setup module, fix filter to adjust for missing ``ansible_`` prefix on query.
+ - setup, while gathering linux hardware facts be more resilient to errors and
+ try to return more info.
+ - slurp - Fix error messages for unreadable files and directories(https://github.com/ansible/ansible/issues/67340).
+ - slurp - handle error when ``path`` is a directory and not a file (https://github.com/ansible/ansible/pull/74930).
+ - slurp - improve the logic in the error handling and remove ``os.stat()`` call
+ (https://github.com/ansible/ansible/pull/75038)
+ - ssh connection now correctly handle ssh_transfer_method and scp_if_ssh interactions.
+ - ssh connection, fix interaction between trasnfer settings options.
+ - ssh connection, use self.host which has the most up2date info instead of pc.remote_addr
+ - ssh_connection - rename ``retries`` to ``reconnection_retries`` to avoid conflicts
+ with task vars (https://github.com/ansible/ansible/issues/75142).
+ - ssh_connection - set the default for ``reconnection_retries`` back to ``0``
+ (https://github.com/ansible/ansible/issues/75142).
+ - subversion - fix stack trace when getting information about the repository
+ (https://github.com/ansible/ansible/issues/36498)
+ - system_service - use a context manager for file handling.
+ - task_executor, Actions using AnsibleActionFail/Skip will now propagate 'results'
+ if given
+ - task_executor/ssh_connection - use the ``retries`` value from ``ssh_connection``
+ settings, not the default from the ``Task`` field attributes (https://github.com/ansible/ansible/issues/75142).
+ - template - ensure Jinja2 overrides from template header are used (https://github.com/ansible/ansible/issues/75275)
+ - unarchive - allow extracting archives that contain files which size exceeds
+ free system memory (https://github.com/ansible/ansible/issues/73985).
+ - unarchive - fail when zipinfo binary is not found in executable paths (https://github.com/ansible/ansible/issues/39029).
+ - unarchive - move failure for missing binary to ``can_handle_archive()`` rather
+ than ``__init__()``
+ - uri - Fix traceback and provide error message when trying to use non-string
+ or mapping for ``form-multipart`` body - https://github.com/ansible/ansible/issues/74276
+ - urls - Fix logic in matching ``unredirected_headers`` to perform case insensitive
+ matching
+ - validate_argument_spec, correct variable precedence and merge method and add
+ missing examples
+ - variable manager, avoid sourcing delegated variables when no inventory hostname
+ is present. This affects scenarios like syntax check and imports.
+ - version test - improve error message when an empty version is provided
+ - yum - Fixed typo in failure message (https://github.com/ansible/ansible/pull/72964).
+ - yum - When upgrading, every architecture of a package is now included in the
+ module results, instead of just one (https://github.com/ansible/ansible/issues/73284).
+ - yum - fix ``yumstate`` return value when wildcards are used in the ``list``
+ argument (https://github.com/ansible/ansible/issues/74557)
+ - yum - fix parsing of multiple subsequent empty lines from ``yum check-update``
+ output (https://github.com/ansible/ansible/issues/70949)
+ - yum - yum action plugin changes to support 'use' as an alias of 'use_backend'
+ (https://github.com/ansible/ansible/issues/70774).
+ deprecated_features:
+ - ansible-test - The ``--docker-no-pull`` option is deprecated and has no effect.
+ - ansible-test - The ``--no-pip-check`` option is deprecated and has no effect.
+ - include action is deprecated in favor of include_tasks, import_tasks and import_playbook.
+ - module_utils' FileLock is scheduled to be removed, it is not used due to its
+ unreliable nature.
+ known_issues:
+ - ansible-test - Tab completion anywhere other than the end of the command with
+ the new composite options will provide incorrect results. See https://github.com/kislyuk/argcomplete/issues/351
+ for additional details.
+ major_changes:
+ - Python Controller Requirement - Python 3.8 or newer is required for the control
+ node (the machine that runs Ansible) (https://github.com/ansible/ansible/pull/74013)
+ - ansible-test - All "cloud" plugins which use containers can now be used with
+ all POSIX and Windows hosts. Previously the plugins did not work with Windows
+ at all, and support for hosts created with the ``--remote`` option was inconsistent.
+ - ansible-test - Collections can now specify controller and target specific
+ integration test requirements and constraints. If provided, they take precedence
+ over the previously available requirements and constraints files.
+ - ansible-test - Integration tests run with the ``integration`` command can
+ now be executed on two separate hosts instead of always running on the controller.
+ The target host can be one provided by ``ansible-test`` or by the user, as
+ long as it is accessible using SSH.
+ - ansible-test - Most container features are now supported under Podman. Previously
+ a symbolic link for ``docker`` pointing to ``podman`` was required.
+ - ansible-test - New ``--controller`` and ``--target`` / ``--target-python``
+ options have been added to allow more control over test environments.
+ - ansible-test - Python 3.8 - 3.10 are now required to run ``ansible-test``,
+ thus matching the Ansible controller Python requirements. Older Python versions
+ (2.6 - 2.7 and 3.5 - 3.10) can still be the target for relevant tests.
+ - ansible-test - SSH port forwarding and redirection is now used exclusively
+ to make container ports available on non-container hosts. When testing on
+ POSIX systems this requires SSH login as root. Previously SSH port forwarding
+ was combined with firewall rules or other port redirection methods, with some
+ platforms being unsupported.
+ - ansible-test - Sanity tests always run in isolated Python virtual environments
+ specific to the requirements of each test. The environments are cached.
+ - ansible-test - Sanity tests are now separated into two categories, controller
+ and target. All tests except ``import`` and ``compile`` are controller tests.
+ The controller tests always run using the same Python version used to run
+ ``ansible-test``. The target tests use the Python version(s) specified by
+ the user, or all available Python versions.
+ - ansible-test - Sanity tests now use fully pinned requirements that are independent
+ of each other and other test types.
+ - ansible-test - Tests run with the ``centos6`` and ``default`` test containers
+ now use a PyPI proxy container to access PyPI when Python 2.6 is used. This
+ allows tests running under Python 2.6 to continue functioning even though
+ PyPI is discontinuing support for non-SNI capable clients.
+ - ansible-test - The ``future-import-boilerplate`` and ``metaclass-boilerplate``
+ sanity tests are limited to remote-only code. Additionally, they are skipped
+ for collections which declare no support for Python 2.x.
+ - ansible-test - The ``import`` and ``compile`` sanity tests limit remote-only
+ Python version checks to remote-only code.
+ - ansible-test - Unit tests for controller-only code now require Python 3.8
+ or later.
+ - ansible-test - Version neutral sanity tests now require Python 3.8 or later.
+ - junit callback - The ``junit_xml`` and ``ordereddict`` Python modules are
+ no longer required to use the ``junit`` callback plugin.
minor_changes:
+ - Add ``end_batch`` meta task.
+ - Allow connection and become passwords to be set by file/executable script.
+ Also document this was already the case for vault.
+ - CLI - Remove ``__requires__`` attribute for ``pkg_resources``
+ - Collections can define action_groups in ``meta/runtime.yml``.
+ - Introduce a config option to enable/disable emitting warning about Jinja2
+ version being old for ``jinja2_native``. The option is on by default, only
+ in CI it is off.
+ - Make the code structure of ansible-doc's generic snippet feature more maintainable.
+ - On RHEL 9, CentOS Stream 9 etc., use /usr/bin/python3 as the default interpreter;
+ /usr/libexec/platform-python is just a backwards-compatibility symbolic link
+ there.
+ - PowerShell - Added support for optional module_util imports by scanning for
+ ``-Optional`` at the end of the import declaration
+ - Python 2.6 Target Support - Deprecate Python 2.6 for targets, requiring Python
+ 2.7 or newer. ``ansible-core==2.13`` will drop support for Python 2.6. (https://github.com/ansible/ansible/pull/74165)
+ - Task - Add a resolved_action attribute for Task objects to get the final resolved
+ plugin.
+ - Templar - remove ``_fail_on_lookup_errors`` and ``_fail_on_filter_errors``
+ instance variables that were never used. (https://github.com/ansible/ansible/pull/73785)
+ - The AnsiballZ Python wrapper now changes the working directory to ``~`` or
+ ``/`` if the current one is not accessible. This allows become to drop privileges
+ on macOS when using pipelining.
+ - Update test container ansible-core-test-container to version 3.6.0
+ - Update test container ansible-core-test-container to version 3.7.0
+ - Update test container default-test-container to version 3.6.0
+ - Update test container default-test-container to version 3.7.0
+ - Update vendored copy of ``six`` to 1.16.0 to eliminate warnings for deprecated
+ python loader methods in Python 3.10+ (https://github.com/ansible/ansible/issues/74659)
+ - Update vendored copy of distro to 1.6.0
+ - Vendor ``distutils.version`` due to it's deprecation in Python 3.10 and impending
+ removal in Python 3.12 (https://github.com/ansible/ansible/issues/74599)
+ - YAML parsing - Create common utils for loading and dumping YAML that prefer
+ the C extensions if available
+ - '``include_role`` - Allow use of ``omit`` in the ``from_*`` arguments (https://github.com/ansible/ansible/issues/66349)'
+ - '``uri``/``get_url`` - Expose ``unredirected_headers`` to modules to allow
+ user control
+
+ '
+ - '`ansible.plugins.callback.CallbackBase.host_label()` has been factored out
+ as a static method (https://github.com/ansible/ansible/pull/73814).'
+ - action_groups can include actions from other groups by using the special ``metadata``
+ dictionary field.
+ - add a quick short circuit when checking if a string is a template to improve
+ performance on large strings (https://github.com/ansible/ansible/issues/74336)
+ - add host label to retry print statements
+ - added new function to module utils to choose best possible locale.
+ - adds the ``undef`` keyword to the templating environment. This allows for
+ directly creating Undefined values in templates. It is most useful for providing
+ a hint for variables which must be overridden.
+ - ansbile-doc now also shows snippets for inventory and lookup, adding to existing
+ modules.
- ansible adhoc, clarified the help to some options, also added some comments
to code.
+ - ansible-cli - remove unnecessary trailing space in ``ansible --version`` (https://github.com/ansible/ansible/issues/74875).
+ - ansible-config can now list and dump for specific documentable plugins by
+ specifying them in the command line
+ - ansible-config has new 'init' option to create, highly commented, example
+ configurations as ini (ansible.cfg), environment variables (shell) or Ansible
+ variable files (YAML)
+ - ansible-config now supports displaying plugin configuration info.
+ - ansible-doc - ``version_added`` in ``attributes`` now comes with ``version_added_collection``
+ (https://github.com/ansible/ansible/pull/74602).
+ - ansible-doc - show ``version_added`` for the plugin/module itself in text
+ output, and improve ``version_added`` formatting (https://github.com/ansible/ansible/pull/73602).
+ - ansible-doc now supports 'attributes' for plugins as per proposal.
+ - ansible-doc pretty cli options output.
+ - ansible-doc, improve handling of rstisms, try to make the display more meaningfull
+ for the terminal users.
+ - ansible-galaxy - Allow specification of client_id override value for Keycloak
+ Token (https://github.com/ansible/ansible/issues/75593).
+ - ansible-galaxy - Allow validate_certs to be configured for individual Galaxy
+ servers (https://github.com/ansible/ansible/issues/75677).
+ - ansible-galaxy - Installing a collection from a git repository without specifying
+ a version (or using the version ``HEAD``) will clone the repository using
+ --depth=1.
+ - ansible-galaxy - Non-HTTP exceptions from Galaxy servers are now a warning
+ and only fatal if the collection to download|install|verify is not available
+ from any of the servers (https://github.com/ansible/ansible/issues/75443).
+ - ansible-test - A new ``base`` test container is available. It is similar to
+ the ``default`` test container, but contains no pre-installed Python packages
+ other than ``pip`` and its dependencies.
+ - ansible-test - Add RHEL 8.4 as a remote.
+ - ansible-test - Add ``--prime-venvs`` option to create virtual environments
+ without running tests.
+ - ansible-test - Add constraint for ``decorator`` for Python versions prior
+ to 3.5.
+ - ansible-test - Add support for Windows Server 2022.
+ - ansible-test - Add support for an ansible-test configuration file in collections
+ under ``tests/config.yml``.
+ - ansible-test - Add support for testing with Python 3.10.
+ - ansible-test - Added a ``--prime-containers`` option to support downloading
+ containers without running tests.
+ - ansible-test - Adding DigitalOcean cloud support to ansible-test (https://github.com/ansible/ansible/pull/74222).
+ - ansible-test - All "cloud" plugins have been refactored for more consistency.
+ For those that use docker containers, management of the containers has been
+ standardized.
+ - ansible-test - All "cloud" plugins now use fixed hostnames and ports in tests.
+ Previously some tests used IP addresses and/or randomly assigned ports.
+ - ansible-test - Changes made to the ``hosts`` file on test systems are now
+ done using an Ansible playbook for both POSIX and Windows systems. Changes
+ are applied before a test target runs and are reverted after the test target
+ finishes.
+ - ansible-test - Clean up code in the cloud plugins.
+ - ansible-test - Collections can declare their remote-only code (modules/module_utils
+ and related tests) as controller-only.
+ - ansible-test - Collections can limit the Python versions used for testing
+ their remote-only code (modules/module_utils and related tests).
+ - ansible-test - Command line help has been updated to hide the ``--remote``
+ option (and related options) when the user lacks an API key to use the feature.
+ - ansible-test - Constraints provided by ``ansible-test`` for Python package
+ installs have been reduced.
+ - ansible-test - Default settings are now applied to unknown versions of known
+ ``--remote`` platforms.
+ - ansible-test - Distribution specific test containers have been updated to
+ version 3.0.0.
+ - ansible-test - Environment checking (``pip``, ``python``, ``~/.ssh/known_hosts``,
+ etc.) is no longer performed when running integration tests.
+ - ansible-test - Environment variables exposed by "cloud" plugins are now available
+ to the controller for role based tests. Previously only script based tests
+ had access to the exposed environment variables.
+ - ansible-test - Fedora 32 and 33 (``fedora32`` and ``fedora33``) containers
+ have been updated and now allow for ssh in more container environments.
+ - ansible-test - Fedora 34 (``fedora34``) container has been added.
+ - ansible-test - Installation of ``cryptography`` no longer occurs when it is
+ already installed. This avoids downgrading existing OS packages.
+ - ansible-test - Minor code cleanup.
+ - ansible-test - More efficient string splitting.
+ - ansible-test - Most scripts used internally by ``ansible-test`` no longer
+ have a shebang or the executable bit set.
+ - ansible-test - Move code from ``_data`` directory to ``_util`` directory.
+ - ansible-test - Relocate change classification code.
+ - ansible-test - Remove CI provider support for Shippable, now that the service
+ has been discontinued.
+ - ansible-test - Remove check for legacy ``core`` and ``extras`` directories.
+ - ansible-test - Remove deprecated container ``fedora32``.
+ - ansible-test - Remove deprecated remote platforms ``freebsd/11.4`` and ``rhel/8.3```.
+ - ansible-test - Removed the warning filter for ``PyYAML`` in the ``import``
+ sanity test.
+ - ansible-test - Removed unused pip constraints. Collections may need to add
+ their own constraints if they depended on any which were removed.
+ - ansible-test - Reorganize code for individual commands.
+ - ansible-test - Reorganize integration test implementation by command.
+ - ansible-test - Rewrite the ``compile`` sanity test to improve error handling
+ and support Python 3.10.
+ - ansible-test - Sanity test warnings relating to Python version support have
+ been improved.
+ - ansible-test - Set minimum version constraints for ``pytest``.
+ - ansible-test - Split out shell command implementation.
+ - ansible-test - The "injector" scripts are now generated at runtime to avoid
+ issues with symlinks and shebangs.
+ - ansible-test - The HTTP Tester can now be used without the ``--docker`` or
+ `--remote`` options. It still requires use of the ``docker`` command to run
+ the container.
+ - ansible-test - The HTTP Tester has been converted to a "cloud" plugin and
+ can now be requested using the ``cloud/httptester`` alias. The original ``needs/httptester``
+ alias is still supported for backwards compatibility.
+ - ansible-test - The ``--docker-keep-git`` option (used only for testing ansible-core)
+ has been renamed to ``--keep-git``.
+ - ansible-test - The ``--python`` option can be used without another delegation
+ option such as the ``--venv`` or ``--docker`` options.
+ - ansible-test - The ``ansible-test coverage`` commands ``combine``, ``report``,
+ ``html`` and ``xml`` now support delegation.
+ - ansible-test - The ``default`` test container has been updated to version
+ 3.4.0 and now uses Python 3.9 by default instead of Python 3.6.
+ - ansible-test - The ``docker run`` option ``--link`` is no longer used to connect
+ test containers. As a result, changes are made to the ``/etc/hosts`` file
+ as needed on all test containers. Previously containers which were used with
+ the ``--link`` option did not require changes to the ``/etc/hosts`` file.
+ - ansible-test - The ``import`` sanity test now requires that Ansible modules
+ guard instantiation of ``AnsibleModule`` with a ``if __name__ == '__main__'``
+ conditional, or equivalent logic.
+ - ansible-test - The ``import`` sanity test now requires that non-modules do
+ not instantiate ``AnsibleModule`` on import.
+ - ansible-test - The ``validate-modules`` sanity test codes ``ansible-deprecated-module``
+ and ``collection-deprecated-module`` have been added.
+ - ansible-test - The ``validate-modules`` sanity test codes ``last-line-main-call``,
+ ``missing-if-name-main`` and ``missing-main-call`` have been removed.
+ - ansible-test - The ``validate-modules`` sanity test no longer enforces the
+ ``missing-if-name-main``, ``last-line-main-call`` or ``missing-main-call``
+ checks on non-deleted Ansible modules. Modules are still required to instantiate
+ ``AnsibleModule`` when ``__name__ == '__main__'``.
+ - ansible-test - Unit tests are now run in separate contexts (``controller``,
+ ``modules``, ``module_utils``), each using separate invocations of ``pytest``.
+ - ansible-test - Unit tests other than ``modules`` and ``module_utils`` are
+ now run only on Python versions supported by the controller (Python 3.8+).
+ - ansible-test - Update ``typed-ast`` constraint to version 1.4.3 for compatibility
+ with Python 3.10.
+ - ansible-test - Update distribution test containers from version 2.0.1 to 2.0.2.
+ - ansible-test - Update the Ansible Core and Ansible Collection default test
+ containers to 3.2.0 and 3.2.2 respectively.
+ - ansible-test - Update the ``import`` sanity test to avoid a new warning in
+ Python 3.10.
+ - ansible-test - Update the ``runtime-metadata`` sanity test to handle a new
+ warning on Python 3.10.
+ - ansible-test - Updated the ``default`` containers to version 4.0.1.
+ - ansible-test - Updated the help message for failed tests in the ``azure``
+ test plugin.
+ - ansible-test - Upgrade ``pylint`` to version 2.9.3 and update its dependencies
+ to the latest versions as well.
+ - ansible-test - Using an unknown ``--docker`` or ``--remote`` environment now
+ requires specifying a Python version.
+ - ansible-test - add freebsd/13.0 as a remote option.
+ - ansible-test - aws creates and exposes a new tiny_prefix variable to provide
+ a shorter prefix for the AWS tests.
+ - ansible-test - display recent ``ssh`` debug logs after connection failures
+ (https://github.com/ansible/ansible/pull/75374)
+ - ansible-test - validate-modules now properly checks ``attributes`` for plugins
+ (https://github.com/ansible/ansible/pull/74602).
+ - ansible-test - virtualenv-isolated.sh is no longer provided. Prefer virtualenv.sh
+ in its place.
+ - ansible-test validate-modules - enforce that ``_info`` and ``_facts`` modules
+ set ``supports_check_mode=True`` (https://github.com/ansible/ansible/pull/75324).
+ - ansible-vault - remove support for ``PyCrypto`` (https://github.com/ansible/ansible/issues/72646)
+ - apt - added an ``allow_downgrade`` option to enable safe downgrade of packages
+ without using ``force`` which doesn't verify signatures (https://github.com/ansible/ansible/issues/29451,
+ https://github.com/ansible/ansible/pull/74852).
+ - apt, added a 'lock_timeout' to be more resilient when encountering the apt
+ db already locked and handle it w/o haveing to rerun task.
+ - async tasks - the use of the task-level ``ANSIBLE_ASYNC_DIR`` variable within
+ ``environment:`` is no longer valid. Use the shell configuration variable
+ ``async_dir`` instead.
+ - async_wrapper, better reporting on timeout, slight refactor on reporting itself.
+ - basic module_util - Clean up ``selinux`` compat import.
+ - blockinfile - Remove unused code for Ansible 1.x.
+ - cache base - More efficient string splitting.
+ - callback API - implemented ``v2_runner_on_async_ok`` and ``v2_runner_on_async_failed``
+ callbacks (https://github.com/ansible/ansible/pull/74953).
+ - cli scripts - remove trailing blank space in help after newline when outputting.
+ - collection - match skip message as per role installation.
- command - update the user warning message to point out command name (https://github.com/ansible/ansible/pull/74475).
- release_summary: '| Release Date: 2021-05-17
+ - config lookup now can handle plugin settings.
+ - config, default site for ansible-core is now under /ansbile-core/.
+ - connection base - Avoid using deprecated ``@abstractproperty`` decorator.
+ - constructed - a new options ``trailing_separator`` and ``default_value`` to
+ deal with key's value empty on keyed group.
+ - cron - ``name`` is now a required parameter always
+ - 'cron - ``reboot`` parameter has been dropped in favor of ``special_time:
+ reboot``'
+ - cron, removed previously deprecated 'reboot' and now requires either 'name'
+ as unique identifier.
+ - default callback plugin - displays output for ``v2_runner_on_async_ok`` and
+ ``v2_runner_on_async_failed`` callbacks.
+ - deprecate ``_remote_checksum()`` and remove all internal uses (https://github.com/ansible/ansible/pull/74848)
+ - dnf - Add ``cacheonly`` option (https://github.com/ansible/ansible/issues/69397).
+ - dnf - allow for ``download_only`` to be run without root privileges (https://github.com/ansible/ansible/issues/75530)
+ - encrypt - add new parameter ``ident`` to specify version of BCrypt algorithm
+ to be used (https://github.com/ansible/ansible/issues/74571).
+ - fact cache - Remove deprecated backwards compatibility shim for the FactCache
+ `update` method to accept multiple arguments.
+ - fact cache - Remove the deprecated location for FactCache. Import FactCache
+ from `ansible.vars.fact_cache` instead.
+ - facts - add fiber channel facts for HP-UX (https://github.com/ansible/ansible/pull/57406)
+ - galaxy - support role artifact download from API response ``download_url``
+ location (https://github.com/ansible/ansible/issues/73103).
+ - 'get_distribution - ``lib.ansible.module_utils.common.sys_info.get_distribution``
+ now returns distribution information for all platforms not just Linux (https://github.com/ansible/ansible/issues/17587)
+
+ '
+ - 'get_distribution_version - ``lib.ansible.module_utils.common.sys_info.get_distribution_version``
+ now returns the version for all platfroms not just Linux (https://github.com/ansible/ansible/issues/17587)
+
+ '
+ - git - Add ``accept_newhostkey`` option (https://github.com/ansible/ansible/issues/69846).
+ - hostname - add support RedOS (https://github.com/ansible/ansible/issues/74779).
+ - import_role - Template tasks_from, vars_from, defaults_from, and handlers_from
+ with --extra-vars (https://github.com/ansible/ansible/issues/69097).
+ - include_vars - add ``hash_behaviour`` option (https://github.com/ansible/ansible/pull/72944).
+ - ini - added new parameter ``allow_no_value`` to ini lookup plugin (https://github.com/ansible/ansible/issues/50594).
+ - ini lookup - add case sensitive option (https://github.com/ansible/ansible/issues/74601)
+ - interpreter discovery - allow the default list of ``INTERPRETER_PYTHON_FALLBACK``
+ to be changed using a variable
+ - interpreter discovery - prefer Python 3 over Python 2
+ - inventory plugins - Remove the deprecated cache interface. Set top level keys
+ in the inventory plugin's `_cache` attribute (a dictionary) instead.
+ - jinja2_native - short-circuit ``ast.literal_eval`` for non-string values
+ - module_utils distro - when a 'distro' package/module is in PYTHONPATH but
+ isn't the real 'distro' package/module that we expect, gracefully fall back
+ to our own bundled distro.
+ - modules - add Anolis distro in hostname.py. project website https://openanolis.org/
+ - move all builtin modules to use the best possible locale function instead
+ of hardcoding 'C'.
+ - password - add new parameter ``ident`` to specify version of BCrypt algorithm
+ to be used (https://github.com/ansible/ansible/issues/74571).
+ - password - add new parameter ``seed`` in lookup plugin (https://github.com/ansible/ansible/pull/69775).
+ - password_hash uses passlib default if option isn't set
+ - playbook - Error if a playbook is an empty list instead of just skipping
+ - playbook - Error if using ``include`` instead of ``import_playbook``
+ - replaced examples/ansible.cfg with instructions on how to generate an up to
+ date copy.
+ - service - add description how service module works internally (https://github.com/ansible/ansible/issues/74507).
+ - service_facts now handles more states/statuses from systemd and in a more
+ reliable way (failed, not-found, masked).
+ - setup - add ``epoch_int`` option to date_time facts (https://github.com/ansible/ansible/pull/73822).
+ - ssh - added pkcs11 support by adding the pkcs11_provider option in the ssh
+ connection module. (https://www.github.com/ansible/ansible/pull/32829)
+ - ssh connection, can not configure ssh_transfer_method with a variable.
+ - ssh connection, ssh_transfer_method is now configurable via variable.
+ - subelements lookup - Use generator in instance type check.
+ - tempfile - Remove unnecessary conditional for creating a temporary directory.
+ - template - Add comment attributes (``comment_start_string`` and ``comment_end_string``)
+ - unicode utils - Fix ``__all__`` which was incorrectly declared as a string
+ instead of a tuple.
+ - user - Add ``umask`` option (https://github.com/ansible/ansible/issues/40359).
+ - user module - Remove unused code.
+ - validation testcases for check_* APIs (https://github.com/ansible/ansible/issues/55994).
+ - winrm - Allow explicit environment variables to be passed through to the ``kinit``
+ call for Kerberos authentication
+ - yaml dumper - YAML representer for AnsibleUndefined (https://github.com/ansible/ansible/issues/75072).
+ - yum - Add ``cacheonly`` option (https://github.com/ansible/ansible/issues/69397).
+ release_summary: '| Release Date: 2021-09-27
| `Porting Guide <https://docs.ansible.com/ansible/devel/porting_guides.html>`__
'
- codename: Hey Hey, What Can I Do
+ removed_features:
+ - The built-in module_util ``ansible.module_utils.common.removed`` was previously
+ deprecated and has been removed.
+ - connections, removed password check stubs that had been moved to become plugins.
+ - task, inline parameters being auto coerced into variables has been removed.
+ security_fixes:
+ - templating engine fix for not preserving usnafe status when trying to preserve
+ newlines. CVE-2021-3583
+ codename: Dazed and Confused
fragments:
+ - 17587-get-distribution-more-distros.yml
+ - 21088-no-auto-unsafe-set-fact-include-vars-with-register.yml
+ - 212-py26-deprecation.yml
+ - 29457-deprecate-remote_checksum.yml
+ - 32829-ssh-connection-module-add-pkcs11-support.yml
+ - 36498-subversion-fix-info-parsing.yml
+ - 37187-catch-cond-tmpl-errors.yml
+ - 39029_unarchive.yml
+ - 50594_ini.yml
+ - 55994_testcases.yml
+ - 56249_recursive_diff.yml
+ - 57378-inventory-cli-unicode.yml
+ - 57406-hpux-fc-info.yml
+ - 61185-basic.py-fix-check_mode.yaml
+ - 65227.yml
+ - 65386-validate-hosts.yml
+ - 66349-include-role-omit.yml
+ - 66432_hostname_check_mode_writes.yml
+ - 67340-slurp_error_message.yml
+ - 67943_collection_skip.yml
+ - 68525-add-varswithsources-yaml-representer.yml
+ - 69253-template-comment-attribute.yml
+ - 70028-config-small-typo-fix.yml
+ - 70792-yum-action-plugin-use-as-alias-of-use-backend.yml
+ - 70949-yum-parsing-check-update-output-multiple-empty-lines.yml
+ - 71343_yum_repository.yml
+ - 72607.yml
+ - 72651-dnf-capture-transaction-failure.yml
+ - 72944-include_vars-add-hash_behaviour-option.yml
+ - 72964-fixed-typo-in-yum-failure-message.yml
+ - 73114-fix-ansible-role-download.yaml
- 73264-pause-emacs.yml
+ - 73284-yum-multiarch.yml
+ - 73503_dnf_whatprovides.yml
+ - 73602-ansible-doc-version-added.yml
+ - 73814-host_label.yaml
+ - 73819-git-accept_new_host_key.yaml
+ - 73820-yumdnf-add_cacheonly_option.yaml
+ - 73821-user-add_umask_option.yaml
+ - 73822-date_time_facts_add_epoch_int.yaml
+ - 73860-solaris-correct-version-check-in-svcadm_supports_sync.yml
+ - 73864-action-plugin-module-defaults.yml
- 73887.mac-m1-homebrew.yaml
+ - 73926-is-template-play-hosts.yml
+ - 73971-non-batch-end_play.yml
+ - 73985-let-unarchive-handle-huge-files.yml
+ - 73996-recursion-depth.yml
+ - 74005-keyed_groups-specific-options-for-empty-value.yml
+ - 74013-controller-py38-min.yml
- 74036-unsafe-ansible_failed_task.yml
+ - 74039_enable_module_defaults_for_collections.yml
+ - 74081-paramiko-mark-connected.yml
+ - 74127-bad-filter.yml
+ - 74135-remove-include-deprecations.yml
+ - 74136-remove-playcontext-make-become-cmd.yml
+ - 74143-remove-script-cache.yml
+ - 74144-remove-include-vartags.yml
+ - 74222-ansible-test-digitalocean.yml
- 74240-ansible-galaxy-increase-pagesize-and-handle-throttling.yml
+ - 74241-find-checks-size-with-any.yml
+ - 74256-set-theory-filters-behavior.yml
+ - 74274_interpreter_discovery.yml
+ - 74336-is_template-quick-check.yml
+ - 74361-install-collection-from-shallow-git-clone.yml
+ - 74384-validate-modules-yaml.yml
+ - 74404_ansible_inventory.yml
+ - 74472-sequence-lookup.yaml
- 74474-apt_key-gpg-binary-import.yaml
- 74476-apt_key-gpg-inline-data.yaml
+ - 74478-apt_key-gpg-error-check.yaml
- 74488_solaris_looseversion.yml
- 74497-keep-non-empty-crontabs.yml
- 74502-get_url-filx-checksum-binary.yml
+ - 74507_service.yml
+ - 74547-use-python3-on-rhel-9.yaml
+ - 74557-yum-list-wildcard.yml
+ - 74578-fix-ostree-detection.yml
- 74582-role-argspec-new-file.yml
+ - 74599-vendor-distutils.yml
+ - 74601-ini-lookup-add-case-sensitive.yml
- 74601-ini-lookup-handle-errors.yml
+ - 74613-actionfixup_perms2_macos_remote_paths_ensure_list.yml
+ - 74625-fix-ansible_play_batch-between-plays.yml
+ - 74626-remove-pycrypto.yml
+ - 74659-update-six.yml
- 74686-replace-handle-file-exc.yml
+ - 74709-task-resolved_action.yml
+ - 74783-run-command-thread-safety.yml
+ - 74852-apt-allow-downgrade.yaml
+ - 74864-display_failed_stderr-per-item.yml
+ - 74867-service_mgr_runit_detection_fallback.yaml
+ - 74875_ansible_version.yml
+ - 74932-fix-structure-of-snippets.yml
+ - 74949-apt_key_recv_last_arg.yml
+ - 74953-implement-async-callbacks.yml
+ - 74999-ansible-doc-version_added_collection.yml
+ - 75021-dnf-support-non-english-env.yml
+ - 75072_undefined_yaml.yml
+ - 75073-role-argspec-suboption-variables.yaml
+ - 75131-fix-rekey_on_member-lazy-evaluation.yaml
+ - 75142-ssh-retries-collision.yml
+ - 75186-ansible-test-packaging-constraint.yml
+ - 75235-ansible-galaxy-inconsistent-candidate-error.yml
+ - 75244-fix-templated-handler-names.yaml
+ - 75269-import_role-support-from-files-templates.yml
+ - 75275-ensure-jinja2-header-overrides-used.yml
+ - 75284-fix-legacy-module_defaults.yaml
+ - 75324-ansible-test-validate-modules-info-facts-check_mode.yml
+ - 75332-ansible-test-validate-modules-AnsibleModule-args.yml
+ - 75356-add-requirement-to-ansible-test.yml
+ - 75359-update-test-containers.yaml
+ - 75362-add-rhel-8.4-remote.yml
+ - 75371-import_template_globals.yml
+ - 75435-creating-Undefined.yml
+ - 75447-update-test-containers.yaml
+ - 75468_fix_galaxy_server_fallback.yaml
+ - 75483-dnf-align-return-with-yum.yml
+ - 75527_password_lookup_handle_wrapped_algo.yml
+ - 75530-dnf-download_only-non-root.yml
+ - 75547-fix-installing-collections-from-source.yaml
+ - 75568-fix-templating-task-action-host-specific-vars.yml
+ - 75593-ansible-galaxy-keycloak-clientid.yml
+ - 75604-empty-argument-specs.yml
+ - 75608-git-fix-submodule-path.yml
+ - 75710-ansible-galaxy-validate-certs.yml
+ - Templar-remove-fail-on-errors.yml
+ - add-anolis-distro-in-hostname.yaml
- adhoc_help_clarify.yml
+ - adoc_dumps_keywords.yml
+ - advanced-host-list-ref-before-assignment.yml
- allow_lists_of_config_choices.yml
+ - ansiballz-chdir.yml
+ - ansiballz-re-escape-site-packages.yml
+ - ansible-pull-doc-update.yml
+ - ansible-test-add-ssh-debug-logging.yml
- ansible-test-azp-build-api.yml
+ - ansible-test-azure-plugin-help-cleanup.yml
+ - ansible-test-cache-plugin.yml
+ - ansible-test-change-classification-reorg.yml
+ - ansible-test-cleanup-deprecated.yml
+ - ansible-test-cloud-plugin-code-cleanup.yml
+ - ansible-test-code-cleanup.yml
+ - ansible-test-config.yml
+ - ansible-test-connection-units-init.yml
+ - ansible-test-constraints.yaml
+ - ansible-test-container-overhaul.yml
+ - ansible-test-coverage-delegation.yml
+ - ansible-test-coverage-traceback.yml
+ - ansible-test-decorator-constraint.yml
+ - ansible-test-default-container.yml
+ - ansible-test-default-containers-3.2.yml
+ - ansible-test-default-containers.yml
+ - ansible-test-diff-prefix-optional.yml
+ - ansible-test-distro-containers-2.0.2.yml
+ - ansible-test-distro-containers.yaml
- ansible-test-docker-network-detect.yml
+ - ansible-test-fedora-34.yml
+ - ansible-test-freebsd-13.yml
+ - ansible-test-import-pyyaml-warning.yml
+ - ansible-test-injector.yml
+ - ansible-test-main-check.yml
- ansible-test-markupsafe-constraint.yml
+ - ansible-test-min-controller-python.yml
+ - ansible-test-no-cryptograpy-downgrade.yml
+ - ansible-test-nuke-venv-isolated.yml
+ - ansible-test-prime-containers.yml
+ - ansible-test-pylint-typed-ast.yml
+ - ansible-test-pylint-upgrade.yml
- ansible-test-pypi-container-no-publish.yml
+ - ansible-test-pypi-test-container.yml
+ - ansible-test-pytest-constraints.yml
+ - ansible-test-python-3.10.yml
+ - ansible-test-refactor-commands.yml
+ - ansible-test-refactor-integration.yml
+ - ansible-test-remove-legacy-check.yml
+ - ansible-test-remove-shippable.yml
+ - ansible-test-removed-module.yml
+ - ansible-test-sanity-compile.yml
+ - ansible-test-sanity-import-python-3.10.yml
+ - ansible-test-sanity-prime-venvs.yml
+ - ansible-test-sanity-runtime-metadata.yml
+ - ansible-test-shell-command.yml
+ - ansible-test-split-controller-target.yaml
+ - ansible-test-split-unit-tests.yml
+ - ansible-test-utils.yml
+ - ansible-test-windows-server-2022.yaml
+ - ansible-test_inspect-ports-on-all-interfaces.yml
+ - ansible_config_plugins.yml
+ - apt_lock_timeout.yml
+ - arg_spec-remove-unused-imports.yml
+ - async_status_fixes.yml
+ - async_unremove_redeprecate.yml
+ - async_wrapper_reporting.yml
+ - aws_tiny_prefix.yaml
+ - best_locale.yml
+ - better_timeout_msg.yml
+ - blockinfile-unused-code.yml
+ - blowfish_ident.yml
+ - c_deprecatd.yml
+ - cache-deprecations.yml
+ - clarify_missing_exe.yml
+ - cli-space-after-help-text.yml
- cmd_wording.yml
+ - code-cleanup.yml
- coll_pb_subdir_fixes.yml
+ - command-remove-unreachable-code.yml
+ - command_deliver_promisses.yml
+ - concurrency-cache-dir-collision.yml
+ - conditional-bare-vars.yml
+ - config_lists_unquote.yml
+ - config_lookup_fix.yml
+ - config_lookup_plugins.yml
+ - config_updates.yml
+ - coverage-pwsh-stubs.yml
+ - cron-deprecations.yml
+ - cron_removals.yml
- crypt_missing.yml
- debian8_discovery.yml
- - jinja2_decorator_renames.yml
- - macos-solaris-regression.yml
- - missing_delegate_vars.yml
- - solaris-setfacl-chmod-fallback.yml
- - ssh_port_default_fix.yml
- - support_rocky_linux_hostname.yml
- - support_rockylinux.yml
- - v2.11.1rc1_summary.yaml
- - world_readable_fixes.yml
- release_date: '2021-05-17'
- 2.11.2:
- changes:
- release_summary: '| Release Date: 2021-06-22
-
- | `Porting Guide <https://docs.ansible.com/ansible/devel/porting_guides.html>`__
-
- '
- codename: Hey Hey, What Can I Do
- fragments:
- - v2.11.2_summary.yaml
- release_date: '2021-06-22'
- 2.11.2rc1:
- changes:
- bugfixes:
- - AnsibleModule.set_mode_if_different - don't check file existence when check_mode
- is activated (https://github.com/ansible/ansible/issues/61185).
- - Apply ``display_failed_stderr`` callback option on loop item results. (https://github.com/ansible/ansible/issues/74864)
- - Avoid task executor from ending early as vars can come from delegated to host.
- - ansible-pull - update documentation for ``--directory`` option to clarify
- path must be absolute.
- - config, ensure 'quoted' lists from ini or env do not take the quotes literally
- as part of the list item.
- - gather_facts, package, service - fix using module_defaults for the modules
- in addition to the action plugins. (https://github.com/ansible/ansible/issues/72918)
- - psrp - Always cleanup the last run pipeline if a second pipeline is invoked
- to avoid violating any resource limits.
- - psrp - Fix error when resetting a connection that was initialised but not
- connected - (https://github.com/ansible/ansible/issues/74092).
- - psrp - Try to clean up any server-side resources when resetting a connection.
- - roles - make sure argspec validation task is tagged with ``always`` (https://github.com/ansible/ansible/pull/74994).
- - slurp - Fix error messages for unreadable files and directories (https://github.com/ansible/ansible/issues/67340).
- - slurp - handle error when ``path`` is a directory and not a file (https://github.com/ansible/ansible/pull/74930).
- - ssh connection - fix interaction between transfer settings options.
- - subversion - fix stack trace when getting information about the repository
- (https://github.com/ansible/ansible/issues/36498)
- - version test - improve error message when an empty version is provided
- release_summary: '| Release Date: 2021-06-14
-
- | `Porting Guide <https://docs.ansible.com/ansible/devel/porting_guides.html>`__
-
- '
- security_fixes:
- - templating engine fix for not preserving usnafe status when trying to preserve
- newlines. CVE-2021-3583
- codename: Hey Hey, What Can I Do
- fragments:
- - 36498-subversion-fix-info-parsing.yml
- - 61185-basic.py-fix-check_mode.yaml
- - 67340-slurp_error_message.yml
- - 73864-action-plugin-module-defaults.yml
- - 74864-display_failed_stderr-per-item.yml
- - ansible-pull-doc-update.yml
- - config_lists_unquote.yml
- - delegate_te_fix.yml
+ - deprecate-ansible-async-dir-envvar.yml
+ - deprecate_include.yml
+ - deprecated_task_parameters.yml
+ - distro-1.6.0.yml
+ - dnf-security.yaml
+ - doc_knows_cli.yml
+ - doc_split.yml
+ - end_batch-meta-task.yml
+ - example_ansible_cfg_remoed.yml
+ - expose-unredirected-headers.yml
+ - extra_vars_unfrack.yml
+ - filelock_bye.yml
+ - find_error_fix.yml
+ - find_walk_warnings.yml
+ - fips-ncclient-import-error.yaml
+ - fix-dnf-filtering-for-installed-package-name.yml
+ - fix-for-workerprocess-stdout-deadlock-fix.yml
+ - fix_cli_ssh_defaults.yml
+ - fix_host_list.yml
+ - fix_module_schema.yml
- fix_scp_ssh_settings.yml
+ - fix_syntax_check.yml
- fix_unsafe_newline.yml
+ - getent_multiple_entries_fix.yml
+ - heuristic_log_sanitize--missing-pass.yml
+ - host_group_vars_cfg_fix.yaml
+ - hpux_iface_facts_length.yml
+ - improve_derstification.yml
+ - ini_lookup_baduser.yml
+ - interepreter-discovery-prefer-python3.yml
+ - jinja2_decorator_renames.yml
+ - jinja2_native-warning-config-toggle.yml
+ - linux_hw_facts_fix.yml
+ - macos-solaris-regression.yml
+ - metadump_fix.yml
+ - native-types-short-circuit-literal-eval.yml
+ - no-requires.yml
+ - no_ssh_args.yml
+ - nonstandard-distro-fallback.yml
+ - parseable_locale.yml
+ - passlib-defaults.yml
+ - password_file_options.yml
+ - password_seed.yml
+ - pip-entry-point.yml
+ - playbook-deprecations.yml
+ - plugin_attributes-extension.yml
+ - plugin_attributes.yml
+ - powershell-addtype-env-vars.yml
- psrp-cleanup.yml
- psrp-reset.yml
+ - pull_repo_choices.yml
+ - pwsh-optional-imp.yml
+ - pyspnego-py310.yaml
+ - redos_hostname.yml
+ - remove_connection_become_checks.yml
+ - restore_delegate_label.yml
+ - retry-print-host.yml
- role_argspec_tagged_always.yml
+ - service_facts_systemd_improve.yml
+ - service_mgr_facts_fix.yml
+ - set-ssh-host_key_checking-defaults.yaml
+ - setup_filter_smarter.yml
+ - skip_local_discovery.yml
- slurp-handle-error-with-dir.yml
- - v2.11.2rc1_summary.yaml
- - version_compare-error-on-empty.yml
- release_date: '2021-06-14'
- 2.11.3:
- changes:
- release_summary: '| Release Date: 2021-07-19
-
- | `Porting Guide <https://docs.ansible.com/ansible/devel/porting_guides.html>`__
-
- '
- codename: Hey Hey, What Can I Do
- fragments:
- - v2.11.3_summary.yaml
- release_date: '2021-07-19'
- 2.11.3rc1:
- changes:
- bugfixes:
- - Add unicode support to ``ansible-inventory`` CLI (https://github.com/ansible/ansible/issues/57378)
- - Ensure we get full path for extra vars into cliargs to avoid realpath issues
- after initial load.
- - ansible-doc - in text output, do not show empty ``version_added_collection``
- values (https://github.com/ansible/ansible/pull/74999).
- - ansible-test - restrict ``packaging`` to ``< 21.0`` for Python ``< 3.6`` (https://github.com/ansible/ansible/pull/75186).
- - command - remove unreachable code path when trying to convert the value for
- ``chdir`` to bytes (https://github.com/ansible/ansible/pull/75036)
- - module_common - handle exception when multiple workers try to create the cache
- directory
- - roles - make sure argspec validation task templates suboptions (https://github.com/ansible/ansible/issues/75070).
- - slurp - improve the logic in the error handling and remove ``os.stat()`` call
- (https://github.com/ansible/ansible/pull/75038)
- - ssh_connection - rename ``retries`` to ``reconnection_retries`` to avoid conflicts
- with task vars (https://github.com/ansible/ansible/issues/75142).
- - ssh_connection - set the default for ``reconnection_retries`` back to ``0``
- (https://github.com/ansible/ansible/issues/75142).
- - task_executor/ssh_connection - use the ``retries`` value from ``ssh_connection``
- settings, not the default from the ``Task`` field attributes (https://github.com/ansible/ansible/issues/75142).
- minor_changes:
- - ansible-test - aws creates and exposes a new tiny_prefix variable to provide
- a shorter prefix for the AWS tests.
- release_summary: '| Release Date: 2021-07-13
-
- | `Porting Guide <https://docs.ansible.com/ansible/devel/porting_guides.html>`__
-
- '
- codename: Hey Hey, What Can I Do
- fragments:
- - 57378-inventory-cli-unicode.yml
- - 74999-ansible-doc-version_added_collection.yml
- - 75073-role-argspec-suboption-variables.yaml
- - 75142-ssh-retries-collision.yml
- - 75186-ansible-test-packaging-constraint.yml
- - aws_tiny_prefix.yaml
- - command-remove-unreachable-code.yml
- - concurrency-cache-dir-collision.yml
- - extra_vars_unfrack.yml
- slurp-improve-error-handling-readability.yml
- - v2.11.3rc1_summary.yaml
- release_date: '2021-07-13'
- 2.11.4:
- changes:
- release_summary: '| Release Date: 2021-08-16
-
- | `Porting Guide <https://docs.ansible.com/ansible/devel/porting_guides.html>`__
-
- '
- codename: Hey Hey, What Can I Do
- fragments:
- - v2.11.4_summary.yaml
- release_date: '2021-08-16'
- 2.11.4rc1:
- changes:
- bugfixes:
- - Fix ``when`` evaluation on Native Jinja and Python 3.10.
- - Jinja2 globals should be accessible even when importing a template without
- the context (https://github.com/ansible/ansible/issues/75371)
- - ansible-test - add packaging python module to ``ansible-doc`` sanity test
- requirements.
- - ansible-test validate-modules - correctly validate positional parameters to
- ``AnsibleModules`` (https://github.com/ansible/ansible/pull/75332).
- - cli defaults for ssh args set to None as '' was bypassing normal default.
- - dnf module - Use all components of a package name to determine if it's installed
- (https://github.com/ansible/ansible/issues/75311).
- - do not trigger interpreter discovery in the forced_local module path as they
- should use the ansible playbook python unless otherwise configured.
- - find action, correctly convert path to text when warning about skiping.
- - remote tmpdir permissions - fix type error in macOS chmod ACL fallback (https://github.com/ansible/ansible/pull/74613).
- - template - ensure Jinja2 overrides from template header are used (https://github.com/ansible/ansible/issues/75275)
- - unarchive - move failure for missing binary to ``can_handle_archive()`` rather
- than ``__init__()``
- release_summary: '| Release Date: 2021-08-10
-
- | `Porting Guide <https://docs.ansible.com/ansible/devel/porting_guides.html>`__
-
- '
- codename: Hey Hey, What Can I Do
- fragments:
- - 74613-actionfixup_perms2_macos_remote_paths_ensure_list.yml
- - 75275-ensure-jinja2-header-overrides-used.yml
- - 75332-ansible-test-validate-modules-AnsibleModule-args.yml
- - 75356-add-requirement-to-ansible-test.yml
- - 75371-import_template_globals.yml
- - find_error_fix.yml
- - fix-dnf-filtering-for-installed-package-name.yml
- - fix_cli_ssh_defaults.yml
- - skip_local_discovery.yml
+ - snippets.yml
+ - snippets_inv_select.yml
+ - solaris-setfacl-chmod-fallback.yml
+ - ssh_cleanup.yml
+ - ssh_conn_fixes.yml
+ - ssh_port_default_fix.yml
+ - support_rocky_linux_hostname.yml
+ - support_rockylinux.yml
+ - tempfile.yml
+ - terminal-documentation.yaml
+ - to_bits-does-nothing.yml
+ - tweaking_interpreter_discovery.yaml
- unarchive-fix-bin-checking.yml
- - v2.11.4rc1_summary.yaml
- - when-eval-native-py310.yml
- release_date: '2021-08-10'
- 2.11.5:
- changes:
- release_summary: '| Release Date: 2021-09-13
-
- | `Porting Guide <https://docs.ansible.com/ansible/devel/porting_guides.html>`__
-
- '
- codename: Hey Hey, What Can I Do
- fragments:
- - v2.11.5_summary.yaml
- release_date: '2021-09-13'
- 2.11.5rc1:
- changes:
- bugfixes:
- - Fix templating task action with host-specific vars (https://github.com/ansible/ansible/issues/75568)
- - Since ansible/2.11 doc site was removed, the current relative messages point
- to a 404 url, this fixes it by chainging the target to ansible-core/2.11
- - ansible-galaxy - Fix a bug with build_ignore when installing collections from
- source (https://github.com/ansible/ansible/issues/75528).
- - ansible-galaxy - Improve error message from dependency resolution when a candidate
- has inconsistent requirements (https://github.com/ansible/ansible/issues/75139).
- - ansible-playbook, more robust handling of --list-hosts and undefined vars
- in hosts keyword.
- - command module, clarify order of remove/creates checks.
- - command module, correctly handles chdir to symlinks.
- - command module, move to standarized messages in 'msg' vs abusing 'stdout'.
- - command module, now all options work in ad-hoc execution.
- - command module, now always returns what we documented as 'returns always'.
- - get_bin_path, clarify with quotes what the missing required executable is.
- - make previous versions compatible we new attributres w/o implementing them.
- - paramiko_ssh - mark connection as connected when ``_connect()`` is called
- (https://github.com/ansible/ansible/issues/74081)
- - setup module should now not truncate hpux interface names.
- - validate_argument_spec, correct variable precedence and merge method and add
- missing examples
- - variable manager, avoid sourcing delegated variables when no inventory hostname
- is present. This affects scenarios like syntax check and imports.
- release_summary: '| Release Date: 2021-09-08
-
- | `Porting Guide <https://docs.ansible.com/ansible/devel/porting_guides.html>`__
-
- '
- codename: Hey Hey, What Can I Do
- fragments:
- - 74081-paramiko-mark-connected.yml
- - 75235-ansible-galaxy-inconsistent-candidate-error.yml
- - 75547-fix-installing-collections-from-source.yaml
- - 75568-fix-templating-task-action-host-specific-vars.yml
- - attributes_compat.yml
- - clarify_missing_exe.yml
- - command_deliver_promisses.yml
- - fix_host_list.yml
- - fix_relative_msg_urls.yml
- - fix_syntax_check.yml
- - hpux_iface_facts_length.yml
- - v2.11.5rc1_summary.yaml
+ - update_doc_for_utils_plugins.yaml
+ - uri-multipart-int-value.yml
+ - v2.12.0-initial-commit.yaml
+ - v2.12.0b1_summary.yaml
- vas_fixes.yml
- release_date: '2021-09-08'
- 2.11.6:
+ - vaultfilters.yml
+ - version_compare-error-on-empty.yml
+ - when-eval-native-py310.yml
+ - winrm-kinit-env.yml
+ - world_readable_fixes.yml
+ release_date: '2021-09-27'
+ 2.12.0b2:
changes:
bugfixes:
+ - ansible-test - Fix path to inventory file for ``windows-integration`` and
+ ``network-integration`` commands for collections.
+ - ansible-test - Update distribution test containers to version 3.1.0.
+ - ansible-test - Use the correct variable to reference the client's SSH key
+ when generating inventory.
- ansible-test pslint - Fix error when encountering validation results that
are highly nested - https://github.com/ansible/ansible/issues/74151
+ minor_changes:
+ - ansible-test - Update the ``base`` and ``default`` containers from Python
+ 3.10.0rc2 to 3.10.0.
release_summary: '| Release Date: 2021-10-11
| `Porting Guide <https://docs.ansible.com/ansible/devel/porting_guides.html>`__
'
- codename: Hey Hey, What Can I Do
+ security_fixes:
+ - Do not include params in exception when a call to ``set_options`` fails. Additionally,
+ block the exception that is returned from being displayed to stdout. (CVE-2021-3620)
+ codename: Dazed and Confused
fragments:
+ - ansible-test-default-base-containers-python-3.10.yaml
+ - ansible-test-distro-containers-3.1.0.yaml
+ - ansible-test-inventory-path.yaml
+ - ansible-test-inventory-ssh-key.yml
+ - avoid-set_options-leak.yaml
- pslint-sanity-warning.yml
- - v2.11.6_summary.yaml
+ - v2.12.0b2_summary.yaml
release_date: '2021-10-11'
- 2.11.6rc1:
+ 2.12.0rc1:
changes:
- bugfixes:
- - PowerShell - Ignore the ``LIB`` environment variable when compiling C# Ansible
- code
- - ansible-galaxy - Fix handling HTTP exceptions from Galaxy servers. Continue
- to the next server in the list until the collection is found.
- - config - use ``callbacks_enabled`` instead ``callback_enabled`` in a deprecated
- message (https://github.com/ansible/ansible/issues/70028).
- - netconf - catch and handle exception to prevent stack trace when running in
- FIPS mode
- - roles - fix unexpected ``AttributeError`` when an empty ``argument_specs.yml``
- is present (https://github.com/ansible/ansible/pull/75604).
- minor_changes:
- - ansible-galaxy - Non-HTTP exceptions from Galaxy servers are now a warning
- and only fatal if the collection to download|install|verify is not available
- from any of the servers (https://github.com/ansible/ansible/issues/75443).
- release_summary: '| Release Date: 2021-10-04
+ release_summary: '| Release Date: 2021-10-18
| `Porting Guide <https://docs.ansible.com/ansible/devel/porting_guides.html>`__
'
- security_fixes:
- - Do not include params in exception when a call to ``set_options`` fails. Additionally,
- block the exception that is returned from being displayed to stdout. (CVE-2021-3620)
- codename: Hey Hey, What Can I Do
+ codename: Dazed and Confused
fragments:
- - 70028-config-small-typo-fix.yml
- - 75468_fix_galaxy_server_fallback.yaml
- - 75604-empty-argument-specs.yml
- - avoid-set_options-leak.yaml
- - fips-ncclient-import-error.yaml
- - powershell-addtype-env-vars.yml
- - v2.11.6rc1_summary.yaml
- release_date: '2021-10-04'
+ - v2.12.0rc1_summary.yaml
+ release_date: '2021-10-18'