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
将导致在安装自己的依赖项时进行缓存更新。Ansible 2.9.12 版将基于文件的任务的默认模式更改为
0o600 & ~umask
,前提是用户未在基于文件的任务上指定mode
参数。这是针对 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 事实。Ansible 事实与特定主机相关。例如,网络接口的配置、Unix 服务器上的操作系统以及 Windows 计算机上安装的软件包列表都是 Ansible 事实。已重命名的模块返回的值不是特定于主机的。例如,云提供商的帐户信息或区域数据。重命名这些模块应该可以更清楚地了解每组模块提供的返回值类型。
编写模块
模块和 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 中被移除。请相应地更新您的剧本。
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 中删除。请相应地更新您的剧本。
vmware_cluster
DRS、HA 和 VSAN 配置;使用 vmware_cluster_drs、vmware_cluster_ha 和 vmware_cluster_vsan 代替。
以下功能将在 Ansible 2.13 中删除。请相应地更新您的剧本。
openssl_certificate
已弃用assertonly
提供程序。请参阅 openssl_certificate 文档中的示例,了解如何使用 openssl_certificate_info、openssl_csr_info、openssl_privatekey_info 和 assert 模块替换该提供程序。
对于以下模块,基于 PyOpenSSL 的后端 pyopenssl
已被弃用,并将从 Ansible 2.13 中删除
重命名模块
以下模块已重命名。旧名称已弃用,并将从 Ansible 2.13 中删除。请相应地更新您的剧本。
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
的环境变量。此更改将这些参数标记为可选参数。已弃用的选项
force
已从win_firewall_rule
中删除。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 中删除。您应该扫描上面的弃用模块列表,并使用新的网络资源模块替换您剧本中的这些模块。有关详细信息,请参阅 Ansible 2.9 中的网络功能。
针对网络设备改进了 gather_facts
支持
在 Ansible 2.9 中,gather_facts
关键字现在支持以标准化的键值对形式收集网络设备事实。您可以将这些网络事实馈送到后续任务以管理网络设备。您还可以使用网络 *_facts
模块(例如 eos_facts)的新 gather_network_resources
参数来仅返回设备配置的子集。请参阅 从网络设备收集事实 以了解示例。
在 2.9 中删除了顶级连接参数
顶级连接参数(如 username
、host
和 password
)在 2.9 版本中已删除。
旧版本 在 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
将您的剧本更改为使用标准的 Ansible 连接属性的 network_cli
和 netconf
连接类型,并在清单中按组设置这些属性。在更新您的剧本和清单文件时,您可以轻松地将更改应用于 become
以进行权限提升(在支持此功能的平台上)。有关详细信息,请参阅 使用网络模块的 become 指南和 平台文档。