Ansible 2.9 移植指南
本节讨论 Ansible 2.8 和 Ansible 2.9 之间的行为变化。
旨在帮助您更新您的剧本、插件以及 Ansible 基础架构的其他部分,以便它们能够与 Ansible 的此版本一起使用。
我们建议您阅读此页面以及 Ansible 2.9 的变更日志,以了解您可能需要进行哪些更新。
本文档是移植集合的一部分。完整的移植指南列表可在 移植指南 中找到。
剧本 (Playbook)
清单 (Inventory)
hash_behaviour
现在影响清单源。如果您将其设置为merge
,则从清单获得的数据可能会发生变化,您将必须相应地更新剧本。如果您使用默认设置 (overwrite
),您将看不到任何变化。清单以前忽略此设置。
循环 (Loops)
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 模块的工作方式。
模块 (Modules)
win_get_url
和win_uri
模块现在使用ansible-httpget
的默认User-Agent
发送请求。这可以通过使用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 事实 (facts)。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 中移除。请相应更新您的 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 指南和 平台文档。