Ansible 2.9 移植指南
本节讨论 Ansible 2.8 和 Ansible 2.9 之间的行为变化。
旨在帮助更新您的剧本、插件和其他 Ansible 基础设施部分,以便它们可以与此版本的 Ansible 一起使用。
我们建议您阅读此页面以及 Ansible 2.9 的变更日志,以了解您可能需要进行的更新。
本文档是关于移植的集合的一部分。完整的移植指南列表可以在 移植指南 中找到。
剧本
清单
hash_behaviour
现在会影响清单源。 如果您将其设置为merge
,那么您从清单中获取的数据可能会发生变化,您必须相应地更新剧本。 如果您使用的是默认设置 (overwrite
),您将看不到任何变化。 清单忽略了此设置。
循环
Ansible 2.9 更健壮地处理“不安全”数据,确保标记为“不安全”的数据不会被模板化。 在以前的版本中,Ansible 递归地将直接使用 lookup()
返回的所有数据标记为“不安全”,但只有在使用 with_X
样式循环间接查找返回的结构化数据中,返回的元素是字符串时才标记为“不安全”。 Ansible 2.9 对这两种方法保持一致的处理方式。
因此,如果您使用 with_dict
返回具有可模板化值的键,则您的模板在 Ansible 2.9 中可能不再按预期工作。
要允许旧的行为,请从使用 with_X
切换到使用带有过滤器的 loop
,如 从 with_X 迁移到 loop 中所述。
命令行
Galaxy 令牌文件的位置已从
~/.ansible_galaxy
更改为~/.ansible/galaxy_token
。 您可以使用 GALAXY_TOKEN_PATH 配置来配置路径和文件名。
已弃用
没有值得注意的变化
集合加载器变更
在 Ansible 2.9 版本中,从集合导入 PowerShell 或 C# 模块实用程序的方式发生了变化。 在 Ansible 2.8 中,使用以下语法导入实用程序
#AnsibleRequires -CSharpUtil AnsibleCollections.namespace_name.collection_name.util_filename
#AnsibleRequires -PowerShell AnsibleCollections.namespace_name.collection_name.util_filename
在 Ansible 2.9 中,这更改为
#AnsibleRequires -CSharpUtil ansible_collections.namespace_name.collection_name.plugins.module_utils.util_filename
#AnsibleRequires -PowerShell ansible_collections.namespace_name.collection_name.plugins.module_utils.util_filename
集合导入名称的更改还要求使用较新的名称格式更新任何 C# 实用程序命名空间。 这更冗长,但旨在确保我们避免跨单独的插件类型的插件名称冲突,并标准化 PowerShell 中导入的工作方式以及 Python 模块的工作方式。
模块
win_get_url
和win_uri
模块现在使用默认的User-Agent
ansible-httpget
发送请求。 可以使用http_agent
键进行更改。apt
模块现在在安装其自己的依赖项时会遵守update_cache=false
并跳过缓存更新。 显式设置update_cache=true
或省略参数update_cache
将导致在安装其自己的依赖项时进行缓存更新。当用户没有在基于文件的任务上指定
mode
参数时,Ansible 的 2.9.12 版本将基于文件的任务的默认模式更改为0o600 & ~umask
。 这是对我们重新考虑的 CVE 报告的回应。 因此,模式更改已在 2.9.13 中还原,并且模式现在将默认为0o666 & ~umask
,就像在以前版本的 Ansible 中一样。如果您在使用 2.9.12 时更改了任何任务以指定限制较少的权限,那么这些更改在 2.9.13 中是不必要的(但不会造成任何危害)。
要避免 CVE-2020-1736 中提出的问题,请在所有接受它的基于文件的任务中指定
mode
参数。dnf
和yum
- 从 2.9.13 版本开始,dnf
模块(以及使用dnf
时的yum
操作)现在可以正确验证软件包的 GPG 签名 (CVE-2020-14365)。 如果您看到类似Failed to validate GPG signature for [package name]
的错误,请确保您已导入正在使用的 DNF 存储库和/或软件包的正确 GPG 密钥。 一种方法是使用rpm_key
模块。 虽然我们不鼓励这样做,但在某些情况下,可能需要禁用 GPG 检查。 这可以通过在dnf
或yum
任务中显式添加disable_gpg_check: yes
来完成。
从 _facts
重命名为 _info
Ansible 2.9 将许多模块从 <something>_facts
重命名为 <something>_info
,因为这些模块不返回 Ansible facts。Ansible facts 与特定的主机相关。例如,网络接口的配置、Unix 服务器上的操作系统以及 Windows 计算机上安装的软件包列表都是 Ansible facts。重命名的模块返回的值并非主机所独有。例如,云提供商的帐户信息或区域数据。重命名这些模块应该可以更清晰地了解每组模块提供的返回值类型。
编写模块
模块和 module_utils 文件现在可以使用相对导入来包含其他 module_utils 文件。这对于缩短长的导入行非常有用,尤其是在集合中。
在集合中使用相对导入的示例
# File: ansible_collections/my_namespace/my_collection/plugins/modules/my_module.py # Old way to use an absolute import to import module_utils from the collection: from ansible_collections.my_namespace.my_collection.plugins.module_utils import my_util # New way using a relative import: from ..module_utils import my_util
随 Ansible 发布的模块和 module_utils 也可以使用相对导入,但节省的幅度较小
# File: ansible/modules/system/ping.py # Old way to use an absolute import to import module_utils from core: from ansible.module_utils.basic import AnsibleModule # New way using a relative import: from ...module_utils.basic import AnsibleModule
每个单点(
.
)代表树的一个级别(相当于文件系统相对链接中的../
)。另请参阅
Python 相对导入文档 更详细地介绍了如何编写相对导入。
已删除的模块
以下模块不再存在
Apstra 的
aos_*
模块。请参阅 https://github.com/apstra 上的新模块。ec2_ami_find 请改用 ec2_ami_facts。
kubernetes 请改用 k8s。
nxos_ip_interface 请改用 nxos_l3_interface。
nxos_portchannel 请改用 nxos_linkagg。
nxos_switchport 请改用 nxos_l2_interface。
oc 请改用 k8s。
panos_nat_policy 请改用 panos_nat_rule。
panos_security_policy 请改用 panos_security_rule。
vsphere_guest 请改用 vmware_guest。
弃用通知
以下模块将在 Ansible 2.13 中删除。请相应地更新您的 playbook。
cs_instance_facts 请改用 cs_instance_info。
cs_zone_facts 请改用 cs_zone_info。
digital_ocean_sshkey_facts 请改用 digital_ocean_sshkey_info。
eos_interface 请改用 eos_interfaces。
eos_l2_interface 请改用 eos_l2_interfaces。
eos_l3_interface 请改用 eos_l3_interfaces。
eos_linkagg 请改用 eos_lag_interfaces。
eos_lldp_interface 请改用 eos_lldp_interfaces。
eos_vlan 请改用 eos_vlans。
ios_interface 请改用 ios_interfaces。
ios_l2_interface 请改用 ios_l2_interfaces。
ios_l3_interface 请改用 ios_l3_interfaces。
ios_vlan 请改用 ios_vlans。
iosxr_interface 请改用 iosxr_interfaces。
junos_interface 请改用 junos_interfaces。
junos_l2_interface 请改用 junos_l2_interfaces。
junos_l3_interface 请改用 junos_l3_interfaces。
junos_linkagg 请改用 junos_lag_interfaces。
junos_lldp 请改用 junos_lldp_global。
junos_lldp_interface 请改用 junos_lldp_interfaces。
junos_vlan 请改用 junos_vlans。
lambda_facts 请改用 lambda_info。
na_ontap_gather_facts 请改用 na_ontap_info。
net_banner 请改用特定于平台的 [netos]_banner 模块。
net_interface 请改用新的特定于平台的 [netos]_interfaces 模块。
net_l2_interface 请改用新的特定于平台的 [netos]_l2_interfaces 模块。
net_l3_interface 请改用新的特定于平台的 [netos]_l3_interfaces 模块。
net_linkagg 请改用新的特定于平台的 [netos]_lag 模块。
net_lldp 请改用新的特定于平台的 [netos]_lldp_global 模块。
net_lldp_interface 请改用新的特定于平台的 [netos]_lldp_interfaces 模块。
net_logging 请改用特定于平台的 [netos]_logging 模块。
net_static_route 请改用特定于平台的 [netos]_static_route 模块。
net_system 请改用特定于平台的 [netos]_system 模块。
net_user 请改用特定于平台的 [netos]_user 模块。
net_vlan 请改用新的特定于平台的 [netos]_vlans 模块。
net_vrf 请改用特定于平台的 [netos]_vrf 模块。
nginx_status_facts 请改用 nginx_status_info。
nxos_interface 请改用 nxos_interfaces。
nxos_l2_interface 请改用 nxos_l2_interfaces。
nxos_l3_interface 请改用 nxos_l3_interfaces。
nxos_linkagg 请改用 nxos_lag_interfaces。
nxos_vlan 请改用 nxos_vlans。
online_server_facts 请改用 online_server_info。
online_user_facts 请改用 online_user_info。
purefa_facts 请改用 purefa_info。
purefb_facts 请改用 purefb_info。
scaleway_image_facts 请改用 scaleway_image_info。
scaleway_ip_facts 请改用 scaleway_ip_info。
scaleway_organization_facts 请改用 scaleway_organization_info。
scaleway_security_group_facts 请改用 scaleway_security_group_info。
scaleway_server_facts 请改用 scaleway_server_info。
scaleway_snapshot_facts 请改用 scaleway_snapshot_info。
scaleway_volume_facts 请改用 scaleway_volume_info。
vcenter_extension_facts 请改用 vcenter_extension_info。
vmware_about_facts 请改用 vmware_about_info。
vmware_category_facts 请使用 vmware_category_info 代替。
vmware_drs_group_facts 请使用 vmware_drs_group_info 代替。
vmware_drs_rule_facts 请使用 vmware_drs_rule_info 代替。
vmware_dvs_portgroup_facts 请使用 vmware_dvs_portgroup_info 代替。
vmware_guest_boot_facts 请使用 vmware_guest_boot_info 代替。
vmware_guest_customization_facts 请使用 vmware_guest_customization_info 代替。
vmware_guest_disk_facts 请使用 vmware_guest_disk_info 代替。
vmware_host_capability_facts 请使用 vmware_host_capability_info 代替。
vmware_host_config_facts 请使用 vmware_host_config_info 代替。
vmware_host_dns_facts 请使用 vmware_host_dns_info 代替。
vmware_host_feature_facts 请使用 vmware_host_feature_info 代替。
vmware_host_firewall_facts 请使用 vmware_host_firewall_info 代替。
vmware_host_ntp_facts 请使用 vmware_host_ntp_info 代替。
vmware_host_package_facts 请使用 vmware_host_package_info 代替。
vmware_host_service_facts 请使用 vmware_host_service_info 代替。
vmware_host_ssl_facts 请使用 vmware_host_ssl_info 代替。
vmware_host_vmhba_facts 请使用 vmware_host_vmhba_info 代替。
vmware_host_vmnic_facts 请使用 vmware_host_vmnic_info 代替。
vmware_local_role_facts 请使用 vmware_local_role_info 代替。
vmware_local_user_facts 请使用 vmware_local_user_info 代替。
vmware_portgroup_facts 请使用 vmware_portgroup_info 代替。
vmware_resource_pool_facts 请使用 vmware_resource_pool_info 代替。
vmware_target_canonical_facts 请使用 vmware_target_canonical_info 代替。
vmware_vmkernel_facts 请使用 vmware_vmkernel_info 代替。
vmware_vswitch_facts 请使用 vmware_vswitch_info 代替。
vultr_account_facts 请使用 vultr_account_info 代替。
vultr_block_storage_facts 请使用 vultr_block_storage_info 代替。
vultr_dns_domain_facts 请使用 vultr_dns_domain_info 代替。
vultr_firewall_group_facts 请使用 vultr_firewall_group_info 代替。
vultr_network_facts 请使用 vultr_network_info 代替。
vultr_os_facts 请使用 vultr_os_info 代替。
vultr_plan_facts 请使用 vultr_plan_info 代替。
vultr_region_facts 请使用 vultr_region_info 代替。
vultr_server_facts 请使用 vultr_server_info 代替。
vultr_ssh_key_facts 请使用 vultr_ssh_key_info 代替。
vultr_startup_script_facts 请使用 vultr_startup_script_info 代替。
vultr_user_facts 请使用 vultr_user_info 代替。
vyos_interface 请使用 vyos_interfaces 代替。
vyos_l3_interface 请使用 vyos_l3_interfaces 代替。
vyos_linkagg 请使用 vyos_lag_interfaces 代替。
vyos_lldp 请使用 vyos_lldp_global 代替。
vyos_lldp_interface 请使用 vyos_lldp_interfaces 代替。
以下功能将在 Ansible 2.12 中移除。请相应地更新您的 playbook。
vmware_cluster
DRS、HA 和 VSAN 配置;请使用 vmware_cluster_drs、vmware_cluster_ha 和 vmware_cluster_vsan 代替。
以下功能将在 Ansible 2.13 中移除。请相应地更新您的 playbook。
openssl_certificate
弃用了assertonly
提供程序。请参阅 openssl_certificate 文档示例,了解如何使用 openssl_certificate_info、openssl_csr_info、openssl_privatekey_info 和 assert 模块替换提供程序。
对于以下模块,基于 PyOpenSSL 的后端 pyopenssl
已被弃用,将在 Ansible 2.13 中移除
重命名的模块
以下模块已重命名。旧名称已弃用,将在 Ansible 2.13 中移除。请相应地更新您的 playbook。
ali_instance_facts
模块已重命名为 ali_instance_info。aws_acm_facts
模块已重命名为 aws_acm_info。aws_az_facts
模块已重命名为 aws_az_info。aws_caller_facts
模块已重命名为 aws_caller_info。aws_kms_facts
模块已重命名为 aws_kms_info。aws_region_facts
模块已重命名为 aws_region_info。aws_s3_bucket_facts
模块已重命名为 aws_s3_bucket_info。使用新名称调用时,该模块不再返回ansible_facts
。要访问返回值,请注册一个变量。aws_sgw_facts
模块已重命名为 aws_sgw_info。aws_waf_facts
模块已重命名为 aws_waf_info。azure_rm_aks_facts
模块已重命名为 azure_rm_aks_info。azure_rm_aksversion_facts
模块已重命名为 azure_rm_aksversion_info。azure_rm_applicationsecuritygroup_facts
模块已重命名为 azure_rm_applicationsecuritygroup_info。azure_rm_appserviceplan_facts
模块已重命名为 azure_rm_appserviceplan_info。azure_rm_automationaccount_facts
模块已重命名为 azure_rm_automationaccount_info。azure_rm_autoscale_facts
模块已重命名为 azure_rm_autoscale_info。azure_rm_availabilityset_facts
模块已重命名为 azure_rm_availabilityset_info。azure_rm_cdnendpoint_facts
模块已重命名为 azure_rm_cdnendpoint_info。azure_rm_cdnprofile_facts
模块已重命名为 azure_rm_cdnprofile_info。azure_rm_containerinstance_facts
模块已重命名为 azure_rm_containerinstance_info。azure_rm_containerregistry_facts
模块已重命名为 azure_rm_containerregistry_info。azure_rm_cosmosdbaccount_facts
模块已重命名为 azure_rm_cosmosdbaccount_info。azure_rm_deployment_facts
模块已重命名为 azure_rm_deployment_info。azure_rm_resourcegroup_facts
模块已重命名为 azure_rm_resourcegroup_info。bigip_device_facts
模块已重命名为 bigip_device_info。bigiq_device_facts
模块已重命名为 bigiq_device_info。cloudformation_facts
模块已重命名为 cloudformation_info。使用新名称调用时,该模块不再返回ansible_facts
。要访问返回值,请注册一个变量。cloudfront_facts
模块已重命名为 cloudfront_info。使用新名称调用时,该模块不再返回ansible_facts
。要访问返回值,请注册一个变量。cloudwatchlogs_log_group_facts
模块已重命名为 cloudwatchlogs_log_group_info。digital_ocean_account_facts
模块已重命名为 digital_ocean_account_info。digital_ocean_certificate_facts
模块已重命名为 digital_ocean_certificate_info。digital_ocean_domain_facts
模块已重命名为 digital_ocean_domain_info。digital_ocean_firewall_facts
模块已重命名为 digital_ocean_firewall_info。digital_ocean_floating_ip_facts
模块已重命名为 digital_ocean_floating_ip_info。digital_ocean_image_facts
模块已重命名为 digital_ocean_image_info。digital_ocean_load_balancer_facts
模块已重命名为 digital_ocean_load_balancer_info。digital_ocean_region_facts
模块已重命名为 digital_ocean_region_info。digital_ocean_size_facts
模块已重命名为 digital_ocean_size_info。digital_ocean_snapshot_facts
模块已重命名为 digital_ocean_snapshot_info。digital_ocean_tag_facts
模块已重命名为 digital_ocean_tag_info。digital_ocean_volume_facts
模块已重命名为 digital_ocean_volume_info。ec2_ami_facts
模块已重命名为 ec2_ami_info。ec2_asg_facts
模块已重命名为 ec2_asg_info。ec2_customer_gateway_facts
模块已重命名为 ec2_customer_gateway_info。ec2_eip_facts
模块已重命名为 ec2_eip_info。ec2_elb_facts
模块已重命名为 ec2_elb_info。ec2_eni_facts
模块已重命名为 ec2_eni_info。ec2_group_facts
模块已重命名为 ec2_group_info。ec2_instance_facts
模块已重命名为 ec2_instance_info。ec2_lc_facts
模块已重命名为 ec2_lc_info。ec2_placement_group_facts
模块已重命名为 ec2_placement_group_info。ec2_snapshot_facts
模块已重命名为 ec2_snapshot_info。ec2_vol_facts
模块已重命名为 ec2_vol_info。ec2_vpc_dhcp_option_facts
模块已重命名为 ec2_vpc_dhcp_option_info。ec2_vpc_endpoint_facts
模块已重命名为 ec2_vpc_endpoint_info。ec2_vpc_igw_facts
模块已重命名为 ec2_vpc_igw_info。ec2_vpc_nacl_facts
模块已重命名为 ec2_vpc_nacl_info。ec2_vpc_nat_gateway_facts
模块已重命名为 ec2_vpc_nat_gateway_info。ec2_vpc_net_facts
模块已重命名为 ec2_vpc_net_info。ec2_vpc_peering_facts
模块已重命名为 ec2_vpc_peering_info。ec2_vpc_route_table_facts
模块已重命名为 ec2_vpc_route_table_info。ec2_vpc_subnet_facts
模块已重命名为 ec2_vpc_subnet_info。ec2_vpc_vgw_facts
模块已重命名为 ec2_vpc_vgw_info。ec2_vpc_vpn_facts
模块已重命名为 ec2_vpc_vpn_info。ecs_service_facts
模块已重命名为 ecs_service_info。当使用新名称调用时,该模块不再返回ansible_facts
。要访问返回值,请注册一个变量。ecs_taskdefinition_facts
模块已重命名为 ecs_taskdefinition_info。efs_facts
模块已重命名为 efs_info。当使用新名称调用时,该模块不再返回ansible_facts
。要访问返回值,请注册一个变量。elasticache_facts
模块已重命名为 elasticache_info。elb_application_lb_facts
模块已重命名为 elb_application_lb_info。elb_classic_lb_facts
模块已重命名为 elb_classic_lb_info。elb_target_facts
模块已重命名为 elb_target_info。elb_target_group_facts
模块已重命名为 elb_target_group_info。gcp_bigquery_dataset_facts
模块已重命名为 gcp_bigquery_dataset_info。gcp_bigquery_table_facts
模块已重命名为 gcp_bigquery_table_info。gcp_cloudbuild_trigger_facts
模块已重命名为 gcp_cloudbuild_trigger_info。gcp_compute_address_facts
模块已重命名为 gcp_compute_address_info。gcp_compute_backend_bucket_facts
模块已重命名为 gcp_compute_backend_bucket_info。gcp_compute_backend_service_facts
模块已重命名为 gcp_compute_backend_service_info。gcp_compute_disk_facts
模块已重命名为 gcp_compute_disk_info。gcp_compute_firewall_facts
模块已重命名为 gcp_compute_firewall_info。gcp_compute_forwarding_rule_facts
模块已重命名为 gcp_compute_forwarding_rule_info。gcp_compute_global_address_facts
模块已重命名为 gcp_compute_global_address_info。gcp_compute_global_forwarding_rule_facts
模块已重命名为 gcp_compute_global_forwarding_rule_info。gcp_compute_health_check_facts
模块已重命名为 gcp_compute_health_check_info。gcp_compute_http_health_check_facts
模块已重命名为 gcp_compute_http_health_check_info。gcp_compute_https_health_check_facts
模块已重命名为 gcp_compute_https_health_check_info。gcp_compute_image_facts
模块已重命名为 gcp_compute_image_info。gcp_compute_instance_facts
模块已重命名为 gcp_compute_instance_info。gcp_compute_instance_group_facts
模块已重命名为 gcp_compute_instance_group_info。gcp_compute_instance_group_manager_facts
模块已重命名为 gcp_compute_instance_group_manager_info。gcp_compute_instance_template_facts
模块已重命名为 gcp_compute_instance_template_info。gcp_compute_interconnect_attachment_facts
模块已重命名为 gcp_compute_interconnect_attachment_info。gcp_compute_network_facts
模块已重命名为 gcp_compute_network_info。gcp_compute_region_disk_facts
模块已重命名为 gcp_compute_region_disk_info。gcp_compute_route_facts
模块已重命名为 gcp_compute_route_info。gcp_compute_router_facts
模块已重命名为 gcp_compute_router_info。gcp_compute_ssl_certificate_facts
模块已重命名为 gcp_compute_ssl_certificate_info。gcp_compute_ssl_policy_facts
模块已重命名为 gcp_compute_ssl_policy_info。gcp_compute_subnetwork_facts
模块已重命名为 gcp_compute_subnetwork_info。gcp_compute_target_http_proxy_facts
模块已重命名为 gcp_compute_target_http_proxy_info。gcp_compute_target_https_proxy_facts
模块已重命名为 gcp_compute_target_https_proxy_info。gcp_compute_target_pool_facts
模块已重命名为 gcp_compute_target_pool_info。gcp_compute_target_ssl_proxy_facts
模块已重命名为 gcp_compute_target_ssl_proxy_info。gcp_compute_target_tcp_proxy_facts
模块已重命名为 gcp_compute_target_tcp_proxy_info。gcp_compute_target_vpn_gateway_facts
模块已重命名为 gcp_compute_target_vpn_gateway_info。gcp_compute_url_map_facts
模块已重命名为 gcp_compute_url_map_info。gcp_compute_vpn_tunnel_facts
模块已重命名为 gcp_compute_vpn_tunnel_info。gcp_container_cluster_facts
模块已重命名为 gcp_container_cluster_info。gcp_container_node_pool_facts
模块已重命名为 gcp_container_node_pool_info。gcp_dns_managed_zone_facts
模块已重命名为 gcp_dns_managed_zone_info。gcp_dns_resource_record_set_facts
模块已重命名为 gcp_dns_resource_record_set_info。gcp_iam_role_facts
模块已重命名为 gcp_iam_role_info。gcp_iam_service_account_facts
模块已重命名为 gcp_iam_service_account_info。gcp_pubsub_subscription_facts
模块已重命名为 gcp_pubsub_subscription_info。gcp_pubsub_topic_facts
模块已重命名为 gcp_pubsub_topic_info。gcp_redis_instance_facts
模块已重命名为 gcp_redis_instance_info。gcp_resourcemanager_project_facts
模块已重命名为 gcp_resourcemanager_project_info。gcp_sourcerepo_repository_facts
模块已重命名为 gcp_sourcerepo_repository_info。gcp_spanner_database_facts
模块已重命名为 gcp_spanner_database_info。gcp_spanner_instance_facts
模块已重命名为 gcp_spanner_instance_info。gcp_sql_database_facts
模块已重命名为 gcp_sql_database_info。gcp_sql_instance_facts
模块已重命名为 gcp_sql_instance_info。gcp_sql_user_facts
模块已重命名为 gcp_sql_user_info。gcp_tpu_node_facts
模块已重命名为 gcp_tpu_node_info。gcpubsub_facts
模块已重命名为 gcpubsub_info。github_webhook_facts
模块已重命名为 github_webhook_info。gluster_heal_facts
模块已重命名为 gluster_heal_info。使用新名称调用时,该模块不再返回ansible_facts
。要访问返回值,注册一个变量。hcloud_datacenter_facts
模块已重命名为 hcloud_datacenter_info。使用新名称调用时,该模块不再返回ansible_facts
。要访问返回值,注册一个变量。hcloud_floating_ip_facts
模块已重命名为 hcloud_floating_ip_info。使用新名称调用时,该模块不再返回ansible_facts
。要访问返回值,注册一个变量。hcloud_image_facts
模块已重命名为 hcloud_image_info。使用新名称调用时,该模块不再返回ansible_facts
。要访问返回值,注册一个变量。hcloud_location_facts
模块已重命名为 hcloud_location_info。使用新名称调用时,该模块不再返回ansible_facts
。要访问返回值,请注册一个变量。hcloud_server_facts
模块已重命名为 hcloud_server_info。使用新名称调用时,该模块不再返回ansible_facts
。要访问返回值,请注册一个变量。hcloud_server_type_facts
模块已重命名为 hcloud_server_type_info。使用新名称调用时,该模块不再返回ansible_facts
。要访问返回值,请注册一个变量。hcloud_ssh_key_facts
模块已重命名为 hcloud_ssh_key_info。使用新名称调用时,该模块不再返回ansible_facts
。要访问返回值,请注册一个变量。hcloud_volume_facts
模块已重命名为 hcloud_volume_info。使用新名称调用时,该模块不再返回ansible_facts
。要访问返回值,请注册一个变量。hpilo_facts
模块已重命名为 hpilo_info。使用新名称调用时,该模块不再返回ansible_facts
。要访问返回值,请注册一个变量。iam_mfa_device_facts
模块已重命名为 iam_mfa_device_info。iam_role_facts
模块已重命名为 iam_role_info。iam_server_certificate_facts
模块已重命名为 iam_server_certificate_info。idrac_redfish_facts
模块已重命名为 idrac_redfish_info。使用新名称调用时,该模块不再返回ansible_facts
。要访问返回值,请注册一个变量。intersight_facts
模块已重命名为 intersight_info。jenkins_job_facts
模块已重命名为 jenkins_job_info。k8s_facts
模块已重命名为 k8s_info。memset_memstore_facts
模块已重命名为 memset_memstore_info。memset_server_facts
模块已重命名为 memset_server_info。one_image_facts
模块已重命名为 one_image_info。onepassword_facts
模块已重命名为 onepassword_info。使用新名称调用时,该模块不再返回ansible_facts
。要访问返回值,请注册一个变量。oneview_datacenter_facts
模块已重命名为 oneview_datacenter_info。使用新名称调用时,该模块不再返回ansible_facts
。要访问返回值,请注册一个变量。oneview_enclosure_facts
模块已重命名为 oneview_enclosure_info。使用新名称调用时,该模块不再返回ansible_facts
。要访问返回值,请注册一个变量。oneview_ethernet_network_facts
模块已重命名为 oneview_ethernet_network_info。使用新名称调用时,该模块不再返回ansible_facts
。要访问返回值,请注册一个变量。oneview_fc_network_facts
模块已重命名为 oneview_fc_network_info。使用新名称调用时,该模块不再返回ansible_facts
。要访问返回值,请注册一个变量。oneview_fcoe_network_facts
模块已重命名为 oneview_fcoe_network_info。使用新名称调用时,该模块不再返回ansible_facts
。要访问返回值,请注册一个变量。oneview_logical_interconnect_group_facts
模块已重命名为 oneview_logical_interconnect_group_info。使用新名称调用时,该模块不再返回ansible_facts
。要访问返回值,请注册一个变量。oneview_network_set_facts
模块已重命名为 oneview_network_set_info。使用新名称调用时,该模块不再返回ansible_facts
。要访问返回值,请注册一个变量。oneview_san_manager_facts
模块已重命名为 oneview_san_manager_info。使用新名称调用时,该模块不再返回ansible_facts
。要访问返回值,请注册一个变量。os_flavor_facts
模块已重命名为 os_flavor_info。使用新名称调用时,该模块不再返回ansible_facts
。要访问返回值,请注册一个变量。os_image_facts
模块已重命名为 os_image_info。当使用新名称调用时,该模块不再返回ansible_facts
。要访问返回值,请注册一个变量。os_keystone_domain_facts
模块已重命名为 os_keystone_domain_info。当使用新名称调用时,该模块不再返回ansible_facts
。要访问返回值,请注册一个变量。os_networks_facts
模块已重命名为 os_networks_info。当使用新名称调用时,该模块不再返回ansible_facts
。要访问返回值,请注册一个变量。os_port_facts
模块已重命名为 os_port_info。当使用新名称调用时,该模块不再返回ansible_facts
。要访问返回值,请注册一个变量。os_project_facts
模块已重命名为 os_project_info。当使用新名称调用时,该模块不再返回ansible_facts
。要访问返回值,请注册一个变量。os_server_facts
模块已重命名为 os_server_info。当使用新名称调用时,该模块不再返回ansible_facts
。要访问返回值,请注册一个变量。os_subnets_facts
模块已重命名为 os_subnets_info。当使用新名称调用时,该模块不再返回ansible_facts
。要访问返回值,请注册一个变量。os_user_facts
模块已重命名为 os_user_info。当使用新名称调用时,该模块不再返回ansible_facts
。要访问返回值,请注册一个变量。ovirt_affinity_label_facts
模块已重命名为 ovirt_affinity_label_info。当使用新名称调用时,该模块不再返回ansible_facts
。要访问返回值,请注册一个变量。ovirt_api_facts
模块已重命名为 ovirt_api_info。当使用新名称调用时,该模块不再返回ansible_facts
。要访问返回值,请注册一个变量。ovirt_cluster_facts
模块已重命名为 ovirt_cluster_info。当使用新名称调用时,该模块不再返回ansible_facts
。要访问返回值,请注册一个变量。ovirt_datacenter_facts
模块已重命名为 ovirt_datacenter_info。当使用新名称调用时,该模块不再返回ansible_facts
。要访问返回值,请注册一个变量。ovirt_disk_facts
模块已重命名为 ovirt_disk_info。当使用新名称调用时,该模块不再返回ansible_facts
。要访问返回值,请注册一个变量。ovirt_event_facts
模块已重命名为 ovirt_event_info。当使用新名称调用时,该模块不再返回ansible_facts
。要访问返回值,请注册一个变量。ovirt_external_provider_facts
模块已重命名为 ovirt_external_provider_info。当使用新名称调用时,该模块不再返回ansible_facts
。要访问返回值,请注册一个变量。ovirt_group_facts
模块已重命名为 ovirt_group_info。当使用新名称调用时,该模块不再返回ansible_facts
。要访问返回值,请注册一个变量。ovirt_host_facts
模块已重命名为 ovirt_host_info。当使用新名称调用时,该模块不再返回ansible_facts
。要访问返回值,请注册一个变量。ovirt_host_storage_facts
模块已重命名为 ovirt_host_storage_info。当使用新名称调用时,该模块不再返回ansible_facts
。要访问返回值,请注册一个变量。ovirt_network_facts
模块已重命名为 ovirt_network_info。当使用新名称调用时,该模块不再返回ansible_facts
。要访问返回值,请注册一个变量。ovirt_nic_facts
模块已重命名为 ovirt_nic_info。当使用新名称调用时,该模块不再返回ansible_facts
。要访问返回值,请注册一个变量。ovirt_permission_facts
模块已重命名为 ovirt_permission_info。当使用新名称调用时,该模块不再返回ansible_facts
。要访问返回值,请注册一个变量。ovirt_quota_facts
模块已重命名为 ovirt_quota_info。当使用新名称调用时,该模块不再返回ansible_facts
。要访问返回值,请注册一个变量。ovirt_scheduling_policy_facts
模块已重命名为 ovirt_scheduling_policy_info。当使用新名称调用时,该模块不再返回ansible_facts
。要访问返回值,请注册一个变量。ovirt_snapshot_facts
模块已重命名为 ovirt_snapshot_info。使用新名称调用时,该模块不再返回ansible_facts
。要访问返回值,请注册一个变量。ovirt_storage_domain_facts
模块已重命名为 ovirt_storage_domain_info。使用新名称调用时,该模块不再返回ansible_facts
。要访问返回值,请注册一个变量。ovirt_storage_template_facts
模块已重命名为 ovirt_storage_template_info。使用新名称调用时,该模块不再返回ansible_facts
。要访问返回值,请注册一个变量。ovirt_storage_vm_facts
模块已重命名为 ovirt_storage_vm_info。使用新名称调用时,该模块不再返回ansible_facts
。要访问返回值,请注册一个变量。ovirt_tag_facts
模块已重命名为 ovirt_tag_info。使用新名称调用时,该模块不再返回ansible_facts
。要访问返回值,请注册一个变量。ovirt_template_facts
模块已重命名为 ovirt_template_info。使用新名称调用时,该模块不再返回ansible_facts
。要访问返回值,请注册一个变量。ovirt_user_facts
模块已重命名为 ovirt_user_info。使用新名称调用时,该模块不再返回ansible_facts
。要访问返回值,请注册一个变量。ovirt_vm_facts
模块已重命名为 ovirt_vm_info。使用新名称调用时,该模块不再返回ansible_facts
。要访问返回值,请注册一个变量。ovirt_vmpool_facts
模块已重命名为 ovirt_vmpool_info。使用新名称调用时,该模块不再返回ansible_facts
。要访问返回值,请注册一个变量。python_requirements_facts
模块已重命名为 python_requirements_info。rds_instance_facts
模块已重命名为 rds_instance_info。rds_snapshot_facts
模块已重命名为 rds_snapshot_info。redfish_facts
模块已重命名为 redfish_info。使用新名称调用时,该模块不再返回ansible_facts
。要访问返回值,请注册一个变量。redshift_facts
模块已重命名为 redshift_info。route53_facts
模块已重命名为 route53_info。smartos_image_facts
模块已重命名为 smartos_image_info。使用新名称调用时,该模块不再返回ansible_facts
。要访问返回值,请注册一个变量。vertica_facts
模块已重命名为 vertica_info。使用新名称调用时,该模块不再返回ansible_facts
。要访问返回值,请注册一个变量。vmware_cluster_facts
模块已重命名为 vmware_cluster_info。vmware_datastore_facts
模块已重命名为 vmware_datastore_info。vmware_guest_facts
模块已重命名为 vmware_guest_info。vmware_guest_snapshot_facts
模块已重命名为 vmware_guest_snapshot_info。vmware_tag_facts
模块已重命名为 vmware_tag_info。vmware_vm_facts
模块已重命名为 vmware_vm_info。xenserver_guest_facts
模块已重命名为 xenserver_guest_info。zabbix_group_facts
模块已重命名为 zabbix_group_info。zabbix_host_facts
模块已重命名为 zabbix_host_info。
值得注意的模块变更
vmware_cluster 已被重构,以便更易于维护/修复错误。请使用三个新的、专门的模块来配置集群。使用 vmware_cluster_drs 配置 DRS,使用 vmware_cluster_ha 配置 HA,使用 vmware_cluster_vsan 配置 vSAN。
vmware_dvswitch 接受
folder
参数,以便将 dvswitch 放置在用户定义的文件夹中。此选项使datacenter
成为一个可选参数。vmware_datastore_cluster 接受
folder
参数,以便将数据存储集群放置在用户定义的文件夹中。此选项使datacenter
成为一个可选参数。mysql_db 除了
db
参数外,还返回新的db_list
参数。此db_list
参数指的是数据库名称列表。db
参数将在 2.13 版本中被弃用。snow_record 和 snow_record_find 现在可以使用环境变量来设置
instance
、username
和password
参数。此更改将这些参数标记为可选。已弃用的
win_firewall_rule
中的force
选项已被删除。openssl_certificate 的
ownca
提供程序会创建授权密钥标识符,除非使用ownca_create_authority_key_identifier: no
显式禁用。这仅适用于cryptography
后端,如果cryptography
库可用,则默认选择该后端。openssl_certificate 的
ownca
和selfsigned
提供程序会创建主体密钥标识符,除非使用ownca_create_subject_key_identifier: never_create
或selfsigned_create_subject_key_identifier: never_create
显式禁用。如果 CSR 提供了主体密钥标识符,则采用该标识符;否则,将从公钥创建。这仅适用于cryptography
后端,如果cryptography
库可用,则默认选择该后端。openssh_keypair 现在对公钥和私钥应用相同的文件权限和所有权(两者都获得相同的
mode
、owner
、group
等)。如果需要更改一个密钥的权限/所有权,请在使用 file 创建密钥后对其进行修改。
插件
已删除的查找插件
redis_kv
请改用 redis。
移植自定义脚本
没有值得注意的变化
网络
网络资源模块
Ansible 2.9 引入了第一批网络资源模块。网络设备的配置部分可以被视为该设备提供的资源。网络资源模块有意将其范围限定为配置单个资源,您可以将它们组合起来作为构建块来配置复杂的网络服务。旧模块在 Ansible 2.9 中已弃用,将在 Ansible 2.13 中删除。您应该扫描上面已弃用的模块列表,并在您的 Playbook 中使用新的网络资源模块替换它们。有关详细信息,请参阅 Ansible 2.9 中即将推出的网络功能。
改进了对网络设备的 gather_facts
支持
在 Ansible 2.9 中,gather_facts
关键字现在支持以标准化的键/值对形式收集网络设备的事实。您可以将这些网络事实输入到进一步的任务中来管理网络设备。您还可以将新的 gather_network_resources
参数与网络 *_facts
模块(例如 eos_facts)一起使用,以仅返回设备配置的子集。有关示例,请参阅 从网络设备收集事实。
在 2.9 中删除了顶级连接参数
在 2.9 版本中,删除了诸如 username
、host
和 password
之类的顶级连接参数。
旧 在 Ansible < 2.4 中
- name: example of using top-level options for connection properties
ios_command:
commands: show version
host: "{{ inventory_hostname }}"
username: cisco
password: cisco
authorize: yes
auth_pass: cisco
请将您的 Playbook 更改为使用标准 Ansible 连接属性的 network_cli
和 netconf
连接类型,并在清单中按组设置这些属性。当您更新 Playbook 和清单文件时,可以轻松地更改为 become
以进行权限提升(在支持它的平台上)。有关更多信息,请参阅 将 become 与网络模块一起使用 指南和 平台文档。