Ansible 9 移植指南

Ansible 9 基于 Ansible-core 2.16。

我们建议您阅读此页面以及Ansible 9 更新日志,以了解您可能需要进行的更新。

Playbook

  • 条件语句 - 由于在 ansible-core 2.16.1 中缓解了安全问题 CVE-2023-5764,当嵌入式模板从模块结果或标记为 !unsafe 的变量等不受信任的来源读取数据时,带有嵌入式模板块的条件表达式可能会失败并显示消息“Conditional is marked as unsafe, and cannot be evaluated.”。 当引用不受信任的数据时,带有嵌入式模板的条件语句可能是恶意模板注入的来源,并且几乎总是可以在没有嵌入式模板的情况下重写。 Playbook 任务条件关键字(如 whenuntil)长期以来都显示警告,不鼓励在条件语句中使用嵌入式模板; 此警告已扩展到非任务条件语句,如 assert 操作。

    - name: task with a module result (always untrusted by Ansible)
      shell: echo "hi mom"
      register: untrusted_result
    
    # don't do it this way...
    # - name: insecure conditional with embedded template consulting untrusted data
    #   assert:
    #     that: '"hi mom" is in {{ untrusted_result.stdout }}'
    
    - name: securely access untrusted values directly as Jinja variables instead
      assert:
        that: '"hi mom" is in untrusted_result.stdout'
    

命令行

已弃用

模块

已移除的模块

弃用通知

值得注意的模块更改

插件

移植自定义脚本

网络

v9.13.0 移植指南

