1ancestor: 2.10.0 2releases: 3 2.11.0: 4 changes: 5 bugfixes: 6 - ansible-test - ensure the correct unit test target is given when the ``__init__.py`` 7 file is modified inside the connection plugins directory 8 major_changes: 9 - ansible-test - Tests run with the ``centos6`` and ``default`` test containers 10 now use a PyPI proxy container to access PyPI when Python 2.6 is used. This 11 allows tests running under Python 2.6 to continue functioning even though 12 PyPI is discontinuing support for non-SNI capable clients. 13 minor_changes: 14 - ansible-test - Update distribution test containers from version 2.0.1 to 2.0.2. 15 - ansible-test - Update the Ansible Core and Ansible Collection default test 16 containers to 3.2.0 and 3.2.2 respectively. 17 release_summary: '| Release Date: 2021-04-26 18 19 | `Porting Guide <https://docs.ansible.com/ansible/devel/porting_guides.html>`__ 20 21 ' 22 codename: Hey Hey, What Can I Do 23 fragments: 24 - ansible-test-connection-units-init.yml 25 - ansible-test-default-containers-3.2.yml 26 - ansible-test-distro-containers-2.0.2.yml 27 - ansible-test-pypi-test-container.yml 28 - v2.11.0_summary.yaml 29 release_date: '2021-04-26' 30 2.11.0b1: 31 changes: 32 breaking_changes: 33 - Made SCM collections be reinstalled regardless of ``--force`` being present. 34 - NetBSD virtualization facts (specifically ``ansible_virtualization_type``) 35 now returns a more accurate value by checking the value of the ``machdep.hypervisor`` 36 ``sysctl`` key. This change is breaking because in some cases previously, 37 we would erroneously report ``xen`` even when the target is not running on 38 Xen. This prevents that behavior in most cases. (https://github.com/ansible/ansible/issues/69352) 39 - "Replaced the in-tree dependency resolver with an external implementation 40 that pip >= 20.3 uses now by default \u2014 ``resolvelib``. (https://github.com/ansible/ansible/issues/71784)" 41 - The ``meta`` module now supports tags for user-defined tasks. Internal ``meta`` 42 tasks continue to always run. (https://github.com/ansible/ansible/issues/64558) 43 - ansible-galaxy login command has been removed (see https://github.com/ansible/ansible/issues/71560) 44 bugfixes: 45 - ANSIBLE_COLLECTIONS_PATHS - remove deprecation so that users of Ansible 2.9 46 and 2.10+ can use the same var when specifying a collection path without a 47 warning. 48 - Added unsafe_writes test. 49 - Address compat with rpmfluff-0.6 for integration tests 50 - 'Address the deprecation of the use of stdlib distutils in packaging. It''s 51 a short-term hotfix for the problem (https://github.com/ansible/ansible/issues/70456, 52 https://github.com/pypa/setuptools/issues/2230, https://github.com/pypa/setuptools/commit/bd110264) 53 54 ' 55 - Adjust various hard-coded action names to also include their ``ansible.builtin.`` 56 and ``ansible.legacy.`` prefixed version (https://github.com/ansible/ansible/issues/71817, 57 https://github.com/ansible/ansible/issues/71818, https://github.com/ansible/ansible/pull/71824). 58 - Allow TypeErrors on Undefined variables in filters to be handled or deferred 59 when processing for loops. 60 - Allow `~` to be present in file names in galaxy roles (https://github.com/ansible/ansible/issues/72966) 61 - Always mention the name of the deprecated or tombstoned plugin in routing 62 deprecation/tombstone messages (https://github.com/ansible/ansible/pull/73059). 63 - Ansible output now uses stdout to determine column width instead of stdin 64 - AnsibleModule - added arg ``ignore_invalid_cwd`` to ``AnsibleModule.run_command()``, 65 to control its behaviour when ``cwd`` is invalid. (https://github.com/ansible/ansible/pull/72390) 66 - Apply ``_wrap_native_text`` only for builtin filters specified in STRING_TYPE_FILTERS. 67 - Be smarter about collection paths ending with ansible_collections, emulating 68 a-galaxy behaviour. Issue 72628 69 - CLI - Restore git information in version output when running from source 70 - Collection callbacks were ignoring options and rules for stdout and adhoc 71 cases. 72 - Collections - Ensure ``action_loader.get`` is called with ``collection_list`` 73 to properly find collections when ``collections:`` search is specified (https://github.com/ansible/ansible/issues/72170) 74 - Command module now returns stdout & stderr if executable is missing or an 75 unknown error occurs 76 - ConfigManager - Normalize ConfigParser between Python2 and Python3 to for 77 handling comments (https://github.com/ansible/ansible/issues/73709) 78 - Continue execution when 'flatten' filter when it hits a None/null value as 79 part of the list. 80 - Correct the inventory source error parse handling, specifically make the config 81 INVENTORY_ANY_UNPARSED_IS_FAILED work as expected. 82 - Display - Use wcswidth to calculate printable width of a text string (https://github.com/ansible/ansible/issues/63105) 83 - Enabled unsafe_writes for get_url which was ignoring the paramter. 84 - Ensure Ansible's unique filter preserves order (https://github.com/ansible/ansible/issues/63417) 85 - Ensure if a traceback halts ``strategy.run`` that we still attempt to clean 86 up (https://github.com/ansible/ansible/issues/23958) 87 - Ensure password passed in by -k is used on delegated hosts that do not have 88 ansible_password set 89 - Ensure the correct options are used when ssh executables are used that don't 90 match ssh executable names. 91 - Facts collection - get serial number of NVMe device without sg_inq (https://github.com/ansible/ansible/issues/66663). 92 - 'Fix --list-tasks format `role_name : task_name` when task name contains the 93 role name. (https://github.com/ansible/ansible/issues/72505)' 94 - Fix ``RecursionError`` when templating large vars structures (https://github.com/ansible/ansible/issues/71920) 95 - 'Fix ``delegate_facts: true`` when ``ansible_python_interpreter`` is not set. 96 (https://github.com/ansible/ansible/issues/70168)' 97 - Fix an exit code for a non-failing playbook (https://github.com/ansible/ansible/issues/71306) 98 - Fix ansible-galaxy collection list to show collections in site-packages (https://github.com/ansible/ansible/issues/70147) 99 - Fix bytestring vs string comparison in module_utils.basic.is_special_selinux_path() 100 so that special-cased filesystems which don't support SELinux context attributes 101 still allow files to be manipulated on them. (https://github.com/ansible/ansible/issues/70244) 102 - Fix execution of the meta tasks 'clear_facts', 'clear_host_errors', 'end_play', 103 'end_host', and 'reset_connection' when the CLI flag '--flush-cache' is provided. 104 - Fix fileglob bug where it could return different results for different order 105 of parameters (https://github.com/ansible/ansible/issues/72873). 106 - Fix incorrect msg in the results dict in loops 107 - Fix incorrect re-run of roles with tags (https://github.com/ansible/ansible/issues/69848) 108 - Fix incorrect variable scoping when using ``import with context`` in Jinja2 109 templates. (https://github.com/ansible/ansible/issues/72615) 110 - Fix jsonfile cache plugin option '_uri' to be a type path instead of a string. 111 (https://github.com/ansible/ansible/issues/38002) 112 - 'Fix notifying handlers via `role_name : handler_name` when handler name contains 113 the role name. (https://github.com/ansible/ansible/issues/70582)' 114 - Fix parsing of values when using empty string as a key (https://github.com/ansible/ansible/issues/57132) 115 - Fix statistics reporting when rescue block contains another block (issue https://github.com/ansible/ansible/issues/61253). 116 - Fix to previous deprecation change (#70504) which caused command warning deprecation 117 to show in all cases, even when not specified by the user. 118 - Fixed TypeError instancemethod expecting at least 2 arguments for apt_repository(issue 119 https://github.com/ansible/ansible/issues/69308, PR https://github.com/ansible/ansible/pull/69463) 120 - Fixed issue when `netstat` is either missing or doesn't have execution permissions 121 leading to incorrect command being executed. 122 - Fixes ``ansible-galaxy role info`` to support multiple roles on the command 123 line (https://github.com/ansible/ansible/pull/70148) 124 - Fixes ansible-test traceback when plugin author is not a string or a list 125 of strings (https://github.com/ansible/ansible/pull/70507) 126 - Handle more varnames that can create conflicts, expand a function in general, 127 handle jinja2 globals in particular (https://github.com/ansible/ansible/issues/41955). 128 - INTERPRETER_PYTHON_DISTRO_MAP - prefer ``/usr/libexec/platform-python`` on 129 ``oraclelinux 8`` when other pythons are present. 130 - Improve Ansible config deprecations to show the source of the deprecation 131 (ansible-core). Also remove space before a comma in config deprecations (https://github.com/ansible/ansible/pull/72697). 132 - Improved/fixed regular expressions in ``validate-modules/validate_modules/schema.py`` 133 and ``utils/collection_loader/_collection_finder.py`` (https://github.com/ansible/ansible/pull/73577). 134 - Includes - Explicitly get the include task, and not assume it is the parent 135 (https://github.com/ansible/ansible/issues/65710) 136 - InventoryManager - Fix unhandled exception when given limit file was actually 137 a directory. 138 - InventoryManager - Fix unhandled exception when inventory directory was empty 139 or contained empty subdirectories (https://github.com/ansible/ansible/issues/73658). 140 - JSON Encoder - Ensure we treat single vault encrypted values as strings (https://github.com/ansible/ansible/issues/70784) 141 - Lookup user by UID in password database if login name is not found (https://github.com/ansible/ansible/issues/17029) 142 - Pass expression in angle-bracket notation as filename argument to a ``compile()`` 143 built-in function, so that Python debuggers do not try to parse it as filename. 144 - Pass the connection's timeout to connection plugins instead of the task's 145 timeout. 146 - Provide more information in AnsibleUndefinedVariable (https://github.com/ansible/ansible/issues/55152) 147 - Python module_utils finder - refactor logic to eliminate many corner cases, 148 remove recursion, fix base module_utils redirections 149 - Remove an embedded function from RoleMixin and add tests for it (https://github.com/ansible/ansible/pull/72754). 150 - Remove the warning displayed when validating the arg spec of a role with dependencies 151 and add it to the documentation. 152 - Restore the ability for changed_when/failed_when to function with group_by 153 (#70844). 154 - Restored unsafe_writes functionality which was being skipped. 155 - Restructured pipelining settings to be at the connection plugins leaving base 156 config as global and for backwards compatiblity. 157 - SSH plugin - Improve error message when ssh client is not found on the host 158 - Skip invalid collection names when listing in ansible-doc instead of throwing 159 exception. Issue#72257 160 - Skip literal_eval for string filters results in native jinja. (https://github.com/ansible/ansible/issues/70831) 161 - Stop adding the connection variables to the output results 162 - Suppress warning when user directory used in --playbook-dir option with ansible-inventory 163 command (https://github.com/ansible/ansible/issues/65262). 164 - TOML inventory - Ensure we register dump functions for ``AnsibleUnsafe`` to 165 support dumping unsafe values. Note that the TOML format has no functionality 166 to mark that the data is unsafe for re-consumption. (https://github.com/ansible/ansible/issues/71307) 167 - Terminal plugins - add "\e[m" to the list of ANSI sequences stripped from 168 device output 169 - The ``docker`` and ``k8s`` action groups / module default groups now also 170 support the moved modules in `community.docker <https://galaxy.ansible.com/community/docker>`_, 171 `community.kubevirt <https://github.com/ansible-collections/community.kubevirt>`_, 172 `community.okd <https://galaxy.ansible.com/community/okd>`_, and `kubernetes.core 173 <https://galaxy.ansible.com/kubernetes/core>`_ (https://github.com/ansible/ansible/pull/72428). 174 - The ``flush()`` method of ``CachePluginAdjudicator`` now calls the plugin's 175 ``flush()`` method instead of iterating over the keys that the adjudicator 176 knows about and deleting those from the cache. (https://github.com/ansible/ansible/issues/68770) 177 - The `ansible_become` value was not being treated as a boolean value when set 178 in an INI format inventory file (fixes bug https://github.com/ansible/ansible/issues/70476). 179 - The machine-readable changelog ``changelogs/changelog.yaml`` is now contained 180 in the release. 181 - Updated docs and added warning on max_fail_percentage and free strategy usage. 182 fixes issue 16666. 183 - VariableManager - Add the 'vars' key before getting delegated variables (https://github.com/ansible/ansible/issues/71092). 184 - Vault - Allow single vault encrypted values to be used directly as module 185 parameters. (https://github.com/ansible/ansible/issues/68275) 186 - account for bug in Python 2.6 that occurs during interpreter shutdown to avoid 187 stack trace 188 - action plugins - change all action/module delegations to use FQ names while 189 allowing overrides (https://github.com/ansible/ansible/issues/69788) 190 - add AlmaLinux to fact gathering (https://github.com/ansible/ansible/pull/73458) 191 - add constraints file for ``ansible_runner`` test since an update to ``psutil`` 192 is now causing test failures 193 - add magic/connection vars updates from delegated host info. 194 - add support for alpine linux 'apk' package manager in package_facts 195 - allow become method 'su' to work on 'local' connection by allocating a fake 196 tty. 197 - ansible-console - Ctrl+C (in a task) abort current task, and put you back 198 on prompt (this behavior doesn't change) (ditto) 199 - ansible-console - Ctrl+C (on prompt) used to exit the shell, unlike most shells, 200 it should just reset the current line (ie. abort it and spawn a new prompt) 201 (https://github.com/ansible/ansible/issues/68529) 202 - ansible-console - Ctrl+D (on prompt) now exit the shell, this is the expected 203 behavior in a shell (cf bash, sh, zsh, ipython, ...) (ditto) 204 - ansible-console - add more documentation, specifically on various commands[1] 205 (https://github.com/ansible/ansible/issues/72195) 206 - ansible-console - fixes few strings' typos 207 - ansible-console - remove useless and poorly formatted comment section (replaced 208 with [1]) 209 - ansible-doc - account for an empty ``meta/main.yml`` file when displaying 210 role information (https://github.com/ansible/ansible/pull/73590) 211 - ansible-doc - collection name for plugin top-level deprecation was not inserted 212 when deprecating by version (https://github.com/ansible/ansible/pull/70344). 213 - ansible-doc - improve error message in text formatter when ``description`` 214 is missing for a (sub-)option or a return value or its ``contains`` (https://github.com/ansible/ansible/pull/70046). 215 - ansible-doc - improve man page formatting to avoid problems when YAML anchors 216 are used (https://github.com/ansible/ansible/pull/70045). 217 - ansible-doc - include the collection name in the text output (https://github.com/ansible/ansible/pull/70401). 218 - ansible-doc - plugin option deprecations now also get ``collection_name`` 219 added (https://github.com/ansible/ansible/pull/71735). 220 - ansible-doc - properly show plugin name when ``name:`` is used instead of 221 ``<plugin_type>:`` (https://github.com/ansible/ansible/pull/71966). 222 - ansible-galaxy - Cache the responses for available collection versions after 223 getting all pages. (https://github.com/ansible/ansible/issues/73071) 224 - ansible-galaxy - Instead of assuming the first defined server is galaxy, filter 225 based on the servers that support the v1 API, and return the first of those 226 (https://github.com/ansible/ansible/issues/65440) 227 - ansible-galaxy - Use ``sys.exit`` instead of ``exit`` when reporting an error 228 for the removed login command. 229 - ansible-galaxy - correct ``collections-path`` command line argument (https://github.com/ansible/ansible/issues/73127) 230 - ansible-galaxy - fixed galaxy role init command (https://github.com/ansible/ansible/issues/71977). 231 - ansible-galaxy collection download - fix downloading tar.gz files and collections 232 in git repositories (https://github.com/ansible/ansible/issues/70429) 233 - ansible-galaxy collection install - fix fallback mechanism if the AH server 234 did not have the collection requested - https://github.com/ansible/ansible/issues/70940 235 - ansible-galaxy download - fix bug when downloading a collection in a SCM subdirectory 236 - ansible-test - Add ``pytest < 6.0.0`` constraint for managed installations 237 on Python 3.x to avoid issues with relative imports. 238 - ansible-test - Always connect additional Docker containers to the network 239 used by the current container (if any). 240 - ansible-test - Always map ``/var/run/docker.sock`` into test containers created 241 by the ``--docker`` option if the docker host is not ``localhost``. 242 - ansible-test - Attempt to detect the Docker hostname instead of assuming ``localhost``. 243 - ansible-test - Avoid using ``/tmp`` to resolve occasional failures starting 244 tests with the ``--docker`` option. 245 - ansible-test - Change classification using ``--changed`` now consistently 246 handles common configuration files for supported CI providers. 247 - ansible-test - Change detection now properly resolves relative imports instead 248 of treating them as absolute imports. 249 - ansible-test - Correctly detect changes in a GitHub pull request when running 250 on Azure Pipelines. 251 - ansible-test - Correctly detect running in a Docker container on Azure Pipelines. 252 - ansible-test - Do not try to validate PowerShell modules ``setup.ps1``, ``slurp.ps1``, 253 and ``async_status.ps1`` 254 - ansible-test - Prefer container IP at ``.NetworkSettings.Networks.{NetworkName}.IPAddress`` 255 over ``.NetworkSettings.IPAddress``. 256 - ansible-test - Running tests using an installed version of ``ansible-test`` 257 against one Python version from another no longer fails due to a missing ``egg-info`` 258 directory. This could occur when testing plugins which import ``pkg_resources``. 259 - ansible-test - Running tests using an installed version of ``ansible-test`` 260 no longer generates an error attempting to create an ``egg-info`` directory 261 when an existing one is not found in the expected location. This could occur 262 if the existing ``egg-info`` directory included a Python version specifier 263 in the name. 264 - ansible-test - Skip installing requirements if they are already installed. 265 - ansible-test - Symbolic links are no longer used to inject ``python`` into 266 the environment, since they do not work reliably in all cases. Instead, the 267 existing Python based exec wrapper is always used. 268 - ansible-test - Temporarily limit ``cryptography`` to versions before 3.4 to 269 enable tests to function. 270 - ansible-test - The ``--raw`` option for ``ansible-test shell --remote`` now 271 uses ``sh`` for the shell instead of ``bash``, which may not be present. 272 - ansible-test - The ``--remote`` option has been updated for Python 2.7 to 273 work around breaking changes in the newly released ``get-pip.py`` bootstrapper. 274 - ansible-test - The ``--remote`` option has been updated to use a versioned 275 ``get-pip.py`` bootstrapper to avoid issues with future releases. 276 - ansible-test - The ``ansible-doc`` sanity test now works for ``netconf`` plugins. 277 - ansible-test - The ``changelog`` sanity test has been updated to ensure ``rstcheck`` 278 does not load the ``sphinx`` module. 279 - ansible-test - The ``cs`` and ``openshift`` test plugins now search for containers 280 on the current network instead of assuming the ``bridge`` network. 281 - ansible-test - The ``resource_prefix`` variable provided to tests running 282 on Azure Pipelines is now converted to lowercase to match other CI providers. 283 - ansible-test - Unified SSH key management for all instances created with the 284 ``--remote`` or ``--docker`` options. 285 - ansible-test - Using the ``--remote`` option on Azure Pipelines now works 286 from a job running in a container. 287 - ansible-test - ``cryptography`` is now limited to versions prior to 3.2 only 288 when an incompatible OpenSSL version (earlier than 1.1.0) is detected 289 - 'ansible-test - add constraint for ``cffi`` to prevent failure on systems 290 with older versions of ``gcc`` (https://foss.heptapod.net/pypy/cffi/-/issues/480) 291 292 ' 293 - ansible-test - convert target paths to unicode on Python 2 to avoid ``UnicodeDecodeError`` 294 (https://github.com/ansible/ansible/issues/68398, https://github.com/ansible/ansible/pull/72623). 295 - ansible-test - improve classification of changes to ``.gitignore``, ``COPYING``, 296 ``LICENSE``, ``Makefile``, and all files ending with one of ``.in`, ``.md`, 297 ``.rst``, ``.toml``, ``.txt`` in the collection root directory (https://github.com/ansible/ansible/pull/72353). 298 - ansible-test - integration and unit test change detection now works for filter, 299 lookup and test plugins 300 - ansible-test now always uses the ``--python`` option for ``virtualenv`` to 301 select the correct interpreter when creating environments with the ``--venv`` 302 option 303 - ansible-test sanity changelog test - bump dependency on antsibull-changelog 304 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>`_ 305 will not fail validation (https://github.com/ansible/ansible/pull/73428). 306 - ansible-test units - fixed collection location code to work under pytest >= 307 6.0.0 308 - ansible-test validate-modules - ``version_added`` on module level was not 309 validated for modules in collections (https://github.com/ansible/ansible/pull/70869). 310 - ansible-test validate-modules - return correct error codes ``option-invalid-version-added`` 311 resp. ``return-invalid-version-added`` instead of the wrong error ``deprecation-either-date-or-version`` 312 when an invalid value of ``version_added`` is specified for an option or a 313 return value (https://github.com/ansible/ansible/pull/70869). 314 - ansible-test validate-modules - when a module uses ``add_file_common_args=True`` 315 and does not use a keyword argument for ``argument_spec`` in ``AnsibleModule()``, 316 the common file arguments were not considered added during validation (https://github.com/ansible/ansible/pull/72334). 317 - ansible_pkg_mgr fact - now correctly returns ``atomic_container`` when run 318 on "RHEL for Edge" images and Fedora/RHEL/CentOS Atomic Host (https://github.com/ansible/ansible/issues/73084). 319 - api - time.clock is removed in Python 3.8, add backward compatible code (https://github.com/ansible/ansible/issues/70649). 320 - apt - add ``fail_on_autoremove`` param to apt module to avoid unintended package 321 removals (https://github.com/ansible/ansible/issues/63231) 322 - apt - include exception message from apt python library in error output 323 - apt_key - Specifying ``file`` as mutually exclusive with ``data``, ``keyserver``, 324 ``url`` (https://github.com/ansible/ansible/pull/70492). 325 - apt_repository - fixes ``mode`` doc to remove ineffective default (https://github.com/ansible/ansible/pull/70319). 326 - assemble - fix decrypt argument in the module (https://github.com/ansible/ansible/issues/65450). 327 - async - Fix Python 3 interpreter parsing from module by comparing with bytes 328 (https://github.com/ansible/ansible/issues/70690) 329 - async_wrapper - Fix race condition when ``~/.ansible_async`` folder tries 330 to be created by multiple async tasks at the same time - https://github.com/ansible/ansible/issues/59306 331 - avoid possible errors accessing os.environ by not assuming existance of variables. 332 - basic - handle exceptions for default selectors in Python 2.7 (https://github.com/ansible/ansible/issues/71704). 333 - basic - use PollSelector implementation when DefaultSelector fails (https://github.com/ansible/ansible/issues/70238). 334 - bcrypt hashing - Ensure we repair the salt, to avoid warnings (https://github.com/ansible/ansible/issues/36129) 335 - 'blockinfile - properly insert a block at the end of a file that does not 336 have a trailing newline character (https://github.com/ansible/ansible/issues/72055) 337 338 ' 339 - blockinfile now returns name of backup file when this option is used. 340 - clarified changed status to reflect existing rule that had never been written 341 down. 342 - collection loader - fix bogus code coverage entries for synthetic packages 343 - collection metadata - ensure collection loader uses libyaml/CSafeLoader to 344 parse collection metadata if available 345 - cron - cron file should not be empty after adding var (https://github.com/ansible/ansible/pull/71207) 346 - cron - encode and decode crontab files in UTF-8 explicitly to allow non-ascii 347 chars in cron filepath and job (https://github.com/ansible/ansible/issues/69492) 348 - default callback - Ensure that the ``host_pinned`` strategy is not treated 349 as lockstep (https://github.com/ansible/ansible/issues/73364) 350 - delegate_to - Ensure that calculating ``delegate_to`` vars with a loop uses 351 the correct context to correctly evaluate the loop (https://github.com/ansible/ansible/issues/37132) 352 - display correct error information when an error exists in the last line of 353 the file (https://github.com/ansible/ansible/issues/16456) 354 - distribution - add support for Pardus Linux distribution (https://github.com/ansible/ansible/issues/71636). 355 - distribution facts - Allow ``distribution_major_version`` and ``distribution_version`` 356 to work for RC and PRERELEASE versions of FreeBSD (and derived distributions) 357 (https://github.com/ansible/ansible/issues/72331). 358 - dnf - fix filtering to avoid dependncy conflicts (https://github.com/ansible/ansible/issues/72316) 359 - 'dnf - it is now possible to specify both ``security: true`` and ``bugfix: 360 true`` to install updates of both types. Previously, only security would get 361 installed if both were true. (https://github.com/ansible/ansible/issues/70854)' 362 - ensure 'local' connection always has the correct default user for actions 363 to consume. 364 - ensure delegated vars can resolve hostvars object and access vars from hostvars[inventory_hostname]. 365 - ensure find_mount_point consistently returns text. 366 - ensure we don't clobber role vars data when getting an empty file 367 - expect - Operate pexpect with bytes to avoid potential encoding issues (https://github.com/ansible/ansible/issues/29351) 368 - facts - account for Slackware OS with ``+`` in the name (https://github.com/ansible/ansible/issues/38760) 369 - facts - fix distribution fact for SLES4SAP (https://github.com/ansible/ansible/pull/71559). 370 - facts - fix incorrect UTC timestamp in ``iso8601_micro`` and ``iso8601`` 371 - facts - properly report virtualization facts for Linux guests running on bhyve 372 (https://github.com/ansible/ansible/issues/73167) 373 - file - prevent link src from being rewritten when src is not specified explicitly 374 (https://github.com/ansible/ansible/issues/65448) 375 - file - the module should warn in check_mode when path an owner/group don't 376 exist (https://github.com/ansible/ansible/issues/67307). 377 - find module - Don't treat empty excludes as a match (https://github.com/ansible/ansible/issues/70640) 378 - find module - Stop traversing directories past the requested depth. (https://github.com/ansible/ansible/issues/73627) 379 - fix issue with inventory_hostname and delegated host vars mixing on connection 380 settings. 381 - fortimanager httpapi plugin - fix redirect to point to the ``fortinet.fortimanager`` 382 collection (https://github.com/ansible/ansible/pull/71073). 383 - galaxy - handle plus sign in user token appearing in role url (https://github.com/ansible/ansible/issues/45475). 384 - get_sysctl now handles multiline values and does not die silently anymore. 385 - get_url - skip checksum during ``--check`` (https://github.com/ansible/ansible/issues/61369). 386 - git - Only pass ``--raw`` flag to git verify commands (verify-tag, verify-commit) 387 when ``gpg_whitelist`` is in use. Otherwise don't pass it so that non-whitelist 388 GPG validation still works on older Git versions. (https://github.com/ansible/ansible/issues/64469) 389 - gluster modules - fix redirect to point to the ``gluster.gluster`` collection 390 (https://github.com/ansible/ansible/pull/71240). 391 - hostname - Fixed an issue where the hostname on the alinux could not be set. 392 - hostname - add Almalinux support (https://github.com/ansible/ansible/pull/73619) 393 - hostname - add macOS support (https://github.com/ansible/ansible/pull/54439) 394 - if the ``type`` for a module parameter in the argument spec is callable, do 395 not pass ``kwargs`` to avoid errors (https://github.com/ansible/ansible/issues/70017) 396 - import_playbook - change warning about extra parameters to deprecation (https://github.com/ansible/ansible/issues/72745) 397 - improve deprecation message when using bare variable (https://github.com/ansible/ansible/pull/70687) 398 - inventory - pass the vars dictionary to combine_vars instead of an individual 399 key's value (https://github.com/ansible/ansible/issues/72975). 400 - inventory plugins - Let plugins define the sanitization method for the constructed 401 ``groups`` feature. 402 - inventory_hostnames - Use ``InventoryManager`` instead of trying to replicate 403 its behavior (https://github.com/ansible/ansible/issues/17268) 404 - is_string/vault - Ensure the is_string helper properly identifies AnsibleVaultEncryptedUnicode 405 as a string (https://github.com/ansible/ansible/pull/71609) 406 - lineinfile - fix not subscriptable error in exception handling around file 407 creation 408 - linux network facts - get the correct value for broadcast address (https://github.com/ansible/ansible/issues/64384) 409 - native jinja2 types - properly handle Undefined in nested data. 410 - package - use list of built in package managers from facts rather than creating 411 a new list 412 - paramiko connection plugin - Ensure we only reset the connection when one 413 has been previously established (https://github.com/ansible/ansible/issues/65812) 414 - password hashing - Ensure we validate salts against allowed characters and 415 length when using ``crypt`` (https://github.com/ansible/ansible/issues/71107) 416 - password lookup - Try to automatically generate salts using known salt sizes 417 (https://github.com/ansible/ansible/issues/53750) 418 - 'pause - Fix indefinite hang when using a pause task on a background process 419 (https://github.com/ansible/ansible/issues/32142) 420 421 ' 422 - pause - catch additional error on setting up curses (https://github.com/ansible/ansible/pull/73588). 423 - pause - do not warn when running in the background if a timeout is provided 424 (https://github.com/ansible/ansible/issues/73042) 425 - pause - handle exception when there is no stdout (https://github.com/ansible/ansible/pull/47851) 426 - powershell - fix escaping of strings that broken modules like fetch when dealing 427 with special chars - https://github.com/ansible/ansible/issues/62781 428 - powershell - fix the CLIXML parser when it contains nested CLIXML objects 429 - https://github.com/ansible/ansible/issues/69550 430 - powershell - remove getting the PowerShell version from the env var ``POWERSHELL_VERSION``. 431 This feature never worked properly and can cause conflicts with other libraries 432 that use this var 433 - psrp - Fix hang when copying an empty file to the remote target 434 - psrp - Use native PSRP mechanism when copying files to support custom endpoints 435 - quote filter - normalize how ``None`` is handled, to match Python3 behavior 436 (https://github.com/ansible/ansible/issues/32174) 437 - reboot - Add support for the runit init system, used on Void Linux, that does 438 not support the normal Linux syntax. 439 - remove contradictory recomendation from template docs. https://github.com/ansible/ansible/issues/63484 440 - remove redundant remote_user setting in play_context for local as plugin already 441 does it, also removes fork/thread issue from use of pwd library. 442 - reset logging level to INFO due to CVE-2019-14846. 443 - runas - create a new token when running as ``SYSTEM`` to ensure it has the 444 full privileges assigned to that account 445 - service - Fix for the BSD rcconf code using a Python 2 specific string replace 446 function 447 - 'set_mode_if_different - handle symlink if it is inside a directory with sticky 448 bit set (https://github.com/ansible/ansible/pull/45198) 449 450 ' 451 - several fixes to make apt_key better at identifying needs for change and also 452 to avoid changes in check_mode. 453 - shell - fix quoting of mkdir command in creation of remote_tmp in order to 454 allow spaces and other special characters (https://github.com/ansible/ansible/issues/69577). 455 - splunk httpapi plugin - switch from splunk.enterprise_security to splunk.es 456 in runtime.yml to reflect upstream change of Collection Name 457 - 'ssh connection plugin - use ``get_option()`` rather than ``_play_context`` 458 to ensure ``ANSBILE_SSH_ARGS`` are applied properly (https://github.com/ansible/ansible/issues/70437) 459 460 ' 461 - stat - handle colons in filename while parsing the mimetype output (https://github.com/ansible/ansible/issues/70256). 462 - strftime filter - Input epoch is allowed to be a float (https://github.com/ansible/ansible/issues/71257) 463 - 'systemd - account for templated unit files using ``@`` when searching for 464 the unit file (https://github.com/ansible/ansible/pull/72347#issuecomment-730626228) 465 466 ' 467 - systemd - fixed chroot usage on new versions of systemd, that broke because 468 of upstream changes in systemctl output 469 - 'systemd - follow up fix to https://github.com/ansible/ansible/issues/72338 470 to use ``list-unit-files`` rather than ``list-units`` in order to show all 471 units files on the system. 472 473 ' 474 - systemd - made the systemd module work correctly when the SYSTEMD_OFFLINE 475 environment variable is set 476 - 'systemd - preserve the full unit name when using a templated service and 477 ``systemd`` failed to parse dbus due to a known bug in ``systemd`` (https://github.com/ansible/ansible/pull/72985) 478 479 ' 480 - 'systemd - work around bug with ``systemd`` 245 and 5.8 kernel that does not 481 correctly report service state (https://github.com/ansible/ansible/issues/71528) 482 483 ' 484 - 'task parsing - strip spaces from action name when using ``action: foo bar=baz`` 485 form. (https://github.com/ansible/ansible/issues/62136)' 486 - templating - fix error message for ``x in y`` when y is undefined (https://github.com/ansible/ansible/issues/70984) 487 - the unvault lookup plugin returned a byte string. Now returns a real string. 488 - to_text(stdout) before json.loads in psrp.Connection.put_file in case stdout 489 is bytes 490 - unarchive - ``zip`` unarchive no longer errors on RHEL/CentOS 6 and old Fedora 491 when attempting to use a numeric gid (https://github.com/ansible/ansible/issues/71903). 492 - unarchive - check ``fut_gid`` against ``run_gid`` in addition to supplemental 493 groups (https://github.com/ansible/ansible/issues/49284) 494 - undeprecate hash_merge setting and add more docs clarifying its use and why 495 not to use it. 496 - uri - ``status_code`` elements are type ``int`` 497 - url lookup - make sure that options supplied in ansible.cfg are actually used 498 (https://github.com/ansible/ansible/pull/71736). 499 - url lookup - set default user agent to ``ansible-httpget`` (https://github.com/ansible/ansible/pull/72324) 500 - urls - Close filedescriptor of certificate chain tempfile to prevent stale 501 filedescriptor leakage (https://github.com/ansible/ansible/pull/71825). 502 - 'user - AnsibleModule.run_command returns a tuple of return code, stdout and 503 stderr. The module main function of the user module expects user.create_user 504 to return a tuple of return code, stdout and stderr. Fix the locations where 505 stdout and stderr got reversed. 506 507 ' 508 - 'user - Local users with an expiry date cannot be created as the ``luseradd`` 509 / ``lusermod`` commands do not support the ``-e`` option. Set the expiry time 510 in this case via ``lchage`` after the user was created / modified. (https://github.com/ansible/ansible/issues/71942) 511 512 ' 513 - 'user - do the right thing when ``password_lock=True`` and ``password`` are 514 used together (https://github.com/ansible/ansible/issues/72992) 515 516 ' 517 - user - don't create home directory and missing parents when create_home == 518 false (https://github.com/ansible/ansible/pull/70600). 519 - validate-modules - do not raise an ``AttributeError`` if a value is assigned 520 to a module attribute in a try/except block. 521 - vault - Support reading raw binary data from stdin under python3 522 - virtual facts - kubevirt is now identified as "KubeVirt" and with a "guest" 523 role instead of "kvm" and "host" role (https://github.com/ansible/ansible/issues/72001). 524 - wait_for - catch and ignore errors when getting active connections with psutil 525 (https://github.com/ansible/ansible/issues/72322) 526 - win setup - Fix redirection path for the windows setup module 527 - windows async - use full path when calling PowerShell to reduce reliance on 528 environment vars being correct - https://github.com/ansible/ansible/issues/70655 529 - winrm - preserve winrm forensic data on put_file failures 530 - yamllint - do not raise an ``AttributeError`` if a value is assigned to a 531 module attribute at the top of the module. 532 deprecated_features: 533 - Starting in 2.14, shell and command modules will no longer have the option 534 to warn and suggest modules in lieu of commands. The ``warn`` parameter to 535 these modules is now deprecated and defaults to ``False``. Similarly, the 536 ``COMMAND_WARNINGS`` configuration option is also deprecated and defaults 537 to ``False``. These will be removed and their presence will become an error 538 in 2.14. 539 - apt_key - the parameter ``key`` does not have any effect, has been deprecated 540 and will be removed in ansible-core version 2.14 (https://github.com/ansible/ansible/pull/70319). 541 - psrp - Set the minimum version of ``pypsrp`` to ``0.4.0``. 542 known_issues: 543 - ansible-test - The ``pylint`` sanity test no longer correctly detects "bad" 544 variable names for non-constants. See https://github.com/PyCQA/pylint/issues/3701 545 for additional details. 546 major_changes: 547 - A collection can be reinstalled with new version requirements without using 548 the ``--force`` flag. The collection's dependencies will also be updated if 549 necessary with the new requirements. Use ``--upgrade`` to force transitive 550 dependency updates. 551 - 'Declared ``resolvelib >= 0.5.3, < 0.6.0`` a direct dependency of 552 553 ansible-core. Refs: 554 555 - https://github.com/sarugaku/resolvelib 556 557 - https://pypi.org/p/resolvelib 558 559 - https://pradyunsg.me/blog/2020/03/27/pip-resolver-testing 560 561 ' 562 - It became possible to install Ansible Collections from local folders and namespaces 563 folder similar to SCM structure with multiple collections. 564 - It became possible to upgrade Ansible collections from Galaxy servers using 565 the ``--upgrade`` option with ``ansible-galaxy collection install``. 566 - Support for role argument specification validation at role execution time. 567 When a role contains an argument spec, an implicit validation task is inserted 568 at the start of role execution. 569 - add ``ArgumentSpecValidator`` class for validating parameters against an argument 570 spec outside of ``AnsibleModule`` (https://github.com/ansible/ansible/pull/73335) 571 minor_changes: 572 - Add ``--format`` CLI option to ``ansible-galaxy collection list`` which allows 573 for ``human`` (default), ``yaml``, or ``json``. (https://github.com/ansible/ansible/pull/73474) 574 - Add an example for using var in with_sequence (https://github.com/ansible/ansible/issues/68836). 575 - Add new rolespec_validate option to the import/include_role modules do allow 576 disabling of the implicit role arg validation task on a per-role basis. 577 - Add option to pass extra vars to ansible-inventory 578 - Add path of collection location in Ansible CLI version info. 579 - Add standard Python 2/3 compatibility boilerplate to setup script, module_utils 580 and docs_fragments which were missing them. 581 - Add support for `argument_specs` data in role metadata. 582 - Add support for datetime.date object type in module result (https://github.com/ansible/ansible/issues/70583). 583 - Add which conditional is being evaluated at each step when debugging. 584 - Add yum/dnf version comparison documentation for package install 585 - Added NO_COLOR environment var to ansible color configuration, allowing it 586 to integrate with existing convention. 587 - Added name of aliases in user error (https://github.com/ansible/ansible/issues/58752). 588 - Added support for GSSAPI/Kerberos authentication with ``urls.py`` that is 589 used by ``uri`` and ``get_url``. 590 - Added support for specify custom credentials for GSSAPI authentication. 591 - Allow an attribute to be passed to the min and max filters with Jinja 2.10+ 592 - Allow for the skipped filter to be used on a registered looped task results. 593 (https://github.com/ansible/ansible/issues/16949) 594 - Allow inventory plugins access to extra vars by default 595 - Allow unsafe_writes to be set on target via env var, for those targets that 596 need a blanket setting. 597 - Also added extra vars cli option to console CLI. 598 - AnsiballZ - Improve performance of ``ModuleDepFinder`` by using faster lookups 599 and reducing the object types that are walked while looking for ``import`` 600 statements. (https://github.com/ansible/ansible/pull/70475) 601 - CLI - Specify jinja version in ``--version`` output 602 - CLI - Specify whether PyYAML includes libyaml support in version output 603 - CLI version displays clarified as core version 604 - 'Collection routing: Cisco NSO content from community.network migrated to 605 cisco.nso (https://github.com/ansible/ansible/pull/73046).' 606 - 'Collection routing: DellEMC content from community.general migrated to dellemc.openmanage 607 (https://github.com/ansible/ansible/pull/73046).' 608 - 'Collection routing: FortiOS content from community.network migrated to community.fortios 609 (https://github.com/ansible/ansible/pull/73046).' 610 - 'Collection routing: Google content from community.general migrated to community.google 611 (https://github.com/ansible/ansible/pull/73046).' 612 - 'Collection routing: Hashi Vault content from community.general migrated to 613 community.hashi_vault (https://github.com/ansible/ansible/pull/73046).' 614 - 'Collection routing: Hetzner Robot content from community.general migrated 615 to community.hrobot (https://github.com/ansible/ansible/pull/73046).' 616 - 'Collection routing: KubeVirt content from community.general migrated to community.kubevirt 617 (https://github.com/ansible/ansible/pull/73046).' 618 - 'Collection routing: OC content from community.general migrated to community.okd 619 (https://github.com/ansible/ansible/pull/73046).' 620 - 'Collection routing: PostgreSQL content from community.general migrated to 621 community.postgresql (https://github.com/ansible/ansible/pull/73046).' 622 - 'Collection routing: RouterOS content from community.network migrated to community.routeros 623 (https://github.com/ansible/ansible/pull/73046).' 624 - 'Collection routing: docker content from community.general migrated to community.docker 625 (https://github.com/ansible/ansible/pull/73046).' 626 - Controller - Add warning for Ansible 2.11 when running a Python version older 627 than Python 3.8 to inform users that 2.12 will only support Python 3.8 and 628 newer on the controller. Starting with Ansible 2.11, the project will only 629 be packaged for Python 3.8 and newer. 630 - Discourage the use of 'hexdigits' in password lookup, as it distorts expected 631 entropy. 632 - Enable extra vars for inventory plugin options 633 - Errors - Ensure that errors passed with ``orig_exc`` include the context of 634 that exception (https://github.com/ansible/ansible/issues/68605) 635 - Filters - Add new ``split`` filter for splitting strings 636 - Fixed ansible-doc to not substitute for words followed by parenthesis. For 637 instance, ``IBM(International Business Machines)`` will no longer be substituted 638 with a link to a non-existent module. https://github.com/ansible/ansible/pull/71070 639 - Force the template module to use non-native Jinja2 (https://github.com/ansible/ansible/issues/46169) 640 - Internal config entries will not be documented, to mark an entry as internal 641 it must start with `_`. 642 - Interpreter Discovery - Add Python 3.8 and Python 3.9 to the fallback list 643 - Minor code cleanup in plugin loader. 644 - Module API - libselinux-python is no longer required for basic module API 645 selinux operations (affects core modules assemble, blockinfile, copy, cron, 646 file, get_url, lineinfile, setup, replace, unarchive, uri, user, yum_repository) 647 - Module API - new module_respawn API allows modules that need to run under 648 a specific Python interpreter to respawn in place under that interpreter 649 - Module iptables multiport destination support added (https://github.com/ansible/ansible/pull/72928) 650 - Module iptables set/ipset support added (https://github.com/ansible/ansible/pull/72984) 651 - New 'timeout' feature added to adhoc and console CLIs, corresponding to the 652 recent 'timeout' task keyword. 653 - New virtualization facts, ``virtualization_tech_guest`` and ``virtualization_tech_host`` 654 now allow for conveying when a system is a host or guest of multiple virtualization 655 technologies. 656 - Now 'choices' keyword in config definitions also restricts valid values for 657 the entry. 658 - Refactored ``ansible-galaxy collection [download|install|list|verify]`` CLI 659 subcommands with the public interface kept intact. 660 - Restructured _fixup_perms2() in ansible.plugins.action to make it more linear 661 - Shadow prompt input to ansible-vault encrypt-string unless the ``--show-input`` 662 flag is set 663 - Switch to hashlib.sha256() for ansible-test to allow for FIPs mode. 664 - TOML inventory plugin is no longer in preview status 665 - Templar - reduce the complexity of ``Templar._lookup`` (https://github.com/ansible/ansible/pull/73277) 666 - The ``csvfile`` lookup plugin now uses ``parse_kv()`` internally. As a result, 667 multi-word search keys can now be passed. 668 - The ``csvfile`` lookup plugin's documentation has been fixed; it erroneously 669 said that the delimiter could be ``t`` which was never true. We now accept 670 ``\t``, however, and the error in the documentation has been fixed to note 671 that. 672 - The constructed inventory plugin has new option to force using vars plugins 673 on previouslly processed inventory sources. 674 - The find module is now more specific about the reasons it skips candidate 675 files. 676 - The logging functionality in module_utils.basic now returns a nicer error 677 when it falls back to syslog but ends up getting a TypeError thrown back. 678 - The new dependency resolver prefers ``MANIFEST.json`` over ``galaxy.yml`` 679 if it exists in the target directory. 680 - The plugin loader now keeps track of the collection where a plugin was resolved 681 to, in particular whether the plugin was loaded from ansible-core's internal 682 paths (``ansible.builtin``) or from user-supplied paths (no collection name). 683 - Toggle allowing usage of extra_vars in compose 684 - When connecting as an unprivileged user, and becoming an unprivileged user, 685 we now fall back to also trying ``chmod +a`` which works on macOS and makes 686 use of ACLs. 687 - allow tree callback plugin to be configurable, for use with playbooks. 688 - ansible-doc - In Windows setup steps, ``ExecutionPolicy`` should be restored 689 to default value ``RemoteSigned`` (https://github.com/ansible/ansible/pull/72993). 690 - ansible-doc - provide ``has_action`` field in JSON output for modules. That 691 information is currently only available in the text view (https://github.com/ansible/ansible/pull/72359). 692 - ansible-doc has new option to show keyword documentation. 693 - ansible-doc will now format, ``L()``, ``R()``, and ``HORIZONTALLINE`` in plugin 694 docs just as the website docs do. https://github.com/ansible/ansible/pull/71070 695 - ansible-galaxy - Add installation successful message 696 - ansible-galaxy - Added caching mechanisms when retrieving collection info 697 to speed up installs and downloads 698 - ansible-galaxy - Change the output verbosity level of the download message 699 from 3 to 0 (https://github.com/ansible/ansible/issues/70010) 700 - ansible-galaxy - Ensure ``get_collection_versions`` returns an empty list 701 when a collection does not exist for consistency across API versions. 702 - 'ansible-galaxy - find any collection dependencies in the globally configured 703 Galaxy servers and not just the server the parent collection is from. 704 705 ' 706 - ansible-test - A warning is no longer emitted when a ``pip*`` or ``python*`` 707 binary is found without a matching couterpart. 708 - ansible-test - Add ``macos/10.15`` as a supported value for the ``--remote`` 709 option. 710 - ansible-test - Add a ``--docker-network`` option to choose the network for 711 running containers when using the ``--docker`` option. 712 - ansible-test - Add support for running tests on Fedora 33 (https://github.com/ansible/ansible/pull/72861). 713 - ansible-test - Added Ubuntu 20.04 LTS image to the default completion list 714 - ansible-test - Added a ``--export`` option to the ``ansible-test coverage 715 combine`` command to facilitate multi-stage aggregation of coverage in CI 716 pipelines. 717 - ansible-test - Added the ``-remote rhel/7.9`` option to run tests on RHEL 718 7.9 719 - ansible-test - Allow custom ``--remote-stage`` options for development and 720 testing. 721 - ansible-test - CentOS 8 container is now 8.2.2004 (https://github.com/ansible/distro-test-containers/pull/45). 722 - ansible-test - Changed the internal name of the custom plugin used to identify 723 use of unwanted imports and functions. 724 - ansible-test - Cleaned up code to resolve warnings and errors reported by 725 PyCharm. 726 - ansible-test - Code cleanup in the ``import`` sanity test. 727 - ansible-test - Code cleanup in the internal logic for code coverage collection 728 of PowerShell modules. 729 - ansible-test - Collections can now specify pip constraints for unit and integration 730 test requirements using ``tests/unit/constraints.txt`` and ``tests/integration/constraints.txt`` 731 respectively. 732 - ansible-test - Containers used with the ``--remote`` option have been updated 733 to version 1.29.0 to include the latest Ansible requirements. 734 - ansible-test - Files used to track remote instances no longer have a region 735 suffix. 736 - ansible-test - Fix ``ansible-test coverage`` reporting sub-commands (``report``, 737 ``html``, ``xml``) on Python 2.6. 738 - ansible-test - Fix container hostname/IP discovery for the ``acme`` test plugin. 739 - ansible-test - FreeBSD 11.4 and 12.2 provisioning can now be used with the 740 ``--python 3.8`` option. 741 - ansible-test - FreeBSD instances provisioned with ``--remote`` now make ``libyaml`` 742 available for use with PyYAML installation. 743 - ansible-test - Generation of an ``egg-info`` directory, if needed, is now 744 done after installing test dependencies and before running tests. When running 745 from an installed version of ``ansible-test`` a temporary directory is used 746 to avoid permissions issues. Previously it was done before installing test 747 dependencies and adjacent to the installed directory. 748 - ansible-test - Implemented CloudStack test container selection by ENV variable 749 `ANSIBLE_CLOUDSTACK_CONTAINER` with a default to `quay.io/ansible/cloudstack-test-container:1.4.0`. 750 - ansible-test - Improved handling of minimum Python version requirements for 751 sanity tests. Supported versions are now included in warning messages displayed 752 when tests are skipped. 753 - ansible-test - More sanity test requirements have been pinned to specific 754 versions to provide consistent test results. 755 - ansible-test - Most sanity test specific ``pip`` constraints are now used 756 only when running sanity tests. This should reduce conflicts with ``pip`` 757 requirements and constraints when testing collections. 758 - ansible-test - Most sanity tests are now skipped on Python 3.5 and earlier 759 with a warning. Previously this was done for Python 2.7 and earlier. 760 - ansible-test - Now supports freebsd/11.4 remote (https://github.com/ansible/ansible/issues/48782). 761 - ansible-test - Now supports freebsd/12.2 remote (https://github.com/ansible/ansible/issues/72366). 762 - ansible-test - OpenSuse container now uses Leap 15.2 (https://github.com/ansible/distro-test-containers/pull/48). 763 - ansible-test - Pin the ``virtualenv`` version used for ``--remote`` pip installs 764 to the latest version supported by Python 2.x, which is version 16.7.10. 765 - ansible-test - Provisioning of RHEL instances now includes installation of 766 pinned versions of ``packaging`` and ``pyparsing`` to match the downstream 767 vendored versions. 768 - ansible-test - RHEL 8.2+ provisioning can now be used with the ``--python 769 3.8`` option, taking advantage of the Python 3.8 AppStream. 770 - ansible-test - Raise the number of bytes scanned by ansible-test to determine 771 if a file is binary to 4096. 772 - ansible-test - Refactor code for installing ``cryptography`` to allow re-use 773 in the future. 774 - ansible-test - Refactor code to remove unused logic for obsolete support of 775 multiple provisioning endpoints. 776 - ansible-test - Remove ``pytest < 6.0.0`` constraint for managed installations 777 on Python 3.x now that pytest 6 is supported. 778 - ansible-test - Remove em dash from the Pytest configuration file in order 779 to be readable on systems where preferred encoding is ASCII. (https://github.com/ansible/ansible/issues/71739) 780 - 'ansible-test - Remove outdated ``--docker`` completion entries: fedora30, 781 fedora31, ubuntu1604' 782 - 'ansible-test - Remove outdated ``--remote`` completion entries: freebsd/11.1, 783 freebsd/12.1, osx/10.11, macos/10.15, rhel/7.6, rhel/7.8, rhel/8.1, rhel/8.2' 784 - 'ansible-test - Remove outdated ``--windows`` completion entries: 2008, 2008-R2' 785 - ansible-test - Remove the discontinued ``us-east-2`` choice from the ``--remote-aws-region`` 786 option. 787 - 'ansible-test - Remove unused ``--remote`` completion entry: power/centos/7' 788 - ansible-test - Removed ``pip`` constraints related to integration tests that 789 have been moved to collections. This should reduce conflicts with ``pip`` 790 requirements and constraints when testing collections. 791 - ansible-test - Removed the obsolete ``--remote-aws-region`` provisioning option. 792 - ansible-test - Removed the obsolete ``tower`` test plugin for testing Tower 793 modules. 794 - ansible-test - Removed unused provisioning code and cleaned up remote provider 795 management logic. 796 - ansible-test - Rename internal functions to match associated constant names 797 that were previously updated. 798 - ansible-test - Reorganize internal ``pylint`` configuration files for easier 799 comparison and maintenance. 800 - ansible-test - Report the correct line number in the ``yamllint`` sanity test 801 when reporting ``libyaml`` parse errors in module documentation. 802 - ansible-test - Request remote resources by provider name for all provider 803 types. 804 - ansible-test - Show a warning when the obsolete ``--remote-aws-region`` option 805 is used. 806 - ansible-test - Silence ``pip`` warnings about Python 3.5 being EOL when installing 807 requirements. 808 - ansible-test - Support custom remote endpoints with the ``--remote-endpoint`` 809 option. 810 - ansible-test - The ``--remote`` option no longer pre-installs the ``virtualenv`` 811 module on Python 3.x instances. The Python built-in ``venv`` module should 812 be used instead. 813 - ansible-test - The ``default`` container for both collections and core have 814 been updated to versions 2.11.0 and 1.9.0 respectively. 815 - ansible-test - The ``pylint`` sanity test is now skipped with a warning on 816 Python 3.9 due to unresolved upstream regressions. 817 - ansible-test - The ``pylint`` sanity test is now supported on Python 3.8. 818 - ansible-test - The ``rstcheck`` sanity test is no longer used for collections, 819 but continues to be used for ansible-core. 820 - ansible-test - Ubuntu containers as well as ``default-test-container`` and 821 ``ansible-base-test-container`` are now slightly smaller due to apt cleanup 822 (https://github.com/ansible/distro-test-containers/pull/46). 823 - ansible-test - Update ``pylint`` and its dependencies to the latest available 824 versions to support Python 3.9. 825 - ansible-test - Update built-in service endpoints for the ``--remote`` option. 826 - ansible-test - Updated the default test containers to version 3.1.0. 827 - ansible-test - Upgrade ansible-runner version used in compatibility tests, 828 remove some tasks that were only needed with older versions, and skip in python2 829 because ansible-runner is soon dropping it. 830 - ansible-test - Use new endpoint for Parallels based instances with the ``--remote`` 831 option. 832 - ansible-test - ``default-test-container`` and ``ansible-base-test-container`` 833 now use Python 3.9.0 instead of 3.9.0rc1. 834 - ansible-test - add https endpoint for ansible-test 835 - ansible-test - add macOS 11.1 as a remote target (https://github.com/ansible/ansible/pull/72622) 836 - ansible-test - add the collection plugin directories ``plugin_utils`` and 837 ``sub_plugins`` to list of plugin types. This ensures such plugins are tested 838 for the ``import`` sanity test (https://github.com/ansible/ansible/pull/73599). 839 - ansible-test - centos6 end of life - container image updated to point to vault 840 base repository (https://github.com/ansible/distro-test-containers/pull/54) 841 - ansible-test - centos6 image now has multiple fallback yum repositories for 842 CentOS Vault. 843 - ansible-test - default container now uses default-test-container 2.7.0 and 844 ansible-base-test-container 1.6.0. This brings in Python 3.9.0rc1 for testing. 845 - ansible-test - now makes a better attempt to support podman when calling ``docker 846 images`` and asking for JSON format. 847 - ansible-test - python-cryptography is now bounded at <3.2, as 3.2 drops support 848 for OpenSSL 1.0.2 upon which some of our CI infrastructure still depends. 849 - ansible-test - remote macOS instances no longer install ``virtualenv`` during 850 provisioning 851 - ansible-test - the ACME test container was updated, it now supports external 852 account creation and has a basic OCSP responder (https://github.com/ansible/ansible/pull/71097, 853 https://github.com/ansible/acme-test-container/releases/tag/2.0.0). 854 - ansible-test - the ``import`` sanity test now also tries to import all non-module 855 and non-module_utils Python files in ``lib/ansible/`` resp. ``plugins/`` (https://github.com/ansible/ansible/pull/72497). 856 - ansible-test - virtualenv helper scripts now prefer ``venv`` on Python 3 over 857 ``virtualenv`` 858 - ansible-test Now supports RHEL 8.3 859 - ansible-test pylint - ensure that removal collection version numbers conform 860 to the semantic versioning specification at https://semver.org/ (https://github.com/ansible/ansible/pull/71679). 861 - ansible-test pylint sanity test - stop ignoring ``used-before-assignment`` 862 errors (https://github.com/ansible/ansible/pull/73639). 863 - ansible-test runtime-metadata - compare deprecation and tombstone versions 864 to the current version to ensure that they are correct (https://github.com/ansible/ansible/pull/72625). 865 - ansible-test runtime-metadata - ensure that removal collection version numbers 866 conform to the semantic versioning specification at https://semver.org/ (https://github.com/ansible/ansible/pull/71679). 867 - ansible-test runtime-metadata - ensure that the tombstone removal date is 868 not in the future (https://github.com/ansible/ansible/pull/72625). 869 - ansible-test runtime-metadata - validate removal version numbers, and check 870 removal dates more strictly (https://github.com/ansible/ansible/pull/71679). 871 - ansible-test validate-modules - ensure that removal collection version numbers 872 and version_added collection version numbers conform to the semantic versioning 873 specification at https://semver.org/ (https://github.com/ansible/ansible/pull/71679). 874 - ansible-test validate-modules - no longer assume that ``default`` for ``type=bool`` 875 options is ``false``, as the default is ``none`` and for some modules, ``none`` 876 and ``false`` mean different things (https://github.com/ansible/ansible/issues/69561). 877 - ansible-test validate-modules - validate removal version numbers (https://github.com/ansible/ansible/pull/71679). 878 - ansible.utils.encrypt now returns `AnsibleError` instead of crypt.crypt's 879 `OSError` on Python 3.9 880 - apt - module now works under any supported Python interpreter 881 - apt_repository - module now works under any supported Python interpreter 882 - callback plugins - ``meta`` tasks now get sent to ``v2_playbook_on_task_start``. 883 Explicit tasks are always sent. Plugins can opt in to receiving implicit ones. 884 - callbacks - Add feature allowing forks to send callback events (https://github.com/ansible/ansible/issues/14681) 885 - conditionals - change the default of CONDITIONAL_BARE_VARS to False (https://github.com/ansible/ansible/issues/70682). 886 - 'config - more types are now automatically coerced to string when ``type: 887 str`` is used and the value is parsed as a different type' 888 - constructed - Add a toggle to allow the separator to be omitted if no prefix 889 has been provided. 890 - constructed inventory plugin - Sanitize group names created from the ``groups`` 891 option silently. 892 - create ``get_type_validator`` standalone function and move that functionality 893 out of ``AnsibleModule`` (https://github.com/ansible/ansible/pull/72667) 894 - create ``get_unsupported_parameters`` validation function (https://github.com/ansible/ansible/pull/72447/files) 895 - debconf - add a note about no_log=True since module might expose sensitive 896 information to logs (https://github.com/ansible/ansible/issues/32386). 897 - default callback - add ``show_task_path_on_failure`` option to display file 898 and line number of tasks only on failed tasks when running at normal verbosity 899 level (https://github.com/ansible/ansible/issues/64625) 900 - default callback - task name is now shown for ``include_tasks`` when using 901 the ``free`` strategy (https://github.com/ansible/ansible/issues/71277). 902 - default callback - task name is now shown for ``include_tasks`` when using 903 the ``linear`` strategy with ``ANSIBLE_DISPLAY_SKIPPED_HOSTS=0``. 904 - default_callback - moving 'check_mode_markers' documentation in default_callback 905 doc_fragment (https://github.com/ansible-collections/community.general/issues/565). 906 - distribution - add support for DragonFly distribution (https://github.com/ansible/ansible/issues/43739). 907 - distribution - added distribution fact and hostname support for Parrot OS 908 (https://github.com/ansible/ansible/pull/69158). 909 - distribution - handle NetBSD OS Family (https://github.com/ansible/ansible/issues/43739). 910 - distribution facts - ``distribution_release`` is now ``"Stream"`` on CentOS 911 Stream (https://github.com/ansible/ansible/issues/73027). 912 - dnf - Add nobest option (https://github.com/ansible/ansible/issues/69983) 913 - 'dnf - When ``state: absent``, package names are now matched similarly to 914 how the ``dnf`` CLI matches them (https://github.com/ansible/ansible/issues/72809).' 915 - dnf - module now works under any supported Python interpreter 916 - dnf - now shows specific package changes (installations/removals) under ``results`` 917 in check_mode. (https://github.com/ansible/ansible/issues/66132) 918 - facts - ``/dev/kvm`` is now consulted in Linux virtualization facts, and the 919 host is considered a KVM host if this file exists and none of the pre-existing 920 checks matched. 921 - facts - add new fact ``date_time['tz_dst']``, which returns the daylight saving 922 timezone (https://github.com/ansible/ansible/issues/69004). 923 - facts - add uptime to openbsd 924 - find module - Now has a ``read_whole_file`` boolean parameter which allows 925 for reading the whole file and doing an ``re.search()`` regex evaluation on 926 it when searching using the ``contains`` option. This allows (for example) 927 for ensuring the very end of the file matches a pattern. 928 - galaxy - add documentation about galaxy parameters in examples/ansible.cfg 929 (https://github.com/ansible/ansible/issues/68402). 930 - galaxy - handle token as dict while loading from yaml file (https://github.com/ansible/ansible/issues/70887). 931 - get_url - allow checksum urls to point to file:// resources, moving scheme 932 test to function 933 - get_url - handle same SHA sum for checksum file (https://github.com/ansible/ansible/issues/71420). 934 - git - add ``single_branch`` parameter (https://github.com/ansible/ansible/pull/28465) 935 - hash filter - fail when unsupported hash type is passed as an argument (https://github.com/ansible/ansible/issues/70258) 936 - inventory cache - do not show a warning when the cache file does not (yet) 937 exist. 938 - iptables - add a note about ipv6-icmp in protocol parameter (https://github.com/ansible/ansible/issues/70905). 939 - iptables - fixed get_chain_policy API (https://github.com/ansible/ansible/issues/68612). 940 - iptables - reorder comment postition to be at the end (https://github.com/ansible/ansible/issues/71444). 941 - lineinfile - add search_string parameter for non-regexp searching (https://github.com/ansible/ansible/issues/70470) 942 - linux facts - Add additional check to ensure 'container' virtual fact gets 943 added to guest_tech when appropriate (https://github.com/ansible/ansible/pull/71385) 944 - meta - now include a ``skip_reason`` when skipped (https://github.com/ansible/ansible/pull/71355). 945 - module_utils - ``get_file_attributes()`` now takes an optional ``include_version`` 946 boolean parameter. When ``True`` (default), the file's version/generation 947 number is included in the result (but requires ``lsattr -v`` to work on the 948 target platform). 949 - now !unsafe works on all types of data, not just strings, even recursively 950 for mappings and sequences. 951 - package_facts - module support for apt and rpm now works under any supported 952 Python interpreter 953 - pipe lookup - update docs for Popen with shell=True usages (https://github.com/ansible/ansible/issues/70159). 954 - plugin examples - Allow non-YAML examples, so that examples for plugins like 955 the INI and TOML inventory plugins can be directly represented (https://github.com/ansible/ansible/pull/71184) 956 - plugin option validation - now the option type ``dict``/``dictionary`` is 957 also validated by the config manager (https://github.com/ansible/ansible/pull/71928). 958 - 'reboot - add ``reboot_command`` parameter to allow specifying the command 959 used to reboot the system (https://github.com/ansible/ansible/issues/51359) 960 961 ' 962 - remove ``excommunicate`` debug command from AnsiballZ 963 - selinux - return selinux_getpolicytype facts correctly. 964 - service_facts - return service state information on AIX. 965 - setup - allow list of filters (https://github.com/ansible/ansible/pull/68551). 966 - setup.py - Declare that Python 3.9 is now supported (https://github.com/ansible/ansible/pull/72861). 967 - setup.py - Skip doing conflict checks for ``sdist`` and ``egg_info`` commands 968 (https://github.com/ansible/ansible/pull/71310) 969 - subelements - clarify the lookup plugin documentation for parameter handling 970 (https://github.com/ansible/ansible/issues/38182). 971 - subversion - ``validate_certs`` option, which, when true, will avoid passing 972 ``--trust-server-cert`` to ``svn`` commands (https://github.com/ansible/ansible/issues/22599). 973 - unarchive - Add support for .tar.zst (zstd compression) (https://github.com/ansible/ansible/pull/73265). 974 - unarchive - add ``RETURN`` documentation (https://github.com/ansible/ansible/issues/67445). 975 - 'unarchive - add ``include`` parameter to allow extracting specific files 976 from an archive (https://github.com/ansible/ansible/pull/40522) 977 978 ' 979 - update sphinx to 2.1.2 and rstcheck to 3.3.1 for building documentation. 980 - uri - add ``ca_path`` argument to allow specification of a CA certificate 981 (https://github.com/ansible/ansible/pull/71979). 982 - user - add new parameters ``password_expire_max`` and ``password_expire_min`` 983 for controlling password expiration (https://github.com/ansible/ansible/issues/68775) 984 - varnames lookup plugin - Fixed grammar error in exception message when the 985 plugin is given a non-string term. 986 - vault - Provide better error for single value encrypted values to indicate 987 the file, line, and column of the errant vault (https://github.com/ansible/ansible/issues/72276) 988 - version test - Add semantic version functionality 989 - virtual facts - containerd cgroup is now recognized as container tech (https://github.com/ansible/ansible/issues/66304). 990 - virtualization facts - Detect ``vdsmd`` in addition to ``vdsm`` when trying 991 to detect RHEV hosts. (https://github.com/ansible/ansible/issues/66147) 992 - winrm - Added ``ansible_winrm_kinit_args`` that can be used to control the 993 args that are sent to the ``kinit`` call for Kerberos authentication. 994 - yum - module now works under any supported Python interpreter 995 - yum_repository - added boolean option module_hotfixes which allows to enable 996 functionality for dnf. 997 release_summary: '| Release Date: 2021-03-02 998 999 | `Porting Guide <https://docs.ansible.com/ansible/devel/porting_guides.html>`__ 1000 1001 ' 1002 removed_features: 1003 - Removed `SharedPluginLoaderObj` class from ansible.plugins.strategy. It was 1004 deprecated in favor of using the standard plugin loader. 1005 - Removed `_get_item()` alias from callback plugin base class which had been 1006 deprecated in favor of `_get_item_label()`. 1007 - The "user" parameter was previously deprecated and is now removed in favor 1008 of "scope" 1009 - The deprecated ``ansible.constants.BECOME_METHODS`` has been removed. 1010 - The deprecated ``ansible.constants.get_config()`` has been removed. 1011 - The deprecated ``ansible.constants.mk_boolean()`` has been removed. 1012 - '`with_*` loops are no longer optimized for modules whose `name` parameters 1013 can take lists (mostly package managers). Use `name` instead of looping over 1014 individual names with `with_items` and friends.' 1015 security_fixes: 1016 - '**security issue** - Mask default and fallback values for ``no_log`` module 1017 options (CVE-2021-20228)' 1018 - '**security issue** - copy - Redact the value of the no_log ''content'' parameter 1019 in the result''s invocation.module_args in check mode. Previously when used 1020 with check mode and with ''-vvv'', the module would not censor the content 1021 if a change would be made to the destination path. (CVE-2020-14332) 1022 1023 ' 1024 - Sanitize no_log values from any response keys that might be returned from 1025 the uri module (CVE-2020-14330). 1026 - dnf - Previously, regardless of the ``disable_gpg_check`` option, packages 1027 were not GPG validated. They are now. (CVE-2020-14365) 1028 codename: Hey Hey, What Can I Do 1029 fragments: 1030 - 14681-allow-callbacks-from-forks.yml 1031 - 16456-correct-YAML-error-message-when-file-load-failed.yml 1032 - 16949-global-skipped-result-flag-looped-tasks.yml 1033 - 17029-prevent-user-fact-lookup-failure-is-logname-is-set.yml 1034 - 17268-inventory-hostnames.yml 1035 - 22599_svn_validate_certs.yml 1036 - 23958-cleanup.yml 1037 - 29351-expect-bytes.yml 1038 - 32143-pause-background-hangs.yml 1039 - 32174-normalize-None-quote.yml 1040 - 322214-hostname-macos-support.yml 1041 - 32386_debconf_password.yml 1042 - 37132-delegate-to-loop-context.yml 1043 - 38182_subelements.yml 1044 - 38760-slackware-os-dist.yml 1045 - 40522-unarchive-add-include.yml 1046 - 43739_dragonflybsd_disto.yml 1047 - 45475_galaxy.yml 1048 - 46169-non-native-template-module.yml 1049 - 50909-min-max-attrs.yml 1050 - 52229-vault-python3-binary-stdin.yml 1051 - 55152-add-more-info-to-AnsibleUndefinedVariable.yml 1052 - 565_default_callback.yml 1053 - 58752_argument_aliases.yml 1054 - 60882-keyed_groups-leading-separator-toggle.yaml 1055 - 61234-yum-dnf-version-comp-doc.yml 1056 - 61369_get_url.yml 1057 - 62136_strip_spaces_from_action_names.yml 1058 - 63105-wcswidth.yml 1059 - 63378_find_module_regex_whole_file.yml 1060 - 63417-unique-filter-preserve-order.yml 1061 - 64469_git_no_raw.yml 1062 - 64625-show-file-path-on-task-failure-callback-option.yml 1063 - 65262_ansible_inventory.yml 1064 - 65710-find-include-parent.yml 1065 - 65812-paramiko-attribute-error.yml 1066 - 66132_dnf_show_pkgs_in_check_mode.yml 1067 - 66147_rhev_vdsm_vdsmd.yml 1068 - 66304-facts_containerd.yml 1069 - 67508-meta-task-tags.yaml 1070 - 68275-vault-module-args.yml 1071 - 68402_galaxy.yml 1072 - 68551_allow_list_of_filters_for_the_setup_module.yml 1073 - 68605-ansible-error-orig-exc-context.yml 1074 - 68612_iptables.yml 1075 - 68770_cache_adjudicator_flush.yml 1076 - 69352-netbsd-virtual-facts.yml 1077 - 69463-fix-apt_repository-typeerror- instancemethod.yaml 1078 - 69531_user_password_expire.yml 1079 - 69578-shell-remote_tmp-quoting.yaml 1080 - 69640-file_should_warn_when_path_and_owner_or_group_dont_exist.yml 1081 - 69848-fix-rerunning-tagged-roles.yml 1082 - 70017-avoid-params-to-callable-checkers.yml 1083 - 70042-dnf-repository-hotfixes.yml 1084 - 70045-ansible-doc-yaml-anchors.yml 1085 - 70046-ansible-doc-description-crash.yml 1086 - 70056-add-a-param-to-apt-module-to-avoid-unintended-uninstalls.yml 1087 - 70099-make-apt-errors-more-transparent.yaml 1088 - 70122-improve-error-message-ssh-client-is-not-found.yml 1089 - 70148-galaxy-role-info.yaml 1090 - 70168-fix-delegate_facts-without-interpreter-set.yml 1091 - 70238_selector.yml 1092 - 70244-selinux-special-fs.yml 1093 - 70256_stat_colon_split.yml 1094 - 70258-hash-filter-fail-unsupported-type.yml 1095 - 70261_pipe_lookup.yml 1096 - 70284-facts-get-nvme-serial-from-file.yml 1097 - 70318-dnf-add-nobest-option.yml 1098 - 70319-reduce-ignored-module-sanity-tests.yml 1099 - 70344-plugin-deprecation-collection-name.yml 1100 - 70375-galaxy-server.yml 1101 - 70426-allow-non-ascii-chars-in-cron.yml 1102 - 70437-ssh-args.yml 1103 - 70449-facts-add-dst-timezone.yml 1104 - 70465-assemble-fix-decrypt-argument.yaml 1105 - 70475-modify-module.yaml 1106 - 70484-bool-ansible-become.yaml 1107 - 70492-replace-filename-with-file-in-apt_key.yml 1108 - 70507-validate-null-author.yaml 1109 - 70524-fix-download-collections.yaml 1110 - 70525-setuptools-disutils-reorder.yml 1111 - 70583_datetime_date_in_module_result.yml 1112 - 70587-package_facts-apk.yml 1113 - 70600-user-module-dont-create-home-when-create_home-is-false.yml 1114 - 70640-find-empty-excludes.yml 1115 - 70649_time_clock.yml 1116 - 70683-terminal-ansi-re.yaml 1117 - 70687-improve-deprecation-message-bare-variable.yaml 1118 - 70690-async-interpreter.yml 1119 - 70704-void-linux-reboot.yml 1120 - 70762-sanitize-uri-keys.yml 1121 - 70784-vault-is-string.yml 1122 - 70831-skip-literal_eval-string-filter-native-jinja.yml 1123 - 70854-dnf-mutually-exclusive-filters.yml 1124 - 70869-ansible-test-validate-modules-version-added.yml 1125 - 70887_galaxy_token.yml 1126 - 70905_iptables_ipv6.yml 1127 - 70922-fix-block-in-rescue.yml 1128 - 70984-templating-ansibleundefined-in-operator.yml 1129 - 71007_callback_on_meta.yml 1130 - 71073-fortimanager-httpapi-redirect.yml 1131 - 71097-ansible-test-acme-container.yml 1132 - 71107-encryption.yml 1133 - 71184-allow-non-yaml-examples.yml 1134 - 71197-systemctl-ignore-message.yaml 1135 - 71205_get_url_allow_checksum_file_url.yml 1136 - 71214-add-vars-variable-for-delegated-vars.yaml 1137 - 71240-gluster-modules-redirect.yml 1138 - 71257-strftime-float.yml 1139 - 71277-include_tasks-show-name-with-free-strategy.yml 1140 - 71279-skip-conflict-check.yml 1141 - 71306-fix-exit-code-no-failure.yml 1142 - 71307-toml-dumps-unsafe.yml 1143 - 71355_execute_meta_skip_reason.yml 1144 - 71385-enhance-container-reporting-linux-vfacts.yml 1145 - 71420_get_url.yml 1146 - 71496-iptables-reorder-comment-position.yml 1147 - 71528-systemd-capbpf-workaround.yml 1148 - 71528-systemd-improve-unit-searching.yml 1149 - 71528-systemd-list-unit-files.yml 1150 - 71559-fix-distribution-fact-sles4sap.yaml 1151 - 71609-is_string-vault.yml 1152 - 71636_distro.yml 1153 - 71679-ansible-test.yml 1154 - 71704_selector.yml 1155 - 71722-fix-default-connection-timeout.yaml 1156 - 71735-deprecation-tagging.yml 1157 - 71739-remove-em-dash-from-pytest-config.yml 1158 - 71824-action-fqcns.yml 1159 - 71825-close-file-descriptor-after-building-cert-chaing.yml 1160 - 71903-unarchive-gid-cast.yml 1161 - 71905_bump-cloudstack-test-container.yml 1162 - 71920-fix-templating-recursion-error.yml 1163 - 71921-raise-bytes-for-binary-test.yml 1164 - 71928-ensure_type-dict.yml 1165 - 71966-ansible-doc-plugin-name.yml 1166 - 71977-ansible-galaxy-role-init.yml 1167 - 71979_ca_path_for_uri.yaml 1168 - 72025-fact-add-uptime-to-openbsd.yml 1169 - 72055-blockinfile-fix-insert-after-line-no-linesep.yml 1170 - 72073-service_facts-aix-src.yml 1171 - 72170-action-loader-collection-list.yml 1172 - 72197-upgrade-test-ansible-runner.yml 1173 - 72276-provide-better-vault-error.yml 1174 - 72315-fact-caching-relative-to-config.yml 1175 - 72316-dnf-filtering.yml 1176 - 72322-wait-for-handle-errors.yml 1177 - 72331-truenas-rc-major-version.yml 1178 - 72411-fips-mode-ansible-test.yml 1179 - 72428-action-groups-docker-k8s.yml 1180 - 72497-ansible-test-import-plugins.yml 1181 - 72511-always-prepend-role-to-task-name.yml 1182 - 72516-fix-aix-network-facts.yml 1183 - 72545_fix_facts_value_empty_key.yml 1184 - 72546-unarchive-returndoc.yml 1185 - 72591-ansible-galaxy-collection-resolvelib.yaml 1186 - 72615-jinja-import-context-fix.yml 1187 - 72623-ansible-test-unicode-paths.yml 1188 - 72697-improve-config-deprecations.yml 1189 - 72699-validate-modules-default-for-bools.yml 1190 - 72745-import_playbook-deprecation-extra-params.yml 1191 - 72754-extract-emb-func.yaml 1192 - 72809-dnf-remove-NV.yml 1193 - 72873-fix-fileglob-ordering.yml 1194 - 72894-add-alinux-hostname-module-support.yml 1195 - 72928_adding_multiport_support.yml 1196 - 72966-allow-tilde-inside-galaxy-roles.yml 1197 - 72979-fix-inventory-merge-hash-replace.yaml 1198 - 72984_adding_set_support.yml 1199 - 72992-user-account-lock-always-changes.yml 1200 - 72993-ansible-doc-has_action.yml 1201 - 73004-let-command-always-return-stdout-and-stderr.yml 1202 - 73027-differentiate-centos-stream.yml 1203 - 73059-improve-deprecation-texts.yml 1204 - 73084-rhel-for-edge-pkg_mgr-fact-fix.yml 1205 - 73120-rolemetadata-argspecs.yml 1206 - 73152-role-arg-spec.yaml 1207 - 73167-bhyve-facts.yml 1208 - 73176_sphinx_rstcheck_versions.yml 1209 - 73263-shadow-encrypt-string.yml 1210 - 73277-reduce-lookup-complexity.yml 1211 - 73335-argument-spec_validator.yml 1212 - 73336-ansible-galaxy_collection_install_upgrade.yaml 1213 - 73364-default-callback-host-pinned-not-lockstep.yml 1214 - 73428-changelog-linting-bump-version.yml 1215 - 73429-inventory-sanitization-constructed-features.yml 1216 - 73456-let-vault-lookup-output-string.yml 1217 - 73463_self_signed_https_endpoint_for_ansible-test.yml 1218 - 73474-galaxy-list-format-options.yml 1219 - 73498-INTERPRETER_PYTHON_DISTRO_MAP-Treat-oracle-same-as-rhel-centos.yml 1220 - 73557-ansible-galaxy-cache-paginated-response.yml 1221 - 73577-regex-fix.yml 1222 - 73589-rolespec-validate.yml 1223 - 73599-ansible-test-new-plugin-dirs.yml 1224 - 73619-hostname-almalinux-support.yml 1225 - 73639-ansible-test-pylint-ignores.yml 1226 - 73653-rolespec-rm-warning.yml 1227 - 73658-inventorymanager-throws-on-empty-inventory-dir.yml 1228 - 73665-fixes-ansible-console.yml 1229 - 73700-let-file-module-not-change-link-to-absolute-on-touch.yml 1230 - 73709-normalize-configparser.yml 1231 - 73718-find-dir-depth-traversal.yml 1232 - add_keywords_to_ansible_doc.yml 1233 - added_existing_nocolor.yml 1234 - allow_restricted_config_values.yml 1235 - ansiballz-remove-excommunicate.yaml 1236 - ansible-base-update-containers.yml 1237 - ansible-boilerplate.yml 1238 - ansible-doc-collection-name.yml 1239 - ansible-doc-formats.yml 1240 - ansible-doc-has_action.yml 1241 - ansible-doc-role-empty-meta-main.yml 1242 - ansible-galaxy-stdout.yml 1243 - ansible-galaxy-version-response.yml 1244 - ansible-test-acme-test-plugin.yml 1245 - ansible-test-azp-agent-temp-dir.yml 1246 - ansible-test-azp-change-detection.yml 1247 - ansible-test-azp-resource-prefix.yml 1248 - ansible-test-centos6-eol.yml 1249 - ansible-test-centos6-vault-mirrors.yml 1250 - ansible-test-change-classification.yml 1251 - ansible-test-changelog-lint-update.yml 1252 - ansible-test-cleanup-pylint-config.yml 1253 - ansible-test-cleanup.yml 1254 - ansible-test-code-cleanup.yml 1255 - ansible-test-code-naming.yml 1256 - ansible-test-collection-classification.yml 1257 - ansible-test-collection-constraints.yml 1258 - ansible-test-constraints-cryptography-old-openssl.yml 1259 - ansible-test-constraints-cryptography.yml 1260 - ansible-test-container-ip-lookup.yml 1261 - ansible-test-coverage-code-cleanup.yml 1262 - ansible-test-coverage-combine-export.yml 1263 - ansible-test-coverage-py26.yml 1264 - ansible-test-cryptography-refactor.yml 1265 - ansible-test-default-3.1.0.yml 1266 - ansible-test-default-container-update.yml 1267 - ansible-test-docker-default-network.yml 1268 - ansible-test-docker-detection-fix.yml 1269 - ansible-test-docker-not-localhost.yml 1270 - ansible-test-docker-socket.yml 1271 - ansible-test-egg-info-handling.yml 1272 - ansible-test-endpoint-update.yml 1273 - ansible-test-fedora33.yml 1274 - ansible-test-freebsd-python-3.8.yml 1275 - ansible-test-freebsd-pyyaml-libyaml.yml 1276 - ansible-test-freebsd11-4.yml 1277 - ansible-test-freebsd12-2.yml 1278 - ansible-test-macos-10.15.yml 1279 - ansible-test-more-code-cleanup.yml 1280 - ansible-test-network-container-search.yml 1281 - ansible-test-parallels-endpoint.yml 1282 - ansible-test-pip-bootstrap-s3.yml 1283 - ansible-test-pip-bootstrap.yml 1284 - ansible-test-platforms.yml 1285 - ansible-test-plugin-classification.yml 1286 - ansible-test-podman-json-format.yml 1287 - ansible-test-pylint-plugin-name.yml 1288 - ansible-test-pylint-python-3.8-3.9.yml 1289 - ansible-test-pylint-upgrade.yml 1290 - ansible-test-pytest-cap-revert.yml 1291 - ansible-test-pytest-cap.yml 1292 - ansible-test-python-exec-wrapper.yml 1293 - ansible-test-python-pip-warnings.yml 1294 - ansible-test-relative-import-analysis.yml 1295 - ansible-test-remote-aws-region.yml 1296 - ansible-test-remote-shell-raw.yml 1297 - ansible-test-rhel-python-3.8.yml 1298 - ansible-test-rhel-requirements.yml 1299 - ansible-test-rstcheck-core-only.yml 1300 - ansible-test-runtime-dates-versions.yml 1301 - ansible-test-sanity-ansible-doc.yml 1302 - ansible-test-sanity-importer-cleanup.yml 1303 - ansible-test-sanity-yamllint-lineno.yml 1304 - ansible-test-ssh-key-management.yml 1305 - ansible-test-tower-plugin.yml 1306 - ansible-test-ubuntu2004.yml 1307 - ansible-test-update-current-distro-containers.yml 1308 - ansible-test-updates.yml 1309 - ansible-test-validate-modules-file-common-args.yml 1310 - ansible-test-venv-virtualenv-fallback.yml 1311 - ansible-test-virtualenv-fix.yml 1312 - ansible-test-virtualenv-install.yml 1313 - ansible_runtime_meta.yml 1314 - ansible_test_yamllint_avoid_attribute_exception.yaml 1315 - apt_key_fixes.yml 1316 - arg_spec-check_arguments-handle_aliases.yml 1317 - arg_spec-get_type_validator.yml 1318 - async-race-condition.yml 1319 - better_os_environ_access.yml 1320 - better_winrm_putfile_error.yml 1321 - blockinfile_fix_no_backup_return.yml 1322 - bsd_rcconf_string_replace.yaml 1323 - cffi-constraint.yml 1324 - changed_clarified.yml 1325 - changed_when_group_by.yml 1326 - changelog-yaml.yml 1327 - ci-add-macos-11.yml 1328 - colleciton_flex_ac_dir_paths.yml 1329 - collection-ad-hoc.yml 1330 - collection-list-site-packages.yaml 1331 - collection_meta_use_libyaml.yml 1332 - collections_cb_fix.yml 1333 - command-warnings-deprecation-2.yml 1334 - command-warnings-deprecation.yml 1335 - constants-deprecation.yml 1336 - constructed_vars_plugins.yml 1337 - controller-python-warning.yml 1338 - copy-sanitize-check-mode-invocation-args.yaml 1339 - core_version.yml 1340 - crypt-oserror.yml 1341 - cryptography-fix.yml 1342 - csvfile-parse_kv.yml 1343 - date-time-facts-fix-utctime.yml 1344 - default-test-container160.yml 1345 - delegate_has_hostvars.yml 1346 - delegation_password.yml 1347 - deprecation-callback-get_item.yml 1348 - deprecation-strategy-SharedPluginLoaderObj.yml 1349 - deprecation-systemd-user.yml 1350 - deprecation-taskexecutor-squash.yml 1351 - dev-kvm.yml 1352 - display-stdout-column-width.yml 1353 - distribution_support_netbsd.yml 1354 - distribution_support_parrot.yml 1355 - dnf_gpg.yml 1356 - enable_su_on_local.yaml 1357 - ensure_local_user_correctness.yml 1358 - facts_fixes.yml 1359 - find_explicit.yml 1360 - fix-cron-file-regression.yaml 1361 - fix-incorrect-msg-in-loops-results.yml 1362 - fix_ansible_issue_71942.yaml 1363 - fix_bogus_coverage.yml 1364 - fix_expression_as_filename_in_compile.yaml 1365 - fix_inventory_source_parse_error_handling.yml 1366 - fix_lp_flat.yml 1367 - fix_meta_tasks_with_flush_cache.yml 1368 - fix_mount_point.yml 1369 - fix_reversed_return_value_order_72088.yaml 1370 - fix_role_var_loading.yml 1371 - fix_ssh_executable_options.yml 1372 - fixup_perms2-cleanup.yml 1373 - fq_action_module_resolution.yml 1374 - galaxy-cache.yml 1375 - galaxy-collection-fallback.yml 1376 - galaxy-collection-list-correct-arg-name.yml 1377 - galaxy-download-scm.yaml 1378 - galaxy-servers.yml 1379 - galaxy-sys-exit.yml 1380 - galaxy_collections_paths-remove-dep.yml 1381 - galaxy_login_bye.yml 1382 - get_file_attributes-without-lsattr-version.yml 1383 - git-add-single_branch.yml 1384 - give_compose_extra_vars.yml 1385 - handle_undefined_in_type_errors_filters.yml 1386 - inventory-cache-file-missing-warning.yaml 1387 - keep_log_at_info.yml 1388 - kubevirt-virt-fact.yml 1389 - lineinfile-add-search_string-parameter-for-non-regexp-searching.yaml 1390 - lineinfile_exc_fix.yml 1391 - linux-network-facts-broadcast-address.yaml 1392 - macos-chmod-acl.yml 1393 - max_fail_free.yml 1394 - moar_reserved_vars.yml 1395 - module_respawn.yml 1396 - module_utils_finder_refactor.yml 1397 - more-types-to-string-config.yml 1398 - multivirt.yml 1399 - native-jinja2-types-properly-handle-nested-undefined.yml 1400 - no_log-fallback.yml 1401 - package-use-manager-from-facts.yaml 1402 - passwd_lookup_hexdigits.yml 1403 - pause-catch-error-when-no-std-exists.yml 1404 - pause-do-not-warn-background-with-seconds.yml 1405 - pause-import.yml 1406 - pipelinig_to_plugins.yml 1407 - play_context_remove_redundant_pwd.yml 1408 - plugin-loader-cleanup.yml 1409 - plugin-loader-collection-name.yml 1410 - powershell-fix-quoting.yaml 1411 - powershell-nested-clixml.yml 1412 - powershell-version-env.yml 1413 - ps-sanity-requirements.yml 1414 - psrp-copy-empty-file.yml 1415 - psrp-copy.yaml 1416 - psrp-json-loads-bytes.yml 1417 - py26-multiprocess-queue-bug.yml 1418 - py38-py39-fallback.yml 1419 - pytest-collections-fix.yml 1420 - reboot-add-boot-command-parameter.yaml 1421 - remove_contradiction.yml 1422 - rhel-7.9.yml 1423 - rpmfluff-compat-fixes.yml 1424 - run-command-cwd.yml 1425 - runas-become-system-privileges.yml 1426 - runtime-splunk-redirect.yml 1427 - selinux_getpolicytype_compat.yml 1428 - set_fact-connection_vars.yml 1429 - set_mode_if_different-symlink-sticky-dir.yml 1430 - setup-py-declare-py39.yml 1431 - skip_invalid_coll_name_when_listing.yml 1432 - split-filter.yml 1433 - support_almalinux.yml 1434 - syslog-prettier-error.yml 1435 - systemd-preserve-full-unit-name.yml 1436 - test-ansible-runner-pin-psutil.yml 1437 - test_rhel83.yml 1438 - timeout_moar_clis.yml 1439 - toml-no-preview.yml 1440 - tree_config.yml 1441 - unarchive-check-future-gid-against-run-gid.yml 1442 - unarchive-support-zst.yml 1443 - undo_hashmerge_depr.yml 1444 - unsafe_for_all.yml 1445 - unsafe_writes_env.yml 1446 - unsafe_writes_fix.yml 1447 - update-conditionals-bare-vars-default.yml 1448 - uri-status-code-int.yml 1449 - url-lookup-add-httpagent.yml 1450 - url-lookup-ini.yml 1451 - urls-gssapi.yml 1452 - v2.11.0-initial-commit.yaml 1453 - v2.11.0b1_summary.yaml 1454 - validate-modules-ps-doc-blacklist.yaml 1455 - validate-modules_found_try_except_import_fails_module_attribute.yaml 1456 - vanquish-rare-container-bootstrap-failure.yml 1457 - varnames-error-grammar.yml 1458 - version-jinja.yml 1459 - version-libyaml-git.yml 1460 - version-test-semver.yml 1461 - which_when_false.yml 1462 - win_async_full_path.yml 1463 - win_setup-redirection.yaml 1464 - winrm_kinit_args.yaml 1465 - with_seq_example.yml 1466 - wrap_native_text-non-collections-only.yml 1467 modules: 1468 - description: Validate role argument specs. 1469 name: validate_argument_spec 1470 namespace: '' 1471 release_date: '2021-03-02' 1472 2.11.0b2: 1473 changes: 1474 bugfixes: 1475 - A handler defined within a role will now search handlers subdir for included 1476 tasks (issue https://github.com/ansible/ansible/issues/71222). 1477 - ALLOW_WORLD_READABLE_TMP, switched to 'moved' message as 'deprecation' is 1478 misleading since config settings still work w/o needing change. 1479 - Automatically remove async cache files for polled async tasks that have completed 1480 (issue https://github.com/ansible/ansible/issues/73206). 1481 - Deal with failures when sorting JSON and you have incompatible key types. 1482 - Setup virtualization_facts - add RHV and oVirt type. This change will fully 1483 work for VMs in clusters at cluster level 4.4 or newer (https://github.com/ansible/ansible/pull/72876). 1484 - '[set_fact] Corrected and expanded documentation as well as now raise errors 1485 that were previously ignored.' 1486 - ansible-test - ensure unit test paths for connection and inventory plugins 1487 are correctly identified for collections (https://github.com/ansible/ansible/issues/73876). 1488 - connection/ssh, ensure parameters come from correct source get_option, so 1489 functionality matches docs. 1490 - connection/ssh, fix reset to use same parameters to check if socket exists 1491 as actually used, was hardcoded to default string construction previouslly. 1492 - j2 plugin loader clarified comments, made note with better fqcn detection. 1493 - notify keyword is not ignored anymore on import_tasks, also able to apply 1494 to blocks now. 1495 - restrict module valid JSON parsed output to objects as lists are not valid 1496 responses. 1497 - setup, don't give up on all local facts gathering if one script file fails. 1498 - su become plugin, ensure correct type for localization option. 1499 minor_changes: 1500 - ansible-test - The generated ``resource_prefix`` variable now meets the host 1501 name syntax requirements specified in RFC 1123 and RFC 952. The value used 1502 for local tests now places the random number before the hostname component, 1503 rather than after. If the resulting value is too long, it will be truncated. 1504 - ansible-test validate-modules - option names that seem to indicate they contain 1505 secret information that should be marked ``no_log=True`` are now flagged in 1506 the validate-modules sanity test. False positives can be marked by explicitly 1507 setting ``no_log=False`` for these options in the argument spec. Please note 1508 that many false positives are expected; the assumption is that it is by far 1509 better to have false positives than false negatives (https://github.com/ansible/ansible/pull/73508). 1510 - distribution - add facts about Amazon Linux Distribution facts (https://github.com/ansible/ansible/issues/73742). 1511 - module payload builder - module_utils imports in any nested block (eg, ``try``, 1512 ``if``) are treated as optional during module payload builds; this allows 1513 modules to implement runtime fallback behavior for module_utils that do not 1514 exist in older versions of Ansible. 1515 release_summary: '| Release Date: 2021-03-15 1516 1517 | `Porting Guide <https://docs.ansible.com/ansible/devel/porting_guides.html>`__ 1518 1519 ' 1520 codename: Hey Hey, What Can I Do 1521 fragments: 1522 - 72876-setup-facts-add-redhat-vendor.yml 1523 - 73508-validate-modules-no_log.yml 1524 - 73742_amazon_distribution.yml 1525 - 73760-async-cleanup.yml 1526 - 73809-search-handler-subdir.yml 1527 - 73876-ansible_test-units.yml 1528 - allow_world_readable_move.yml 1529 - ansible-test-resource-prefix.yml 1530 - fix_import_notify.yml 1531 - fix_json_module_parsing.yml 1532 - fix_set_fact.yml 1533 - inv_json_sort_types_fix.yml 1534 - j2ploader_minor.yml 1535 - local_facts_continue.yml 1536 - optional_module_utils.yml 1537 - ssh_connection_fixes.yml 1538 - su_fix.yml 1539 - v2.11.0b2_summary.yaml 1540 release_date: '2021-03-15' 1541 2.11.0b3: 1542 changes: 1543 bugfixes: 1544 - Fix adding unrelated candidate names to the plugin loader redirect list. 1545 - Strategy - When building the task in the Strategy from the Worker, ensure 1546 it is properly marked as finalized and squashed. Addresses an issue with ``ansible_failed_task``. 1547 (https://github.com/ansible/ansible/issues/57399) 1548 - ansible-pull - Run all playbooks that when multiple are supplied via the command 1549 line (https://github.com/ansible/ansible/issues/72708) 1550 - find module, fix default pattern when use_regex is true. 1551 major_changes: 1552 - AnsibleModule - use ``ArgumentSpecValidator`` class for validating argument 1553 spec and remove private methods related to argument spec validation. Any modules 1554 using private methods should now use the ``ArgumentSpecValidator`` class or 1555 the appropriate validation function. 1556 minor_changes: 1557 - Callbacks - Migrate more places in the ``TaskExecutor`` to sending callbacks 1558 directly over the queue, instead of sending them as ``TaskResult`` and short 1559 circuiting in the Strategy to send the callback. This enables closer to real 1560 time callbacks of retries and loop results (https://github.com/ansible/ansible/issues/73899) 1561 - setup - fix distribution facts for Older Amazon Linux with ``/etc/os-release`` 1562 (https://github.com/ansible/ansible/issues/73946). 1563 release_summary: '| Release Date: 2021-03-19 1564 1565 | `Porting Guide <https://docs.ansible.com/ansible/devel/porting_guides.html>`__ 1566 1567 ' 1568 codename: Hey Hey, What Can I Do 1569 fragments: 1570 - 57399-finalize-task-in-strategy.yml 1571 - 72708_ansible_pull_multiple_playbooks.yml 1572 - 73863-fix-plugin-redirect-list.yaml 1573 - 73899-more-te-callbacks.yml 1574 - 73946_amazon_linux.yml 1575 - fix_find_default.yml 1576 - use-validator-in-ansiblemodule.yml 1577 - v2.11.0b3_summary.yaml 1578 release_date: '2021-03-19' 1579 2.11.0b4: 1580 changes: 1581 bugfixes: 1582 - Correctly set template_path and template_fullpath for usage in template lookup 1583 and action plugins. 1584 - Try to avoid kernel 'blocking' state on reading files while fact gathering. 1585 - apt - fix policy_rc_d parameter throwing an exception when restoring original 1586 file (https://github.com/ansible/ansible/issues/66211) 1587 - argument spec validation - fix behavior of ``apply_defaults=True`` when an 1588 empty dictionary is specified for such an option (https://github.com/ansible/ansible/pull/74029). 1589 - pause - do not accept enter to continue when a timeout is set (https://github.com/ansible/ansible/issues/73948) 1590 - setup module, fix error handling on bad subset given 1591 - wait_for module, move missing socket into function to get proper comparrison 1592 in time. 1593 minor_changes: 1594 - ansible-galaxy CLI - ``collection verify`` command now exits with a non-zero 1595 exit code on verification failure 1596 - ansible-galaxy CLI - ``collection verify`` command now supports a ``--offline`` 1597 option for local-only verification 1598 release_summary: '| Release Date: 2021-03-29 1599 1600 | `Porting Guide <https://docs.ansible.com/ansible/devel/porting_guides.html>`__ 1601 1602 ' 1603 codename: Hey Hey, What Can I Do 1604 fragments: 1605 - 73840_apt-policy-rc-d.yml 1606 - 73948-pause-no-enter-with-timeout.yml 1607 - 74029-argspec-apply_defaults.yml 1608 - fix_setup_bad_subset.yml 1609 - galaxy_verify_exitcode.yml 1610 - galaxy_verify_local.yml 1611 - less_blocks_on_facts.yml 1612 - template_temp_vars_fix.yml 1613 - v2.11.0b4_summary.yaml 1614 - wait_for_fix.yml 1615 release_date: '2021-03-29' 1616 2.11.0rc1: 1617 changes: 1618 bugfixes: 1619 - OpenBSD module_utils - update sysctl variable name 1620 - WorkerProcess - Implement workaround for stdout deadlock in multiprocessing 1621 shutdown to avoid process hangs. 1622 - ansible-test - Add a ``six < 1.14.0`` constraint for Python 2.6. 1623 - ansible-test - The ``--export`` option for ``ansible-test coverage`` is now 1624 limited to the ``combine`` command. It was previously available for reporting 1625 commands on which it had no effect. 1626 - ansible-test - The ``ansible-test coverage combine`` option ``--export`` now 1627 exports relative paths. This avoids loss of coverage data when aggregating 1628 across systems with different absolute paths. Paths will be converted back 1629 to absolute when generating reports. 1630 - debug action, prevent setting facts when displaying ansible_facts. 1631 minor_changes: 1632 - ansible-test - Add constraint for ``decorator`` for Python versions prior 1633 to 3.5. 1634 - service_facts - return service state information on OpenBSD. 1635 release_summary: '| Release Date: 2021-04-05 1636 1637 | `Porting Guide <https://docs.ansible.com/ansible/devel/porting_guides.html>`__ 1638 1639 ' 1640 codename: Hey Hey, What Can I Do 1641 fragments: 1642 - ansible-test-decorator-constraint.yml 1643 - ansible-test-fix-coverage-export.yml 1644 - ansible-test-six.yml 1645 - debug_dont_set_facts.yml 1646 - openbsd-service.yml 1647 - openbsd-sysutil.yml 1648 - v2.11.0rc1_summary.yaml 1649 - workerprocess-stdout-deadlock.yml 1650 release_date: '2021-04-05' 1651 2.11.0rc2: 1652 changes: 1653 bugfixes: 1654 - WorkerProcess - Python 3.5 fix for workaround for stdout deadlock in multiprocessing 1655 shutdown to avoid process hangs. (https://github.com/ansible/ansible/issues/74149) 1656 release_summary: '| Release Date: 2021-04-06 1657 1658 | `Porting Guide <https://docs.ansible.com/ansible/devel/porting_guides.html>`__ 1659 1660 ' 1661 codename: Hey Hey, What Can I Do 1662 fragments: 1663 - fix-for-workerprocess-stdout-deadlock-fix.yml 1664 - v2.11.0rc2_summary.yaml 1665 release_date: '2021-04-06' 1666 2.11.1: 1667 changes: 1668 release_summary: '| Release Date: 2021-05-24 1669 1670 | `Porting Guide <https://docs.ansible.com/ansible/devel/porting_guides.html>`__ 1671 1672 ' 1673 codename: Hey Hey, What Can I Do 1674 fragments: 1675 - v2.11.1_summary.yaml 1676 release_date: '2021-05-24' 1677 2.11.1rc1: 1678 changes: 1679 bugfixes: 1680 - Add RockyLinux to fact gathering (https://github.com/ansible/ansible/pull/74530). 1681 - Improve resilience of ``ansible-galaxy collection`` by increasing the page 1682 size to make fewer requests overall and retrying queries with a jittered exponential 1683 backoff when rate limiting HTTP codes (520 and 429) occur. (https://github.com/ansible/ansible/issues/74191) 1684 - Prevent ``ansible_failed_task`` from further templating (https://github.com/ansible/ansible/issues/74036) 1685 - Remove 'default' from ssh plugin as we want to rely on default from ssh itself 1686 or ssh/config. 1687 - The error message about the failure to import a ``gpg`` key by the ``apt_key`` 1688 module was incorrect (https://github.com/ansible/ansible/issues/74423). 1689 - ansible-test - Avoid publishing the port used by the ``pypi-test-container`` 1690 since it is only accessed by other containers. This avoids issues when trying 1691 to run tests in parallel on a single host. 1692 - ansible-test - Fix docker container IP address detection. The ``bridge`` network 1693 is no longer assumed to be the default. 1694 - ansible-test - Use documented API to retrieve build information from Azure 1695 Pipelines. 1696 - ansible.builtin.cron - Keep non-empty crontabs, when removing cron jobs (https://github.com/ansible/ansible/pull/74497). 1697 - ansible.utils.encrypt now handles missing or unusable 'crypt' library. 1698 - ansible_test - add constraint for ``MarkupSafe`` (https://github.com/ansible/ansible/pull/74666) 1699 - apt_key - Binary GnuPG keys downloaded via URLs were corrupted so GnuPG could 1700 not import them (https://github.com/ansible/ansible/issues/74424). 1701 - become - fix a regression on Solaris where chmod can return 5 which we interpret 1702 as auth failure and stop trying become tmpdir permission fallbacks 1703 - become - work around setfacl not existing on modern Solaris (and possibly 1704 failing on some filesystems even when it does exist) 1705 - callback default, now uses task delegate_to instead of delegate vars to display 1706 delegate to host 1707 - callbacks, restores missing delegate_vars 1708 - correct doc links for become on warnings over world readable settings. 1709 - correctly use world readable setting since old constant is not 'settable' 1710 anymore. 1711 - facts - detect homebrew installed at /opt/homebrew/bin/brew 1712 - filter plugins - patch new versions of Jinja2 to prevent warnings/errors on 1713 renamed filter decorators (https://github.com/ansible/ansible/issues/74667) 1714 - get_url - Fixed checksum validation for binary files (leading asterisk) in 1715 checksum files (https://github.com/ansible/ansible/pull/74502). 1716 - hostname - Add Rocky Linux support 1717 - ini lookup - handle errors for duplicate keys and missing sections (https://github.com/ansible/ansible/issues/74601) 1718 - interpreter discovery - Debian 8 and lower will avoid unsupported Python3 1719 version in interpreter discovery 1720 - pause - ensure control characters are always set to an appropriate value (https://github.com/ansible/ansible/issues/73264) 1721 - playbook loaded from collection subdir now does not ignore subdirs. 1722 - plugin config now allows list type options to have multiple valid choices 1723 (#74225). 1724 - replace - better handling of file operation exceptions (https://github.com/ansible/ansible/pull/74686). 1725 - roles - allow for role arg specs in new meta file (https://github.com/ansible/ansible/issues/74525). 1726 - service - compare version without LooseVersion API (https://github.com/ansible/ansible/issues/74488). 1727 minor_changes: 1728 - ansible adhoc, clarified the help to some options, also added some comments 1729 to code. 1730 - command - update the user warning message to point out command name (https://github.com/ansible/ansible/pull/74475). 1731 release_summary: '| Release Date: 2021-05-17 1732 1733 | `Porting Guide <https://docs.ansible.com/ansible/devel/porting_guides.html>`__ 1734 1735 ' 1736 codename: Hey Hey, What Can I Do 1737 fragments: 1738 - 73264-pause-emacs.yml 1739 - 73887.mac-m1-homebrew.yaml 1740 - 74036-unsafe-ansible_failed_task.yml 1741 - 74240-ansible-galaxy-increase-pagesize-and-handle-throttling.yml 1742 - 74474-apt_key-gpg-binary-import.yaml 1743 - 74476-apt_key-gpg-inline-data.yaml 1744 - 74488_solaris_looseversion.yml 1745 - 74497-keep-non-empty-crontabs.yml 1746 - 74502-get_url-filx-checksum-binary.yml 1747 - 74582-role-argspec-new-file.yml 1748 - 74601-ini-lookup-handle-errors.yml 1749 - 74686-replace-handle-file-exc.yml 1750 - adhoc_help_clarify.yml 1751 - allow_lists_of_config_choices.yml 1752 - ansible-test-azp-build-api.yml 1753 - ansible-test-docker-network-detect.yml 1754 - ansible-test-markupsafe-constraint.yml 1755 - ansible-test-pypi-container-no-publish.yml 1756 - cmd_wording.yml 1757 - coll_pb_subdir_fixes.yml 1758 - crypt_missing.yml 1759 - debian8_discovery.yml 1760 - jinja2_decorator_renames.yml 1761 - macos-solaris-regression.yml 1762 - missing_delegate_vars.yml 1763 - solaris-setfacl-chmod-fallback.yml 1764 - ssh_port_default_fix.yml 1765 - support_rocky_linux_hostname.yml 1766 - support_rockylinux.yml 1767 - v2.11.1rc1_summary.yaml 1768 - world_readable_fixes.yml 1769 release_date: '2021-05-17' 1770 2.11.2: 1771 changes: 1772 release_summary: '| Release Date: 2021-06-22 1773 1774 | `Porting Guide <https://docs.ansible.com/ansible/devel/porting_guides.html>`__ 1775 1776 ' 1777 codename: Hey Hey, What Can I Do 1778 fragments: 1779 - v2.11.2_summary.yaml 1780 release_date: '2021-06-22' 1781 2.11.2rc1: 1782 changes: 1783 bugfixes: 1784 - AnsibleModule.set_mode_if_different - don't check file existence when check_mode 1785 is activated (https://github.com/ansible/ansible/issues/61185). 1786 - Apply ``display_failed_stderr`` callback option on loop item results. (https://github.com/ansible/ansible/issues/74864) 1787 - Avoid task executor from ending early as vars can come from delegated to host. 1788 - ansible-pull - update documentation for ``--directory`` option to clarify 1789 path must be absolute. 1790 - config, ensure 'quoted' lists from ini or env do not take the quotes literally 1791 as part of the list item. 1792 - gather_facts, package, service - fix using module_defaults for the modules 1793 in addition to the action plugins. (https://github.com/ansible/ansible/issues/72918) 1794 - psrp - Always cleanup the last run pipeline if a second pipeline is invoked 1795 to avoid violating any resource limits. 1796 - psrp - Fix error when resetting a connection that was initialised but not 1797 connected - (https://github.com/ansible/ansible/issues/74092). 1798 - psrp - Try to clean up any server-side resources when resetting a connection. 1799 - roles - make sure argspec validation task is tagged with ``always`` (https://github.com/ansible/ansible/pull/74994). 1800 - slurp - Fix error messages for unreadable files and directories (https://github.com/ansible/ansible/issues/67340). 1801 - slurp - handle error when ``path`` is a directory and not a file (https://github.com/ansible/ansible/pull/74930). 1802 - ssh connection - fix interaction between transfer settings options. 1803 - subversion - fix stack trace when getting information about the repository 1804 (https://github.com/ansible/ansible/issues/36498) 1805 - version test - improve error message when an empty version is provided 1806 release_summary: '| Release Date: 2021-06-14 1807 1808 | `Porting Guide <https://docs.ansible.com/ansible/devel/porting_guides.html>`__ 1809 1810 ' 1811 security_fixes: 1812 - templating engine fix for not preserving usnafe status when trying to preserve 1813 newlines. CVE-2021-3583 1814 codename: Hey Hey, What Can I Do 1815 fragments: 1816 - 36498-subversion-fix-info-parsing.yml 1817 - 61185-basic.py-fix-check_mode.yaml 1818 - 67340-slurp_error_message.yml 1819 - 73864-action-plugin-module-defaults.yml 1820 - 74864-display_failed_stderr-per-item.yml 1821 - ansible-pull-doc-update.yml 1822 - config_lists_unquote.yml 1823 - delegate_te_fix.yml 1824 - fix_scp_ssh_settings.yml 1825 - fix_unsafe_newline.yml 1826 - psrp-cleanup.yml 1827 - psrp-reset.yml 1828 - role_argspec_tagged_always.yml 1829 - slurp-handle-error-with-dir.yml 1830 - v2.11.2rc1_summary.yaml 1831 - version_compare-error-on-empty.yml 1832 release_date: '2021-06-14' 1833 2.11.3: 1834 changes: 1835 release_summary: '| Release Date: 2021-07-19 1836 1837 | `Porting Guide <https://docs.ansible.com/ansible/devel/porting_guides.html>`__ 1838 1839 ' 1840 codename: Hey Hey, What Can I Do 1841 fragments: 1842 - v2.11.3_summary.yaml 1843 release_date: '2021-07-19' 1844 2.11.3rc1: 1845 changes: 1846 bugfixes: 1847 - Add unicode support to ``ansible-inventory`` CLI (https://github.com/ansible/ansible/issues/57378) 1848 - Ensure we get full path for extra vars into cliargs to avoid realpath issues 1849 after initial load. 1850 - ansible-doc - in text output, do not show empty ``version_added_collection`` 1851 values (https://github.com/ansible/ansible/pull/74999). 1852 - ansible-test - restrict ``packaging`` to ``< 21.0`` for Python ``< 3.6`` (https://github.com/ansible/ansible/pull/75186). 1853 - command - remove unreachable code path when trying to convert the value for 1854 ``chdir`` to bytes (https://github.com/ansible/ansible/pull/75036) 1855 - module_common - handle exception when multiple workers try to create the cache 1856 directory 1857 - roles - make sure argspec validation task templates suboptions (https://github.com/ansible/ansible/issues/75070). 1858 - slurp - improve the logic in the error handling and remove ``os.stat()`` call 1859 (https://github.com/ansible/ansible/pull/75038) 1860 - ssh_connection - rename ``retries`` to ``reconnection_retries`` to avoid conflicts 1861 with task vars (https://github.com/ansible/ansible/issues/75142). 1862 - ssh_connection - set the default for ``reconnection_retries`` back to ``0`` 1863 (https://github.com/ansible/ansible/issues/75142). 1864 - task_executor/ssh_connection - use the ``retries`` value from ``ssh_connection`` 1865 settings, not the default from the ``Task`` field attributes (https://github.com/ansible/ansible/issues/75142). 1866 minor_changes: 1867 - ansible-test - aws creates and exposes a new tiny_prefix variable to provide 1868 a shorter prefix for the AWS tests. 1869 release_summary: '| Release Date: 2021-07-13 1870 1871 | `Porting Guide <https://docs.ansible.com/ansible/devel/porting_guides.html>`__ 1872 1873 ' 1874 codename: Hey Hey, What Can I Do 1875 fragments: 1876 - 57378-inventory-cli-unicode.yml 1877 - 74999-ansible-doc-version_added_collection.yml 1878 - 75073-role-argspec-suboption-variables.yaml 1879 - 75142-ssh-retries-collision.yml 1880 - 75186-ansible-test-packaging-constraint.yml 1881 - aws_tiny_prefix.yaml 1882 - command-remove-unreachable-code.yml 1883 - concurrency-cache-dir-collision.yml 1884 - extra_vars_unfrack.yml 1885 - slurp-improve-error-handling-readability.yml 1886 - v2.11.3rc1_summary.yaml 1887 release_date: '2021-07-13' 1888 2.11.4: 1889 changes: 1890 release_summary: '| Release Date: 2021-08-16 1891 1892 | `Porting Guide <https://docs.ansible.com/ansible/devel/porting_guides.html>`__ 1893 1894 ' 1895 codename: Hey Hey, What Can I Do 1896 fragments: 1897 - v2.11.4_summary.yaml 1898 release_date: '2021-08-16' 1899 2.11.4rc1: 1900 changes: 1901 bugfixes: 1902 - Fix ``when`` evaluation on Native Jinja and Python 3.10. 1903 - Jinja2 globals should be accessible even when importing a template without 1904 the context (https://github.com/ansible/ansible/issues/75371) 1905 - ansible-test - add packaging python module to ``ansible-doc`` sanity test 1906 requirements. 1907 - ansible-test validate-modules - correctly validate positional parameters to 1908 ``AnsibleModules`` (https://github.com/ansible/ansible/pull/75332). 1909 - cli defaults for ssh args set to None as '' was bypassing normal default. 1910 - dnf module - Use all components of a package name to determine if it's installed 1911 (https://github.com/ansible/ansible/issues/75311). 1912 - do not trigger interpreter discovery in the forced_local module path as they 1913 should use the ansible playbook python unless otherwise configured. 1914 - find action, correctly convert path to text when warning about skiping. 1915 - remote tmpdir permissions - fix type error in macOS chmod ACL fallback (https://github.com/ansible/ansible/pull/74613). 1916 - template - ensure Jinja2 overrides from template header are used (https://github.com/ansible/ansible/issues/75275) 1917 - unarchive - move failure for missing binary to ``can_handle_archive()`` rather 1918 than ``__init__()`` 1919 release_summary: '| Release Date: 2021-08-10 1920 1921 | `Porting Guide <https://docs.ansible.com/ansible/devel/porting_guides.html>`__ 1922 1923 ' 1924 codename: Hey Hey, What Can I Do 1925 fragments: 1926 - 74613-actionfixup_perms2_macos_remote_paths_ensure_list.yml 1927 - 75275-ensure-jinja2-header-overrides-used.yml 1928 - 75332-ansible-test-validate-modules-AnsibleModule-args.yml 1929 - 75356-add-requirement-to-ansible-test.yml 1930 - 75371-import_template_globals.yml 1931 - find_error_fix.yml 1932 - fix-dnf-filtering-for-installed-package-name.yml 1933 - fix_cli_ssh_defaults.yml 1934 - skip_local_discovery.yml 1935 - unarchive-fix-bin-checking.yml 1936 - v2.11.4rc1_summary.yaml 1937 - when-eval-native-py310.yml 1938 release_date: '2021-08-10' 1939 2.11.5: 1940 changes: 1941 release_summary: '| Release Date: 2021-09-13 1942 1943 | `Porting Guide <https://docs.ansible.com/ansible/devel/porting_guides.html>`__ 1944 1945 ' 1946 codename: Hey Hey, What Can I Do 1947 fragments: 1948 - v2.11.5_summary.yaml 1949 release_date: '2021-09-13' 1950 2.11.5rc1: 1951 changes: 1952 bugfixes: 1953 - Fix templating task action with host-specific vars (https://github.com/ansible/ansible/issues/75568) 1954 - Since ansible/2.11 doc site was removed, the current relative messages point 1955 to a 404 url, this fixes it by chainging the target to ansible-core/2.11 1956 - ansible-galaxy - Fix a bug with build_ignore when installing collections from 1957 source (https://github.com/ansible/ansible/issues/75528). 1958 - ansible-galaxy - Improve error message from dependency resolution when a candidate 1959 has inconsistent requirements (https://github.com/ansible/ansible/issues/75139). 1960 - ansible-playbook, more robust handling of --list-hosts and undefined vars 1961 in hosts keyword. 1962 - command module, clarify order of remove/creates checks. 1963 - command module, correctly handles chdir to symlinks. 1964 - command module, move to standarized messages in 'msg' vs abusing 'stdout'. 1965 - command module, now all options work in ad-hoc execution. 1966 - command module, now always returns what we documented as 'returns always'. 1967 - get_bin_path, clarify with quotes what the missing required executable is. 1968 - make previous versions compatible we new attributres w/o implementing them. 1969 - paramiko_ssh - mark connection as connected when ``_connect()`` is called 1970 (https://github.com/ansible/ansible/issues/74081) 1971 - setup module should now not truncate hpux interface names. 1972 - validate_argument_spec, correct variable precedence and merge method and add 1973 missing examples 1974 - variable manager, avoid sourcing delegated variables when no inventory hostname 1975 is present. This affects scenarios like syntax check and imports. 1976 release_summary: '| Release Date: 2021-09-08 1977 1978 | `Porting Guide <https://docs.ansible.com/ansible/devel/porting_guides.html>`__ 1979 1980 ' 1981 codename: Hey Hey, What Can I Do 1982 fragments: 1983 - 74081-paramiko-mark-connected.yml 1984 - 75235-ansible-galaxy-inconsistent-candidate-error.yml 1985 - 75547-fix-installing-collections-from-source.yaml 1986 - 75568-fix-templating-task-action-host-specific-vars.yml 1987 - attributes_compat.yml 1988 - clarify_missing_exe.yml 1989 - command_deliver_promisses.yml 1990 - fix_host_list.yml 1991 - fix_relative_msg_urls.yml 1992 - fix_syntax_check.yml 1993 - hpux_iface_facts_length.yml 1994 - v2.11.5rc1_summary.yaml 1995 - vas_fixes.yml 1996 release_date: '2021-09-08' 1997 2.11.6: 1998 changes: 1999 bugfixes: 2000 - ansible-test pslint - Fix error when encountering validation results that 2001 are highly nested - https://github.com/ansible/ansible/issues/74151 2002 release_summary: '| Release Date: 2021-10-11 2003 2004 | `Porting Guide <https://docs.ansible.com/ansible/devel/porting_guides.html>`__ 2005 2006 ' 2007 codename: Hey Hey, What Can I Do 2008 fragments: 2009 - pslint-sanity-warning.yml 2010 - v2.11.6_summary.yaml 2011 release_date: '2021-10-11' 2012 2.11.6rc1: 2013 changes: 2014 bugfixes: 2015 - PowerShell - Ignore the ``LIB`` environment variable when compiling C# Ansible 2016 code 2017 - ansible-galaxy - Fix handling HTTP exceptions from Galaxy servers. Continue 2018 to the next server in the list until the collection is found. 2019 - config - use ``callbacks_enabled`` instead ``callback_enabled`` in a deprecated 2020 message (https://github.com/ansible/ansible/issues/70028). 2021 - netconf - catch and handle exception to prevent stack trace when running in 2022 FIPS mode 2023 - roles - fix unexpected ``AttributeError`` when an empty ``argument_specs.yml`` 2024 is present (https://github.com/ansible/ansible/pull/75604). 2025 minor_changes: 2026 - ansible-galaxy - Non-HTTP exceptions from Galaxy servers are now a warning 2027 and only fatal if the collection to download|install|verify is not available 2028 from any of the servers (https://github.com/ansible/ansible/issues/75443). 2029 release_summary: '| Release Date: 2021-10-04 2030 2031 | `Porting Guide <https://docs.ansible.com/ansible/devel/porting_guides.html>`__ 2032 2033 ' 2034 security_fixes: 2035 - Do not include params in exception when a call to ``set_options`` fails. Additionally, 2036 block the exception that is returned from being displayed to stdout. (CVE-2021-3620) 2037 codename: Hey Hey, What Can I Do 2038 fragments: 2039 - 70028-config-small-typo-fix.yml 2040 - 75468_fix_galaxy_server_fallback.yaml 2041 - 75604-empty-argument-specs.yml 2042 - avoid-set_options-leak.yaml 2043 - fips-ncclient-import-error.yaml 2044 - powershell-addtype-env-vars.yml 2045 - v2.11.6rc1_summary.yaml 2046 release_date: '2021-10-04' 2047