Ansible 14 Porting Guide

Ansible 14 is based on Ansible-core 2.21.

We suggest you read this page along with the Ansible 14 Changelog to understand what updates you may need to make.

Porting Guide for v14.0.0a2

Deprecated Features

ansible.netcommon

  • network_cli - The in-collection paramiko support (used when ssh_type is paramiko) is a compatibility layer for environments where ansible-core’s paramiko connection is no longer available. This layer is deprecated and will be removed in a release after 2028-02-01. Migrate to ssh_type=libssh by installing the ansible-pylibssh package.

community.routeros

Porting Guide for v14.0.0a1

Added Collections

  • community.clickhouse (version 2.1.0)

  • graphiant.naas (version 26.3.0)

  • pcg.alpaca_operator (version 2.2.0)

Known Issues

community.docker

  • docker_image, docker_image_export - idempotency for archiving images depends on whether the image IDs used by the image storage backend correspond to the IDs used in the tarball’s manifest.json files. The new default backend in Docker 29 apparently uses image IDs that no longer correspond, whence idempotency no longer works (https://github.com/ansible-collections/community.docker/pull/1199).

community.routeros

dellemc.openmanage

  • Formal qualification of module ome_smart_fabric_info for Ansible Core version 2.19 is still pending.

  • idrac_diagnostics - This module does not support export of diagnostics file to HTTP and HTTPS share via SOCKS proxy.

  • idrac_license - Due to API limitation, proxy parameters are ignored during the import operation.

  • idrac_license - The module will give different error messages for iDRAC9 and iDRAC10 when user imports license with invalid share name.

  • idrac_os_deployment - The module continues to return a 200 response and marks the job as completed, even when an outdated date is supplied in the Expose duration.

  • idrac_redfish_storage_controller - PatrolReadRatePercent attribute cannot be set in iDRAC10.

  • idrac_server_config_profile - When attempting to revert iDRAC settings using a previously exported SCP file, the import operation will complete with errors if a new user was created after the export (Instead of restoring the system to its previous state, including the removal of newly added users).

  • ome_smart_fabric_uplink - The module supported by OpenManage Enterprise Modular, however it does not allow the creation of multiple uplinks of the same name. If an uplink is created using the same name as an existing uplink, then the existing uplink is modified.

  • redfish_storage_volume - Encryption type and block_io_size bytes will be read only property in iDRAC9 and iDRAC10 and hence the module ignores these parameters.

Breaking Changes

Ansible-core

  • psrp - Changed the default of negotiate_service used to build the Kerberos Service Principal Name from WSMAN to host. This aligns the defaults to how the native PowerShell PSRemoting client works on Windows and ensures that Kerberos can be used by more Windows targets by default. No deprecation period is used for this change as host is a builtin SPN to Windows and should improve compatibility out of the box. To go back to the old behaviour for any reason, set ansible_psrp_negotiate_service=WSMAN in the host vars.

community.aws

community.mysql

  • Update imports from ansible.module_utils.six to use their python3 equivalent. This change will make this collection incompatible for managed hosts on python2.7.

dellemc.enterprise_sonic

splunk.es

  • Removed deprecated modules that were scheduled for removal on 2024-09-01

  • adaptive_response_notable_event - Use splunk.es.splunk_adaptive_response_notable_events instead

  • correlation_search - Use splunk.es.splunk_correlation_searches instead

  • data_input_monitor - Use splunk.es.splunk_data_inputs_monitor instead

  • data_input_network - Use splunk.es.splunk_data_inputs_network instead

Major Changes

Ansible-core

  • ansible-galaxy install and ansible-galaxy collection install|download - collections that declare a requires_ansible version that is not compatible with the running ansible-core version are now excluded from installation and download by default. In previous versions, ansible-galaxy would install such collections even if doing so resulted in an error at load time. To restore the previous behavior, set COLLECTIONS_ON_ANSIBLE_VERSION_MISMATCH to ignore in your configuration. (https://github.com/ansible/ansible/issues/78539)

  • action plugins - Actions can directly register variables at several precedence layers using the register_host_variables method on ActionBase. Previously, variable registration could only be simulated by user action plugins by returning ansible_facts with insecure fact injection.

  • register projections - The register task keyword allows mapping multiple variable names to Jinja expressions to transform task results and other variables. The mapping form can replace many usages of set_fact and allows order-independent chained access to other variable expressions within the same task.

  • task implicit object - A new _task implicit object is available for use in register and task conditional expressions (e.g., failed_when). The result of the current task can be accessed via the _task.result property, without the use of register. Under a loop, _task.result is the most recently completed result and _task.loop_result provides access to accumulated loop results. The _task.polymorphic_result property provides compatibility with classic name-only register in loops. The value is the result of the most recent loop iteration, then becomes the final list loop result once the loop is complete.

amazon.aws

chocolatey.chocolatey

  • win_chocolatey - add option to ignore pinned status of pinned packages

community.aws

community.proxmox

community.routeros

community.vmware

containers.podman

  • Add podman Quadlet modules

  • Rewrite podman and buildah connections

fortinet.fortios

  • Supported new versions 7.6.5 and 7.6.6.

  • Updated the Q&A for using the default_group feature in modules.

kaytus.ksmanage

netapp.ontap

  • na_ontap_autoupdate_config - REST only support for managing configurations for automatic updates, requires ONTAP 9.10.1 or later.

  • na_ontap_cg - REST only support for managing consistency groups, requires ONTAP 9.10.1 or later.

  • na_ontap_cifs - AWS Lambda support added to the module.

  • na_ontap_cifs_acl - AWS Lambda support added to the module.

  • na_ontap_cifs_local_group - AWS Lambda support added to the module.

  • na_ontap_cifs_local_group_member - AWS Lambda support added to the module.

  • na_ontap_cifs_local_user - AWS Lambda support added to the module.

  • na_ontap_cifs_local_user_set_password - AWS Lambda support added to the module.

  • na_ontap_cifs_privileges - AWS Lambda support added to the module.

  • na_ontap_cifs_server - AWS Lambda support added to the module.

  • na_ontap_cifs_unix_symlink_mapping - AWS Lambda support added to the module.

  • na_ontap_cluster_peer - AWS Lambda support added to the module.

  • na_ontap_igroup - AWS Lambda support added to the module.

  • na_ontap_igroup_initiator - AWS Lambda support added to the module.

  • na_ontap_interface - AWS Lambda support added to the module.

  • na_ontap_lun - AWS Lambda support added to the module.

  • na_ontap_lun_copy - AWS Lambda support added to the module.

  • na_ontap_lun_map - AWS Lambda support added to the module.

  • na_ontap_lun_map_reporting_nodes - AWS Lambda support added to the module.

  • na_ontap_s3_buckets - AWS Lambda support added to the module.

  • na_ontap_s3_groups - AWS Lambda support added to the module.

  • na_ontap_s3_policies - AWS Lambda support added to the module.

  • na_ontap_s3_services - AWS Lambda support added to the module.

  • na_ontap_s3_users - AWS Lambda support added to the module.

  • na_ontap_snapmirror - AWS Lambda support added to the module.

  • na_ontap_snapshot - AWS Lambda support added to the module.

  • na_ontap_svm - AWS Lambda support added to the module.

  • na_ontap_volume_autosize - AWS Lambda support added to the module.

  • na_ontap_volume_clone - AWS Lambda support added to the module.

  • na_ontap_vserver_peer - AWS Lambda support added to the module.

splunk.es

  • Bumped the minimum supported Ansible version to >=2.17.0 (Ansible 2.15/2.16 are EoL).

vmware.vmware

Removed Collections

  • awx.awx (previously included version: 24.6.1)

  • cisco.dnac (previously included version: 6.41.0)

  • junipernetworks.junos (previously included version: 11.0.0)

You can still install a removed collection manually with ansible-galaxy collection install <name-of-collection>.

Removed Features

  • The awx.awx collection has been removed from Ansible 14. The collection is undergoing a heavy refactoring and currently does not align with the standards for the community package. See the removal discussion for details. Users can still install this collection with ansible-galaxy collection install awx.awx.

  • The deprecated cisco.dnac collection has been removed (https://forum.ansible.com/t/45609).

  • The deprecated junipernetworks.junos collection has been removed (https://forum.ansible.com/t/44869).

Ansible-core

splunk.es

  • adaptive_response_notable_event module has been removed. Use splunk.es.splunk_adaptive_response_notable_events resource module instead.

  • correlation_search module has been removed. Use splunk.es.splunk_correlation_searches resource module instead.

  • correlation_search_info module has been removed. Use splunk.es.splunk_correlation_search_info instead.

  • data_input_monitor module has been removed. Use splunk.es.splunk_data_inputs_monitor resource module instead.

  • data_input_network module has been removed. Use splunk.es.splunk_data_inputs_network resource module instead.

Deprecated Features

Ansible-core

  • The get_all_subclasses() function from ansible.module_utils.basic is deprecated and will be removed in ansible-core 2.24. Use get_all_subclasses() from ansible.module_utils.common._utils instead.

  • The get_platfrom() function from ansible.module_utils.basic is deprecated and will be removed in ansible-core 2.24. Use platform.system() from the Python standard library instead.

  • The load_platform_subclass() function from ansible.module_utils.basic is deprecated and will be removed in ansible-core 2.24. Use get_platform_subclass() from ansible.module_utils.common.sys_info instead.

  • PluginLoader - Deprecate unused aliases attribute. Plugins in a collection should define aliases in the meta/runtime.yml file using the redirect field instead.

  • ansible.module_utils.six - The six compatibility library provided at ansible.module_utils.six is deprecated, and planned for removal in ansible-core 2.24

  • apt_key - deprecate in favor of deb822_repository.

  • apt_repository - deprecate in favor of deb822_repository.

  • connection plugins - Added a soft deprecation on the connection attributes has_native_async and always_pipeline_modules. Connection plugins that wish to apply custom behaviour around pipelining should instead override the method is_pipelining_enabled(self, wrap_async=False) added in Ansible 2.19. For backwards compatibility no runtime deprecation warning is emitted but will be in the future.

amazon.aws

community.aws

community.general

community.proxmox

community.routeros

  • api_find_and_modify - the current defaults for ignore_dynamic and ignore_builtin (both false) have been deprecated and will change to true in community.routeros 4.0.0. To avoid deprecation messages, please set the value explicitly to true or false, if you have not already done so. We recommend to set them to true, unless you have a good reason to set them to false (https://github.com/ansible-collections/community.routeros/pull/399).

hetzner.hcloud

  • hcloud inventory - The hcloud_datacenter host variable is deprecated and will be removed after 1 July 2026. Please use the hcloud_location host variable instead.

  • network_info - The hcloud_network_info[].servers[].datacenter return value is deprecated and will be removed after 1 July 2026. Please use the hcloud_network_info[].servers[].location return value instead.

  • primary_ip - The datacenter argument is deprecated and will be removed after 1 July 2026. Please use the location argument instead.

  • primary_ip - The hcloud_primary_ip.datacenter return value is deprecated and will be removed after 1 July 2026. Please use the hcloud_primary_ip.location return value instead.

  • primary_ip_info - The hcloud_primary_ip_info[].datacenter return value is deprecated and will be removed after 1 July 2026. Please use the hcloud_primary_ip_info[].location return value instead.

  • server - The datacenter argument is deprecated and will be removed after 1 July 2026. Please use the location argument instead.

  • server - The hcloud_server.datacenter return value is deprecated and will be removed after 1 July 2026. Please use the hcloud_server.location return value instead.

  • server_info - The hcloud_server_info[].datacenter return value is deprecated and will be removed after 1 July 2026. Please use the hcloud_server_info[].location return value instead.

kubernetes.core

vmware.vmware_rest

  • Deprecate modules that have been moved to the new vmware.vmware collection. Includes vcenter_vm_guest_customization, vcenter_vm_hardware_adapter_sata, vcenter_vm_hardware_adapter_scsi, vcenter_vm_hardware_cdrom, vcenter_vm_hardware_cpu, vcenter_vm_hardware_disk, vcenter_vm_hardware_ethernet, vcenter_vm_hardware_memory, vcenter_vm