重大更改

  • 取消了删除 netapp.storagegrid 的决定。 该集合不会从 Ansible 11 中删除 (https://forum.ansible.com/t/2811)。 该集合的维护已由 NetApp 的另一个团队接管。

v9.12.0 移植指南

重大更改

ansible.posix

  • 放弃对 Ansible 2.9 的支持,此版本将要求 ansible-core 2.15 为最低版本

fortinet.fortios

  • 改进 SET 函数的逻辑,先发送 GET 请求,然后再发送 PUT 或 POST

  • Mantis

  • 支持新的 FOS 版本 7.6.0。

已弃用功能

community.network

  • 此集合及其中的所有内容均未维护并已弃用 (https://forum.ansible.com/t/8030)。 如果您有兴趣维护集合的某些部分,请将其复制到您自己的存储库中,并在论坛讨论中告知其他人。 有关详细信息,请参阅集合创建者路径

community.vmware

v9.11.0 移植指南

已弃用功能

v9.10.0 移植指南

已弃用功能

community.mysql

community.vmware

v9.9.0 的移植指南

已知问题

community.docker

已弃用功能

community.docker

  • 该集合已弃用对所有当前已停止维护的 ansible-core 版本的支持,根据 ansible-core 支持矩阵。这意味着该集合的下一个主要版本将不再支持 ansible-core 2.11、ansible-core 2.12、ansible-core 2.13 和 ansible-core 2.14。

community.routeros

  • 该集合已弃用对所有当前已停止维护的 Ansible/ansible-base/ansible-core 版本的支持,根据 ansible-core 支持矩阵。这意味着该集合的下一个主要版本将不再支持 Ansible 2.9、ansible-base 2.10、ansible-core 2.11、ansible-core 2.12、ansible-core 2.13 和 ansible-core 2.14。

community.sops

  • 该集合已弃用对所有当前已停止维护的 Ansible/ansible-base/ansible-core 版本的支持,根据 ansible-core 支持矩阵。这意味着该集合的下一个主要版本将不再支持 Ansible 2.9、ansible-base 2.10、ansible-core 2.11、ansible-core 2.12、ansible-core 2.13 和 ansible-core 2.14。

v9.8.0 的移植指南

新增集合

  • ieisystem.inmanage (版本 2.0.0)

  • vmware.vmware (版本 1.3.0)

主要变更

fortinet.fortios

  • 添加 sanity_test.yaml 文件以触发 GitHub 中的 CI 测试。

  • 支持 Ansible-core 2.17。

  • 支持新的 FOS 版本 7.4.4。

已弃用功能

v9.7.0 的移植指南

已知问题

community.general

主要变更

containers.podman

  • 为卷添加挂载和卸载

  • 为网络添加多个子网

  • 为 podman_container 添加新选项

  • 为 pod 模块添加新选项

  • 添加 podman 搜索

  • 改进 podman_container 中网络的幂等性

  • 重新设计 Podman Pod 模块的幂等性

已删除功能

community.grafana

  • 删除了 grafana_dashboard 中已弃用的 message 参数

v9.6.0 的移植指南

新增集合

  • kaytus.ksmanage (版本 1.2.1)

已知问题

community.docker

  • 请注意,community.docker 3.10.1 中包含的针对 requests 2.32.0 的修复仅修复了 vendor Docker SDK for Python 代码的问题。使用 Docker SDK for Python 的模块和插件仍然可能因 SDK 当前与 requests 2.32.0 不兼容而失败。

    如果您仍然遇到 requests 2.32.0 的问题,例如 Not supported URL scheme http+docker 等错误消息,请将 requests 限制为 <2.32.0

重大变更

community.ciscosmb

  • 在接口的事实中,'bandwith' 更改为 'bandwidth'

已弃用功能

amazon.aws

community.crypto

community.docker

v9.5.1 的移植指南

主要更改

containers.podman

  • 为 Podman 模块添加 quadlet 支持

fortinet.fortios

  • 在监控模块和监控事实模块的文档中为备份模块添加注释。

  • 支持新的 FOS 版本 7.4.2 和 7.4.3,并支持集合中的数据类型 mac_address。

  • 将文档中支持的版本从最新版本更新为固定版本号。

  • 将所需的 ansible 版本更新为 2.15。

已弃用的功能

community.crypto

community.general

community.vmware

v9.4.0 的移植指南

已弃用的功能

amazon.aws

v9.3.0 的移植指南

主要更改

community.mysql

  • 集合版本 2.*.* 已 EOL,不再向后移植错误修复。请考虑升级到最新版本。

fortinet.fortios

  • 在文档和示例中将所有布尔值更新为 true/false。

  • 更新 log_fact 的文档。

  • 使用版本范围更新不匹配的版本消息。

  • 将所需的 ansible 版本更新为 2.14。

  • 更新支持的版本范围而不是具体的版本号,以减少集合大小。

已弃用的功能

community.crypto

v9.2.0 的移植指南

添加的集合

  • community.library_inventory_filtering_v1 (版本 1.0.0)

已知问题

dellemc.openmanage

  • idrac_firmware - 问题 (279282) - 此模块不支持使用 HTTP、HTTPS 和 FTP 共享在 iDRAC8 上进行身份验证的固件更新。

  • idrac_network_attributes - 问题 (279049) - 如果为参数 ome_network_attributes 提供了不支持的值,则此模块不会提供正确的错误消息。

  • ome_device_network_services - 问题 (212681) - 如果为以下参数提供了不支持的值 - port_number、community_name、max_sessions、max_auth_retries 和 idle_timeout,则该模块不会提供正确的错误消息。

  • ome_device_power_settings - 问题 (212679) - 如果为参数 power_cap 提供的值不在 0 到 32767 的支持范围内,则该模块会显示以下消息,无法完成请求,因为资源 URI 不存在 PowerCap 或不适用。

  • ome_device_quick_deploy - 问题 (275231) - 此模块不会将新配置部署到已禁用 IPv6 的插槽。

  • ome_diagnostics - 问题 (279193) - 在 OME 版本 4.0.0 上,将 SupportAssist 收集日志导出到共享位置失败。

  • ome_smart_fabric_uplink - 问题 (186024) - 该模块由 OpenManage Enterprise Modular 支持,但是不允许创建多个同名的上行链路。如果使用与现有上行链路相同的名称创建上行链路,则会修改现有上行链路。

主要更改

community.docker

  • 现在,community.docker 集合依赖于 community.library_inventory_filtering_v1 集合。这个实用工具集合为清单插件提供了主机过滤功能。如果您使用 Ansible 社区包,则两个集合都包含在内,您无需执行任何特殊操作。如果您使用 ansible-galaxy collection install 安装集合,它将自动安装。如果您通过将集合的文件复制到 ansible-core 可以找到的地方来安装集合,例如通过克隆 git 存储库,您需要确保在使用清单插件时也安装了依赖项(https://github.com/ansible-collections/community.docker/pull/698)。

community.hashi_vault

dellemc.openmanage

  • 所有 OME 模块都已增强,以支持环境变量 OME_USERNAMEOME_PASSWORD 作为凭据的后备。

  • 所有 iDRAC 和 Redfish 模块都已增强,以支持环境变量 IDRAC_USERNAMEIDRAC_PASSWORD 作为凭据的后备。

  • idrac_certificates - 该模块已增强,以支持导入和导出 CUSTOMCERTIFICATE

  • idrac_gather_facts - 此角色已增强,以支持安全启动。

  • idrac_license - 引入该模块以配置 iDRAC 许可证。

infoblox.nios_modules

  • 将 Ansible 版本支持从 2.13 升级到 2.16。

  • 将 Python 版本支持从 3.8 升级到 3.10。

已弃用功能

community.dns

community.docker

community.general

community.hrobot

v9.1.0 的移植指南

已知问题

dellemc.openmanage

  • idrac_firmware - 问题 (279282) - 此模块不支持使用 HTTP、HTTPS 和 FTP 共享在 iDRAC8 上进行身份验证的固件更新。

  • idrac_network_attributes - 问题 (279049) - 如果为参数 ome_network_attributes 提供了不支持的值,则此模块不会提供正确的错误消息。

  • ome_device_network_services - 问题 (212681) - 如果为以下参数提供了不支持的值 - port_number、community_name、max_sessions、max_auth_retries 和 idle_timeout,则该模块不会提供正确的错误消息。

  • ome_device_power_settings - 问题 (212679) - 如果为参数 power_cap 提供的值不在 0 到 32767 的支持范围内,则该模块会显示以下消息,无法完成请求,因为资源 URI 不存在 PowerCap 或不适用。

  • ome_device_quick_deploy - 问题 (275231) - 此模块不会将新配置部署到已禁用 IPv6 的插槽。

  • ome_diagnostics - 问题 (279193) - 在 OME 版本 4.0.0 上,将 SupportAssist 收集日志导出到共享位置失败。

  • ome_smart_fabric_uplink - 问题 (186024) - 该模块由 OpenManage Enterprise Modular 支持,但是不允许创建多个同名的上行链路。如果使用与现有上行链路相同的名称创建上行链路,则会修改现有上行链路。

破坏性更改

Ansible-core

  • assert - 嵌套模板可能导致无法评估条件。有关详细信息,请参阅移植指南。

v9.0.0 的移植指南

添加的集合

  • ibm.storage_virtualize (版本 2.1.0)

  • telekom_mms.icinga_director (版本 1.34.1)

已知问题

Ansible-core

  • ansible-galaxy - 当角色包含 Java 内部类(文件名中带有 $ 的文件)时,会在安装角色过程中中断。这是为了排除临时文件或备份文件而设计的。(https://github.com/ansible/ansible/pull/81553)。

  • ansible-test - pep8 健全性测试无法在 Python 3.10 和 3.11 上检测到 f-字符串间距问题(E201、E202)。它们在 Python 3.12 下可以正确检测到。请参阅(https://github.com/PyCQA/pycodestyle/issues/1190)。

community.crypto

community.dns

community.docker

community.general

community.hrobot

community.routeros

community.sops

dellemc.openmanage

  • ca_path 缺失 - 问题 (275740) - 角色 idrac_attributes、redfish_storage_volume 和 idrac_server_powerstate 缺少参数 ca_path。

  • idrac_firmware - 问题 (276335) - 此模块在 Python 3.11.x 版本上使用 NFS 共享时失败。请使用不同的 Python 版本或共享类型。

  • idrac_firmware - 问题 (279282) - 此模块不支持使用 HTTP、HTTPS 和 FTP 共享在 iDRAC8 上进行身份验证的固件更新。

  • idrac_network_attributes - 问题 (279049) - 如果为参数 ome_network_attributes 提供了不支持的值,则此模块不会提供正确的错误消息。

  • idrac_redfish_storage_controller - 问题 (256164) - 如果为控制器配置提供的属性列表中提供了不正确的值,则此模块不会以错误退出。

  • ome_device_network_services - 问题 (212681) - 如果为以下参数提供了不支持的值 - port_number、community_name、max_sessions、max_auth_retries 和 idle_timeout,则该模块不会提供正确的错误消息。

  • ome_device_power_settings - 问题 (212679) - 如果为参数 power_cap 提供的值不在 0 到 32767 的支持范围内,则该模块会显示以下消息,无法完成请求,因为资源 URI 不存在 PowerCap 或不适用。

  • ome_device_quick_deploy - 问题 (275231) - 此模块不会将新配置部署到已禁用 IPv6 的插槽。

  • ome_smart_fabric_uplink - 问题 (186024) - 尽管该模块受 OpenManage Enterprise Modular 支持,但它不允许创建多个同名上行链路。如果创建的上行链路与现有上行链路的名称相同,则会修改现有上行链路。

破坏性更改

Ansible-core

  • 任何使用配置系统和 cli 条目来使用命令行中的 timeout 的插件,如果用户在任何较低优先级的方法中配置了该值,则会看到该值发生变化。如果依赖此行为来使用来自 DEFAULT_TIMEOUT 常量的全局/通用超时,请查阅插件配置文档以添加重叠的条目。

  • ansible-test - 依赖容器的测试插件不再支持重用正在运行的容器。以前的行为是一个未记录、未经测试的功能。

  • service 模块在执行启用/禁用操作时将不再永久配置 openbsd 的变量/标志,此模块从未打算执行此类工作,只是管理服务状态本身。应该创建并使用 rcctl_config 或类似的模块。

amazon.aws

community.aws

  • community.aws 集合已停止支持 botocore<1.29.0boto3<1.26.0。大多数模块将继续与旧版本的 AWS SDK 一起工作,但是不保证与旧版本 SDK 的兼容性,并且不会进行测试。当使用旧版本的 SDK 时,Ansible 将发出警告(https://github.com/ansible-collections/amazon.aws/pull/1763)。

  • aws_region_info - 该模块已从 community.aws 集合迁移。使用此模块的完全限定集合名称的 playbook 应更新为使用 amazon.aws.aws_region_info

  • aws_s3_bucket_info - 该模块已从 community.aws 集合迁移。使用此模块的完全限定集合名称的 playbook 应更新为使用 amazon.aws.aws_s3_bucket_info

  • community.aws 集合 - 由于 AWS SDK 宣布停止支持低于 3.7 的 Python 版本(https://aws.amazon.com/blogs/developer/python-support-policy-updates-for-aws-sdks-and-tools/),此集合在 6.0.0 版本中已弃用对低于 3.7 的 Python 的支持,并在 7.0.0 版本中已删除。(https://github.com/ansible-collections/amazon.aws/pull/1763)。

  • iam_access_key - 该模块已从 community.aws 集合迁移。使用此模块的完全限定集合名称的 playbook 应更新为使用 amazon.aws.iam_access_key

  • iam_access_key_info - 该模块已从 community.aws 集合迁移。使用此模块的完全限定集合名称的 playbook 应更新为使用 amazon.aws.iam_access_key_info

  • iam_group - 该模块已从 community.aws 集合迁移。使用此模块的完全限定集合名称的 playbook 应更新为使用 amazon.aws.iam_grouphttps://github.com/ansible-collections/community.aws/pull/1945)。

  • iam_managed_policy - 该模块已从 community.aws 集合迁移。使用此模块的完全限定集合名称的 playbook 应更新为使用 amazon.aws.iam_managed_policyhttps://github.com/ansible-collections/community.aws/pull/1954)。

  • iam_mfa_device_info - 该模块已从 community.aws 集合迁移。使用此模块的完全限定集合名称的 playbook 应更新为使用 amazon.aws.iam_mfa_device_infohttps://github.com/ansible-collections/community.aws/pull/1953)。

  • iam_password_policy - 该模块已从 community.aws 集合迁移。使用此模块的完全限定集合名称的 playbook 应更新为使用 amazon.aws.iam_password_policy

  • iam_role - 该模块已从 community.aws 集合迁移。使用此模块的完全限定集合名称的 playbook 应更新为使用 amazon.aws.iam_rolehttps://github.com/ansible-collections/community.aws/pull/1948)。

  • iam_role_info - 该模块已从 community.aws 集合迁移。使用此模块的完全限定集合名称的 playbook 应更新为使用 amazon.aws.iam_role_infohttps://github.com/ansible-collections/community.aws/pull/1948)。

  • s3_bucket_info - 该模块已从 community.aws 集合迁移。使用此模块的完全限定集合名称的 playbook 应更新为使用 amazon.aws.s3_bucket_info

  • sts_assume_role - 该模块已从 community.aws 集合迁移。使用此模块的完全限定集合名称的 playbook 应更新为使用 amazon.aws.sts_assume_role

community.general

community.hashi_vault

community.vmware

dellemc.enterprise_sonic

hetzner.hcloud

  • 删除对 ansible-core 2.12 的支持

  • 删除对 python 3.7 的支持

  • 现在需要 hcloud-python 1.20.0 才能实现完全兼容

  • 清单插件 - 当未定义服务器映像时,不设置服务器映像变量(image_idimage_os_flavorimage_name)。

主要更改

amazon.aws

  • aws_region_info - 该模块已从 community.aws 集合迁移。使用此模块的完全限定集合名称的 playbook 应更新为使用 amazon.aws.aws_region_info

  • aws_s3_bucket_info - 该模块已从 community.aws 集合迁移。使用此模块的完全限定集合名称的 playbook 应更新为使用 amazon.aws.aws_s3_bucket_info

  • iam_access_key - 该模块已从 community.aws 集合迁移。使用此模块的完全限定集合名称的 playbook 应更新为使用 amazon.aws.iam_access_key

  • iam_access_key_info - 该模块已从 community.aws 集合迁移。使用此模块的完全限定集合名称的 playbook 应更新为使用 amazon.aws.iam_access_key_info

  • iam_group - 该模块已从 community.aws 集合迁移。使用此模块的完全限定集合名称的 playbook 应更新为使用 amazon.aws.iam_grouphttps://github.com/ansible-collections/amazon.aws/pull/1755)。

  • iam_managed_policy - 该模块已从 community.aws 集合迁移。使用此模块的完全限定集合名称的 playbook 应更新为使用 amazon.aws.iam_managed_policyhttps://github.com/ansible-collections/amazon.aws/pull/1762)。

  • iam_mfa_device_info - 该模块已从 community.aws 集合迁移。使用此模块的完全限定集合名称的 playbook 应更新为使用 amazon.aws.iam_mfa_device_infohttps://github.com/ansible-collections/amazon.aws/pull/1761)。

  • iam_password_policy - 该模块已从 community.aws 集合迁移。使用此模块的完全限定集合名称的 playbook 应更新为使用 amazon.aws.iam_password_policy

  • iam_role - 该模块已从 community.aws 集合迁移。使用此模块的完全限定集合名称的 playbook 应更新为使用 amazon.aws.iam_rolehttps://github.com/ansible-collections/amazon.aws/pull/1760)。

  • iam_role_info - 该模块已从 community.aws 集合迁移。使用此模块的完全限定集合名称的 playbook 应更新为使用 amazon.aws.iam_role_infohttps://github.com/ansible-collections/amazon.aws/pull/1760)。

  • s3_bucket_info - 该模块已从 community.aws 集合迁移。使用此模块的完全限定集合名称的 playbook 应更新为使用 amazon.aws.s3_bucket_info

  • sts_assume_role - 该模块已从 community.aws 集合迁移。使用此模块的完全限定集合名称的 playbook 应更新为使用 amazon.aws.sts_assume_role

chocolatey.chocolatey

  • win_chocolatey - 添加用于指定校验和的选项

  • win_chocolatey_facts - 添加 filter / gather_subset 选项

cisco.ios

  • 此版本删除以前已弃用的模块,以及此集合中的一些属性。有关详细信息,请参阅“已删除的功能”部分。

cisco.nxos

  • 有关详细信息,请参阅“已删除的功能”部分。

  • 此版本删除了此集合中四个以前已弃用的模块。

cloudscale_ch.cloud

  • 将最低要求的 Ansible 版本提升至 2.13.0

community.mysql

  • community.mysql 集合不再支持 ansible-core 2.12ansible-core 2.13。虽然我们不会采取任何积极措施来阻止使用,并且没有计划在模块中引入不兼容的代码,但我们将停止测试这些版本。这两个版本都已或即将停止生命周期,如果您仍然在使用它们,您应该尽快考虑升级到 最新 Ansible / ansible-core 2.15 或更高版本 (https://github.com/ansible-collections/community.mysql/pull/574)。

  • mysql_role - 在 community.mysql 4.0.0 中,column_case_sensitive 参数的默认值将更改为 true。如果您的 playbook 期望为角色权限自动将列名转换为大写,则应显式将其设置为 false (https://github.com/ansible-collections/community.mysql/issues/578)。

  • mysql_user - 在 community.mysql 4.0.0 中,column_case_sensitive 参数的默认值将更改为 true。如果您的 playbook 期望为用户权限自动将列名转换为大写,则应显式将其设置为 false (https://github.com/ansible-collections/community.mysql/issues/577)。

community.postgresql

community.sap

  • 所有模块 - 现在都重定向到新的集合 community.sap_libs

community.vmware

  • vmware_vasa - 添加了一个新模块来注册/注销 VASA 提供程序

  • vmware_vasa_info - 添加了一个新模块来收集有关现有 VASA 提供程序的信息

fortinet.fortimanager

  • 支持 6.2、6.4、7.0、7.2 和 7.4 中的所有 FortiManager 版本。新增 139 个模块。

  • 支持基于令牌的身份验证。

fortinet.fortios

  • 添加新的 fortios 版本 7.4.1。

  • 添加 readthedocs.yaml 文件。

  • 格式化 changelog.yml 文件中的内容。

  • 改进一些模块中的 no_log 功能;

  • 改进使用整数作为 mkey 的模块的问答中添加注释和示例的文档。

  • 改进 fortios_router_staticseq_num 的文档和示例;

  • 改进所有模块中 member_path 的文档;

  • 支持新的 FOS 版本。

  • 将 Ansible 版本从 2.9 更新到 2.14。

  • 更新有关设置 FortiToken 多因素身份验证的问答;

  • 更新问答,解决 Ansible 始终将 GET/PUT 请求作为 POST 请求发送的问题。

  • 更新 requirement.txt 文件以指定 sphinx_rtd_theme==1.3.0

  • 在 runtime.yml 文件中将所需的 Ansible 版本更新为 2.14.0。

grafana.grafana

  • @gardar 添加了 Grafana 服务器角色

  • @NormanJS 添加了可配置的代理用户组

  • @ishanjainn 添加了对本地 Grafana 安装的 Grafana 插件支持

  • @bentonam 更新了流模式的服务

已删除的集合

  • cisco.nso (之前包含的版本:1.0.3)

  • community.fortios (之前包含的版本:1.0.0)

  • community.google (之前包含的版本:1.0.0)

  • community.skydive (之前包含的版本:1.0.0)

  • ngine_io.vultr (之前包含的版本:1.1.3)

  • servicenow.servicenow (之前包含的版本:1.0.6)

已删除的功能

Ansible-core

  • ActionBase - 删除已弃用的 _remote_checksum 方法

  • PlayIterator - 删除已弃用的 cache_block_tasksget_original_task 方法

  • 删除已弃用的 FileLock

  • 删除在控制器上支持的 Python 3.9 版本。需要 Python 3.10 或更高版本。

  • 删除在 Ansible 2.12 中已弃用的 include。请改用 include_tasksimport_tasks

  • Templar - 删除已弃用的 __init__shared_loader_obj 参数

  • fetch_url - 删除在 gzip 不可用时自动禁用 decompress 的功能

  • get_action_args_with_defaults - 删除已弃用的 redirected_names 方法参数

  • ansible-test - 删除对远程 Windows 目标 2012 和 2012-R2 的支持

  • inventory_cache - 删除已弃用的 default.fact_caching_prefix ini 配置选项,请改用 defaults.fact_caching_prefix

  • module_utils/basic.py - 删除对远程版本 Python 3.5 的支持。现在需要 Python 2.7 或 Python 3.6+。

  • stat - 删除未使用的 get_md5 参数。

ansible.windows

  • win_get_url - 删除已弃用的选项别名 passwordd,请改用 url_password

  • win_get_url - 删除已弃用的选项别名 userusername,请改用 url_username

  • win_package - 删除已弃用的模块选项 ensure,请改用 state

  • win_package - 删除已弃用的模块选项 productid,请改用 product_id

  • win_package - 删除已弃用的模块选项 usernameuser_namepassworduser_password。请改为在任务上使用 becomebecome_flags: logon_type=new_credentials logon_flags=netcredentials_only 来复制相同的功能。

  • win_reboot - 删除向后兼容性检查,其中 ignore_errors: true 将被视为 ignore_unreachable: true。今后,ignore_errors: true 将只忽略插件遇到的错误,而不是无法访问的主机。像任何其他模块一样,使用 ignore_unreachable: true 来忽略该错误。

  • win_regedit - 移除对在 path 中使用正斜杠作为键分隔符的支持。使用正斜杠自 Ansible 2.9 起已被弃用。如果在 win_regeditpath 值中使用正斜杠,请务必将正斜杠 / 更改为反斜杠 \。如果包含在双引号中,则反斜杠必须加倍。

  • win_updates - 移除已弃用的别名 blacklist,请改用 reject_list

  • win_updates - 移除已弃用的别名 whitelist,请改用 accept_list

  • win_updates - 移除已弃用的模块选项 use_scheduled_task。此选项不会更改模块的任何功能,可以安全地从任务条目中删除。

  • win_uri - 移除已弃用的选项别名 password,请改用 url_password

  • win_uri - 移除已弃用的选项别名 userusername,请改用 url_username

cisco.ios

  • 弃用 ios_logging 模块,推荐使用 ios_logging_global。

  • 弃用 bgp_address_family 的 next_hop_self 属性,请使用 nexthop_self。

cisco.nxos

  • 此版本已移除 nxos_bgp 模块。

  • 此版本已移除 nxos_bgp_af 模块。

  • 此版本已移除 nxos_bgp_neighbor 模块。

  • 此版本已移除 nxos_bgp_neighbor_af 模块。

community.ciscosmb

  • 移除对 Python 2.6 和 2.7 的测试。

  • 移除对 Ansible 2.9 的测试。

community.general

community.hashi_vault

community.vmware

community.windows

  • 由于 Server 2012 和 Server 2012 R2 即将达到 Microsoft 的生命周期结束状态,因此移除了对它们的测试。这些操作系统版本可能仍然可以工作,但在 CI 中不会进行测试。

  • win_nssm - 移除已弃用的模块选项 app_parameters,请改用 arguments

  • win_psmodule - 移除已弃用的模块选项 url,请改用 community.windows.win_psrepository 来管理存储库。

  • win_psmodule - 当 state: absent 时,不再移除指定的 repository,请改用 community.windows.win_psrepository 来管理存储库。

  • win_scheduled_tasks - 移除对将触发器 repetition 定义为字典条目列表的支持。请将 repetition 指定为字典值,而不是字典列表。

dellemc.openmanage

  • 已移除 dellemc_get_firmware_inventory 模块,并替换为模块 idrac_firmware_info

  • 已移除 dellemc_get_system_inventory 模块,并替换为模块 idrac_system_info

hetzner.hcloud

  • hcloud_datacenter_facts 移除已弃用的 facts 模块。

  • hcloud_floating_ip_facts 移除已弃用的 facts 模块。

  • hcloud_image_facts 移除已弃用的 facts 模块。

  • hcloud_location_facts 移除已弃用的 facts 模块。

  • hcloud_server_facts 移除已弃用的 facts 模块。

  • hcloud_server_type_facts 移除已弃用的 facts 模块。

  • hcloud_ssh_key_facts 移除已弃用的 facts 模块。

  • hcloud_volume_facts 移除已弃用的 facts 模块。

已弃用的功能

Ansible-core

  • 已弃用 ini 配置选项 collections_paths,请改用单数形式 collections_path

  • 已弃用环境变量 ANSIBLE_COLLECTIONS_PATHS,请改用单数形式 ANSIBLE_COLLECTIONS_PATH

  • 使用入口点 get_host_varsget_group_vars 的旧式变量插件已弃用。应更新插件以继承 BaseVarsPlugin 并定义 get_vars 方法作为入口点。

  • 已移除对 Windows Server 2012 和 2012 R2 的支持,因为微软的生命周期支持已于 2023 年 10 月 10 日结束。这些版本的 Windows 将不再在此 Ansible 版本中进行测试,并且无法保证它们在未来能继续工作。

  • STRING_CONVERSION_ACTION 配置选项已弃用,因为它不再在 Ansible Core 代码库中使用。

  • 用于设置连接插件的“smart”选项正在被删除,因为它主要目的(在 ssh 和 paramiko 之间选择)现在已经无关紧要。

  • vault 和 unfault 过滤器 - 未记录的 vaultid 参数已弃用,将在 ansible-core 2.20 中删除。请改用 vault_id

  • yum_repository - 已弃用参数“keepcache”(https://github.com/ansible/ansible/issues/78693)。

amazon.aws

ansible.netcommon

  • libssh - ssh_*_args 选项现在被标记为将在 2026-01-01 之后删除。

ansible.windows

  • 当将 Server 2012 或 2012 R2 与 setup 模块一起使用时,添加警告。这些操作系统即将达到生命周期终止,并且在达到该时间时将不会在 CI 中进行测试。

  • win_domain - 此模块已弃用,推荐使用 microsoft.ad.domain 模块,ansible.windows.win_domain 模块将在该集合的 3.0.0 版本中删除。

  • win_domain_controller - 此模块已弃用,推荐使用 microsoft.ad.domain_controller 模块,ansible.windows.win_domain_controller 模块将在该集合的 3.0.0 版本中删除。

  • win_domain_membership - 此模块已弃用,推荐使用 microsoft.ad.membership 模块,ansible.windows.win_domain_membership 模块将在该集合的 3.0.0 版本中删除。

cisco.ios

  • ios_snmp_server - 弃用 traps.envmon.fan,使用 traps.envmon.fan_enable。

  • ios_snmp_server - 弃用 traps.mpls_vpn,使用 traps.mpls。

  • ospfv2 - 将 passive_interface 更改为支持接口列表的 passive_interfaces。

cisco.iosxr

  • 弃用 iosxr_bgp 模块,推荐使用 iosxr_bgp_global、iosxr_bgp_neighbor_address_family 和 iosxr_bgp_address_family。

  • iosxr_l2_interfaces - 弃用 q_vlan,使用允许 str 格式(例如“any”)的 vlan 的 qvlan。

community.ciscosmb

  • 不支持 Python 2.6 和 2.7。

  • 不支持 ansible 2.9。

community.crypto

community.general

community.postgresql

community.sap

  • community.sap.hana_query - 已弃用,建议使用 community.sap_libs.sap_hdbsql

  • community.sap.sap_company - 已弃用,建议使用 community.sap_libs.sap_company

  • community.sap.sap_snote - 已弃用,建议使用 community.sap_libs.sap_snote

  • community.sap.sap_task_list_execute - 已弃用,建议使用 community.sap_libs.sap_task_list_execute

  • community.sap.sap_user - 已弃用,建议使用 community.sap_libs.sap_user

  • community.sap.sapcar_extract - 已弃用,建议使用 community.sap_libs.sapcar_extract

community.windows

  • win_domain_computer - 模块已弃用,建议使用 microsoft.ad.computer 模块。 community.windows.win_domain_computer 模块将在该集合的 3.0.0 版本中移除。

  • win_domain_group - 模块已弃用,建议使用 microsoft.ad.group 模块。 community.windows.win_domain_group 模块将在该集合的 3.0.0 版本中移除。

  • win_domain_group_membership - 模块已弃用,建议使用 microsoft.ad.group 模块。 community.windows.win_domain_group_membership 模块将在该集合的 3.0.0 版本中移除。

  • win_domain_object_info - 模块已弃用,建议使用 microsoft.ad.object_info 模块。 community.windows.win_domain_object_info 模块将在该集合的 3.0.0 版本中移除。

  • win_domain_ou - 模块已弃用,建议使用 microsoft.ad.ou 模块。 community.windows.win_domain_ou 模块将在该集合的 3.0.0 版本中移除。

  • win_domain_user - 模块已弃用,建议使用 microsoft.ad.user 模块。 community.windows.win_domain_user 模块将在该集合的 3.0.0 版本中移除。

junipernetworks.junos

  • junos_ospfv2 - 为 area_range 添加弃用警告。

  • 为 junos facts 结果的 junos_acl_interfaces 键添加弃用警告。

microsoft.ad

  • 正在弃用对 Server 2012 和 Server 2012 R2 的支持。这些操作系统版本即将达到微软的生命周期终止状态,在 Ansible 中对它们的支持也即将结束。

purestorage.fusion

  • fusion_api_client - ‘app_id’ 和 ‘key_file’ 参数已弃用,建议使用 ‘issuer_id’ 和 ‘private_key_file’ 参数,将在 2.0.0 版本中移除。 FUSION_APP_ID 和 FUSION_HOST 环境变量已弃用,建议使用 FUSION_ISSUER_ID 和 FUSION_HOST,将在 2.0.0 版本中移除

  • fusion_array - ‘app_id’ 和 ‘key_file’ 参数已弃用,建议使用 ‘issuer_id’ 和 ‘private_key_file’ 参数,将在 2.0.0 版本中移除。 FUSION_APP_ID 和 FUSION_HOST 环境变量已弃用,建议使用 FUSION_ISSUER_ID 和 FUSION_HOST,将在 2.0.0 版本中移除

  • fusion_az - ‘app_id’ 和 ‘key_file’ 参数已弃用,建议使用 ‘issuer_id’ 和 ‘private_key_file’ 参数,将在 2.0.0 版本中移除。 FUSION_APP_ID 和 FUSION_HOST 环境变量已弃用,建议使用 FUSION_ISSUER_ID 和 FUSION_HOST,将在 2.0.0 版本中移除

  • fusion_hap - ‘app_id’ 和 ‘key_file’ 参数已弃用,建议使用 ‘issuer_id’ 和 ‘private_key_file’ 参数,将在 2.0.0 版本中移除。 FUSION_APP_ID 和 FUSION_HOST 环境变量已弃用,建议使用 FUSION_ISSUER_ID 和 FUSION_HOST,将在 2.0.0 版本中移除

  • fusion_hap - 参数 nqn, wwns, host_password, host_user, target_password` 和 `target_user 已弃用

  • fusion_hw - FUSION_APP_ID 和 FUSION_HOST 环境变量已弃用,建议使用 FUSION_ISSUER_ID 和 FUSION_HOST,将在 2.0.0 版本中移除

  • fusion_info - ‘app_id’ 和 ‘key_file’ 参数已弃用,建议使用 ‘issuer_id’ 和 ‘private_key_file’ 参数,将在 2.0.0 版本中移除。 FUSION_APP_ID 和 FUSION_HOST 环境变量已弃用,建议使用 FUSION_ISSUER_ID 和 FUSION_HOST,将在 2.0.0 版本中移除

  • fusion_info - ‘hosts’ 子集已弃用,建议使用 ‘host_access_policies’,将在 2.0.0 版本中移除

  • fusion_info - ‘interfaces’ 子集已弃用,建议使用 ‘network_interfaces’,将在 2.0.0 版本中移除

  • fusion_info - ‘zones’ 子集已弃用,建议使用 ‘availability_zones’,将在 2.0.0 版本中移除

  • fusion_ni - ‘app_id’ 和 ‘key_file’ 参数已弃用,建议使用 ‘issuer_id’ 和 ‘private_key_file’ 参数,将在 2.0.0 版本中移除。 FUSION_APP_ID 和 FUSION_HOST 环境变量已弃用,建议使用 FUSION_ISSUER_ID 和 FUSION_HOST,将在 2.0.0 版本中移除

  • fusion_nig - ‘app_id’ 和 ‘key_file’ 参数已弃用,建议使用 ‘issuer_id’ 和 ‘private_key_file’ 参数,将在 2.0.0 版本中移除。 FUSION_APP_ID 和 FUSION_HOST 环境变量已弃用,建议使用 FUSION_ISSUER_ID 和 FUSION_HOST,将在 2.0.0 版本中移除

  • fusion_pg - ‘app_id’ 和 ‘key_file’ 参数已弃用,建议使用 ‘issuer_id’ 和 ‘private_key_file’ 参数,将在 2.0.0 版本中移除。 FUSION_APP_ID 和 FUSION_HOST 环境变量已弃用,建议使用 FUSION_ISSUER_ID 和 FUSION_HOST,将在 2.0.0 版本中移除

  • fusion_pp - ‘app_id’ 和 ‘key_file’ 参数已弃用,建议使用 ‘issuer_id’ 和 ‘private_key_file’ 参数,将在 2.0.0 版本中移除。 FUSION_APP_ID 和 FUSION_HOST 环境变量已弃用,建议使用 FUSION_ISSUER_ID 和 FUSION_HOST,将在 2.0.0 版本中移除

  • fusion_ra - ‘app_id’ 和 ‘key_file’ 参数已弃用,建议使用 ‘issuer_id’ 和 ‘private_key_file’ 参数,将在 2.0.0 版本中移除。 FUSION_APP_ID 和 FUSION_HOST 环境变量已弃用,建议使用 FUSION_ISSUER_ID 和 FUSION_HOST,将在 2.0.0 版本中移除

  • fusion_region - ‘app_id’ 和 ‘key_file’ 参数已弃用,建议使用 ‘issuer_id’ 和 ‘private_key_file’ 参数,将在 2.0.0 版本中移除。 FUSION_APP_ID 和 FUSION_HOST 环境变量已弃用,建议使用 FUSION_ISSUER_ID 和 FUSION_HOST,将在 2.0.0 版本中移除

  • fusion_sc - ‘app_id’ 和 ‘key_file’ 参数已弃用,建议使用 ‘issuer_id’ 和 ‘private_key_file’ 参数,将在 2.0.0 版本中移除。 FUSION_APP_ID 和 FUSION_HOST 环境变量已弃用,建议使用 FUSION_ISSUER_ID 和 FUSION_HOST,将在 2.0.0 版本中移除

  • fusion_se - ‘app_id’ 和 ‘key_file’ 参数已弃用,建议使用 ‘issuer_id’ 和 ‘private_key_file’ 参数,将在 2.0.0 版本中移除。 FUSION_APP_ID 和 FUSION_HOST 环境变量已弃用,建议使用 FUSION_ISSUER_ID 和 FUSION_HOST,将在 2.0.0 版本中移除

  • fusion_se - endpoint_type 参数已弃用,将在 2.0.0 版本中移除。

  • fusion_ss - ‘app_id’ 和 ‘key_file’ 参数已弃用,推荐使用 ‘issuer_id’ 和 ‘private_key_file’ 参数,将在 2.0.0 版本中移除。FUSION_APP_ID 和 FUSION_HOST 环境变量已弃用,推荐使用 FUSION_ISSUER_ID 和 FUSION_HOST,将在 2.0.0 版本中移除。

  • fusion_tenant - ‘app_id’ 和 ‘key_file’ 参数已弃用,推荐使用 ‘issuer_id’ 和 ‘private_key_file’ 参数,将在 2.0.0 版本中移除。FUSION_APP_ID 和 FUSION_HOST 环境变量已弃用,推荐使用 FUSION_ISSUER_ID 和 FUSION_HOST,将在 2.0.0 版本中移除。

  • fusion_tn - FUSION_APP_ID 和 FUSION_HOST 环境变量已弃用,推荐使用 FUSION_ISSUER_ID 和 FUSION_HOST,将在 2.0.0 版本中移除。

  • fusion_ts - ‘app_id’ 和 ‘key_file’ 参数已弃用,推荐使用 ‘issuer_id’ 和 ‘private_key_file’ 参数,将在 2.0.0 版本中移除。FUSION_APP_ID 和 FUSION_HOST 环境变量已弃用,推荐使用 FUSION_ISSUER_ID 和 FUSION_HOST,将在 2.0.0 版本中移除。

  • fusion_volume - ‘app_id’ 和 ‘key_file’ 参数已弃用,推荐使用 ‘issuer_id’ 和 ‘private_key_file’ 参数,将在 2.0.0 版本中移除。FUSION_APP_ID 和 FUSION_HOST 环境变量已弃用,推荐使用 FUSION_ISSUER_ID 和 FUSION_HOST,将在 2.0.0 版本中移除。

t_systems_mms.icinga_director

  • 所有模块和插件都已移动到新的命名空间 telekom_mms。请相应地更新您的代码。