- docker connection - Support empty files with copying to target (https://github.com/ansible/ansible/issues/36725)
- chroot connection - Support empty files with copying to target (https://github.com/ansible/ansible/issues/36725)
- jail connection - Support empty files with copying to target (https://github.com/ansible/ansible/issues/36725)
- kubectl connection - Support empty files with copying to target (https://github.com/ansible/ansible/issues/36725)
- libvirt_lxc connection - Support empty files with copying to target (https://github.com/ansible/ansible/issues/36725)
- zone connection - Support empty files with copying to target (https://github.com/ansible/ansible/issues/36725)
- cloudfront - fix bug when CloudFrontOriginAccessIdentityList is missing (https://github.com/ansible/ansible/pull/44984)
- vyos_facts - fix vyos_facts not returning version number issue (https://github.com/ansible/ansible/pull/39115)
- get_url - Don't re-download files unnecessarily when force=no (https://github.com/ansible/ansible/issues/45491)
- loop - Ensure that a loop with a when condition that evaluates to false and delegate_to, will short circuit if the loop references an undefined variable. This matches the behavior in the same scenario without delegate_to (https://github.com/ansible/ansible/issues/45189)
- mysql_*, proxysql_* - PyMySQL (a pure-Python MySQL driver) is now a preferred dependency also supporting Python 3.X.
- ssh connection - Support empty files with piped transfer_method (https://github.com/ansible/ansible/issues/45426)
- PLUGIN_FILTERS_CFG - Ensure that the value is treated as type=path, and that we use the standard section of ``defaults`` instead of ``default`` (https://github.com/ansible/ansible/pull/45994)
- script inventory plugin - Don't pass file_name to DataLoader.load, which will prevent misleading error messages (https://github.com/ansible/ansible/issues/34164)
- user - Strip trailing comments in /etc/default/passwd (https://github.com/ansible/ansible/pull/43931)
- fix example code for AWS lightsail documentation
- fix the enable_snat parameter that is only supposed to be used by an user with the right policies. https://github.com/ansible/ansible/pull/44418
- ios_l2_interface - fix issue with certain interface types (https://github.com/ansible/ansible/pull/43819)
- ios_user - fix unable to delete user admin issue (https://github.com/ansible/ansible/pull/44904)
- ansible-galaxy - properly list all roles in roles_path (https://github.com/ansible/ansible/issues/43010)
- ios_vlan - fix unable to work on certain interface types issue (https://github.com/ansible/ansible/pull/43819)
- The fix for `CVE-2018-10875 <https://access.redhat.com/security/cve/cve-2018-10875>`_ prints out a warning message about skipping a config file from a world writable current working directory. However, if the user is in a world writable current working directory which does not contain a config file, it should not print a warning message. This release fixes that extaneous warning.
- Add md5sum check in nxos_file_copy module (https://github.com/ansible/ansible/pull/43423).
- nxos_interface port-channel idempotence fix for mode (https://github.com/ansible/ansible/pull/44248).
- fix for the bundled selectors module (used in the ssh and local connection plugins) when a syscall is restarted after being interrupted by a signal (https://github.com/ansible/ansible/issues/41630)
- Fix the mount module's handling of swap entries in fstab (https://github.com/ansible/ansible/pull/42837)
- The fix for `CVE-2018-10875 <https://access.redhat.com/security/cve/cve-2018-10875>`_ prints out a warning message about skipping a config file from a world writable current working directory. However, if the user explicitly specifies that the config file should be used via the ANSIBLE_CONFIG environment variable then Ansible would honor that but still print out the warning message. This has been fixed so that Ansible honors the user's explicit wishes and does not print a warning message in that circumstance.
- fact names that conflict with well-known connection vars are now filtered (https://github.com/ansible/ansible/issues/41684)
- get_url - fix the bug that get_url does not change mode when checksum matches (https://github.com/ansible/ansible/issues/29614)
- openvswitch_db - make 'key' argument optional https://github.com/ansible/ansible/issues/42108
- slack callback - Fix invocation by looking up data from cli.options (https://github.com/ansible/ansible/pull/43542)
- vars_prompt - properly template play level variables in vars_prompt (https://github.com/ansible/ansible/issues/37984)
- win_domain - fixes typo in one of the AD cmdlets https://github.com/ansible/ansible/issues/41536
- win_iis_webapppool - redirect some module output to null so Ansible can read the output JSON https://github.com/ansible/ansible/issues/40874
- win_updates - Fixed issue where running win_updates on async fails without any error
- winrm - ensure pexpect is set to not echo the input on a failure and have a manual sanity check afterwards https://github.com/ansible/ansible/issues/41865
-**Security Fix** - avoid using ansible.cfg in a world writable dir.
- Changed the admin_users config option to not include "admin" by default as admin is frequently used for a non-privileged account (https://github.com/ansible/ansible/pull/41164)
- aws_s3 - add async support to the action plugin (https://github.com/ansible/ansible/pull/40826)
- ios/nxos/eos_config - don't retrieve config in running_config when config is provided for diff (https://github.com/ansible/ansible/pull/41400)
-**Security Fix** - Some connection exceptions would cause no_log specified on a task to be ignored. If this happened, the task information, including any private information could have been displayed to stdout and (if enabled, not the default) logged to a log file specified in ansible.cfg's log_path. Additionally, sites which redirected stdout from ansible runs to a log file may have stored that private information onto disk that way as well. (https://github.com/ansible/ansible/pull/41414)
- edgeos_config - check for a corresponding set command when issuing delete commands to ensure the desired state is met (https://github.com/ansible/ansible/issues/40437)
- pause - ensure ctrl+c interrupt works in all cases (https://github.com/ansible/ansible/issues/35372)
- user - With python 3.6 spwd.getspnam returns PermissionError instead of KeyError if user does not have privileges (https://github.com/ansible/ansible/issues/39472)
- synchronize - Ensure the local connection created by synchronize uses _remote_is_local=True, which causes ActionBase to build a local tmpdir (https://github.com/ansible/ansible/pull/40833)
- win_get_url - fixed issue when authenticating when force=yes https://github.com/ansible/ansible/pull/40641
- winrm - allow `ansible_user` or `ansible_winrm_user` to override `ansible_ssh_user` when both are defined in an inventory - https://github.com/ansible/ansible/issues/39844
- winrm - Add better error handling when the kinit process fails
- xenserver_facts - ensure module works with newer versions of XenServer (https://github.com/ansible/ansible/pull/35821)
- openstack.os_stack - extend failure message with the server response (https://github.com/ansible/ansible/pull/39660).
- vmware_guest - typecast VLAN ID to match various conditions. (https://github.com/ansible/ansible/pull/39793)
- vmware_guest - Do not update cpu/memory allocation in configspec if there is no change (https://github.com/ansible/ansible/pull/39865)
- Fix unset 'ansible_virtualization_role' fact while setting virtualization facts for real hardware.
- loop_control - update template vars for loop_control fields on each loop iteration (https://github.com/ansible/ansible/pull/39818).
- template - Fix for encoding issues when a template path contains non-ascii characters and using the template path in ansible_managed (https://github.com/ansible/ansible/issues/27262)
- apt - Auto install of python-apt without recommends (https://github.com/ansible/ansible/pull/37121)
- apt - Mark installed packages manual (https://github.com/ansible/ansible/pull/37751)
- async - Ensure that the implicit async_status gets the env from a task with async (https://github.com/ansible/ansible/pull/39764)
- Fallback to instance role STS credentials if none are explicitly provided for the aws_ec2 inventory plugin
- Support tag values as hostnames in aws_ec2 inventory plugin
- Fix regression in aws_s3 to allow uploading files on the remote host to an S3 bucket
- Fix an encoding issue when parsing the examples from a plugins' documentation
- Fix misuse of self in module_utils/network/eos/eos.py (https://github.com/ansible/ansible/pull/39074)
- eos_vlan - Fix eos_vlan associated interface name check (https://github.com/ansible/ansible/pull/39661)
- file module - Fix error when running a task which assures a symlink to a nonexistent file exists for the second and subsequent times (https://github.com/ansible/ansible/issues/39558)
- file module - Fix error when recursively assigning permissions and a symlink to a nonexistent file is present in the directory tree (https://github.com/ansible/ansible/issues/39456)
- file - Eliminate an error if we're asked to remove a file but something removes it while we are processing the request (https://github.com/ansible/ansible/pull/39466)
- template action plugin - fix the encoding of filenames to avoid tracebacks on Python2 when characters that are not present in the user's locale are present. (https://github.com/ansible/ansible/pull/39424)
- ufw - "route" has to be the first option in ufw command https://github.com/ansible/ansible/pull/31756
- user - only change the expiration time when necessary (https://github.com/ansible/ansible/issues/13235)
- vdirect_file - deal with invalid upload source (https://github.com/ansible/ansible/pull/37461)
- win_file - fix issue where special chars like [ and ] were not being handled correctly https://github.com/ansible/ansible/pull/37901
- win_get_url - fixed a few bugs around authentication and force no when using an FTP URL
- win_template - fix when specifying the dest option as a directory with and without the trailing slash https://github.com/ansible/ansible/issues/39886
- win_updates - Fix typo that hid the download error when a download failed
- win_updates - Fix logic when using a whitelist for multiple updates
- windows become - Show better error messages when the become process fails
- copy - fixed copy to only follow symlinks for files in the non-recursive case
- file - fixed the default follow behaviour of file to be true
- docker modules - Error with useful message is both docker and docker-py are found to both be installed (https://github.com/ansible/ansible/pull/38884)
- dynamic includes - Improved performance by fixing re-parenting on copy (https://github.com/ansible/ansible/pull/38747)
- dynamic includes - Fix IncludedFile comparison for free strategy (https://github.com/ansible/ansible/pull/37083)
- dynamic includes - Allow inheriting attributes from static parents (https://github.com/ansible/ansible/pull/38827)
- Fix ios and iosxr terminal prompt regex (https://github.com/ansible/ansible/pull/39063)
- set_fact/include_vars - allow incremental update for vars in loop (https://github.com/ansible/ansible/pull/38302)
- cloudfront_distribution - support missing protocol versions (https://github.com/ansible/ansible/pull/38990)
- slice filter - removed Ansible-provided impl in favor of Jinja builtin (https://github.com/ansible/ansible/pull/37944)
- ovirt_host_networks - fix removing of network attachments (https://github.com/ansible/ansible/pull/38816)
- ovirt_disk - support removing unmanaged networks (https://github.com/ansible/ansible/pull/38726)
- ovirt_disk - FCP storage domains don't have to have target (https://github.com/ansible/ansible/pull/38882)
- Ansible.ModuleUtils.FileUtil - support using Test-AnsiblePath with non file system providers (https://github.com/ansible/ansible/pull/39200)
- win_get_url - Compare the UTC time of the web file to the local UTC time (https://github.com/ansible/ansible/pull/39152)
- EOS can not check configuration without use of config session (ANSIBLE_EOS_USE_SESSIONS=0). Fix is to throw error when hiting into this exception case. Configs would neither be checked nor be played on the eos device.
- Adds exception handling which is raised when user does not have correct set of permissions/privileges to read virtual machine facts.
- onyx_pfc_interface - Add support for changes in pfc output in onyx 3.6.6000 https://github.com/ansible/ansible/pull/37651
- Fix mlag summary json parsing for onyx version 3.6.6000 and above https://github.com/ansible/ansible/pull/38191
- Update documentation related to datacenter in vmware_guest_find module. Mark datacenter as optional.
- Set default network type as 'dhcp' if user has not specified any.
- eos_vlan - fixed eos_vlan not working when having more than 6 interfaces (https://github.com/ansible/ansible/pull/38347)
- Various grafana_* modules - Port away from the deprecated b64encodestring function to the b64encode function instead. (https://github.com/ansible/ansible/pull/38388)
- Fix for consul_kv idempotence on Python3 https://github.com/ansible/ansible/issues/35893
- Fix csvfile lookup plugin when used on Python3 https://github.com/ansible/ansible/pull/37625
- ec2 - Fix ec2 user_data parameter to properly convert to base64 on python3 (https://github.com/ansible/ansible/pull/37628)
- Fix to send and receive bytes over a socket in the haproxy module which was causing tracebacks on Python3 https://github.com/ansible/ansible/pull/35176
- win_environment - Fix for issue where the environment value was deleted when a null value or empty string was set - https://github.com/ansible/ansible/issues/40450
- Ansible.ModuleUtils.FileUtil - Catch DirectoryNotFoundException with Test-AnsiblePath (https://github.com/ansible/ansible/pull/37968)
- win_exec_wrapper - support loading of Windows modules different different line endings than the core modules (https://github.com/ansible/ansible/pull/37291)
- win_reboot - fix deprecated warning message to show version in correct spot (https://github.com/ansible/ansible/pull/37898)
- win_regedit - wait for garbage collection to finish before trying to unload the hive in case handles didn't unload in time (https://github.com/ansible/ansible/pull/38912)
- win_service - Fix bug with win_service not being able to handle special chars like '[' (https://github.com/ansible/ansible/pull/37897)
- win_setup - Use connection name for network interfaces as interface name isn't helpful (https://github.com/ansible/ansible/pull/37327)
- win_setup - fix bug where getting the machine SID would take a long time in large domain environments (https://github.com/ansible/ansible/pull/38646)
- win_updates - handle if the module fails to load and return the error message (https://github.com/ansible/ansible/pull/38363)
- win_uri - do not override existing header when using the ``headers`` key. (https://github.com/ansible/ansible/pull/37845)
- win_uri - convert status code values to an int before validating them in server response (https://github.com/ansible/ansible/pull/38080)
- windows - display UTF-8 characters correctly in Windows return json (https://github.com/ansible/ansible/pull/37229)
- winrm - when managing Kerberos tickets in Ansible, get a forwardable ticket if delegation is set (https://github.com/ansible/ansible/pull/37815)
* Created new connection plugins ``network_cli`` and ``netconf`` to replace ``connection=local``. ``connection=local`` will continue to work for a number of Ansible releases.
* No more ``unable to open shell``. A clear and descriptive message will be displayed in normal ansible-playbook output without needing to enable debug mode
* Loads of documentation, see `Ansible for Network Automation Documentation <http://docs.ansible.com/ansible/2.5/network/>`_.
* Refactor common network shared code into package under ``module_utils/network/``
* Filters: Add a filter to convert XML response from a network device to JSON object.
- New simpler and more intuitive 'loop' keyword for task loops. The ``with_<lookup>`` loops will likely be deprecated in the near future and eventually removed.
- Apstra's ``aos_*`` modules are deprecated as they do not work with AOS 2.1 or higher. See new modules at `https://github.com/apstra <https://github.com/apstra>`_.
- azure_rm modules - updated with internal changes to use API profiles and kwargs for future Azure Stack support and better stability between SDK updates. (https://github.com/ansible/ansible/pull/35538)
- lineinfile - fixed regexp used with insert(before|after) inserting duplicate lines (https://github.com/ansible/ansible/pull/36156)
- Connection error messages may contain characters that jinja2 would interpret as a template. Wrap the error string so this doesn't happen (https://github.com/ansible/ansible/pull/37329)
- setup.py - Ensure we install ansible-config and ansible-inventory with `pip install -e` (https://github.com/ansible/ansible/pull/37151)
- Fix for ansible_*_interpreter on Python3 when using non-newstyle modules. Those include old-style ansible modules and Ansible modules written in non-python scripting languages (https://github.com/ansible/ansible/pull/36541)
- Fix bytes/text handling in maven_artifact that was causing tracebacks on Python3
- znode - fixed a bug calling the zookeeper API under Python3 https://github.com/ansible/ansible/pull/36999
- Fix for unarchive when users use the --strip-components extra_opt to tar causing ansible to set permissions on the wrong directory. (https://github.com/ansible/ansible/pull/37048)