Ansible 2.6 移植指南

本节讨论 Ansible 2.5 和 Ansible 2.6 之间的行为变化。

旨在帮助更新您的剧本、插件和 Ansible 基础架构的其他部分,以便它们能够与此版本的 Ansible 一起使用。

建议您阅读此页面以及 Ansible 2.6 的变更日志,以了解您可能需要进行哪些更新。

本文档是移植集合的一部分。移植指南的完整列表可以在 移植指南 中找到。

剧本

  • 已弃用的任务选项 always_run 已被移除,请改用 check_mode: no

已弃用

  • nxos_igmp_interface 模块 中,oif_prefixoif_source 属性已弃用。请改用带有前缀和源到值的字典的 ois_ps 参数。

模块

此处详细介绍了常用模块中的重大更改

已移除的模块

以下模块不再存在

弃用通知

以下模块将在 Ansible 2.10 中移除。请相应更新您的剧本。

  • k8s_raw 请改用 k8s

  • openshift_raw 请改用 k8s

  • openshift_scale 请改用 k8s_scale

值得注意的模块更改

  • win_chocolateyupgrade 模块选项已被移除;请改用 state: latest

  • win_featurereboot 模块选项已被移除;请改用 win_reboot 操作插件。

  • win_iis_webapppool 模块不再接受 attributes 模块选项的字符串;请改用自由格式字典值。

  • win_packagename 模块选项已被移除;此选项在任何地方都不使用,应从您的剧本中删除。

  • win_regedit 模块不再自动将蜂窝路径 HCCC 纠正为 HKCC;请使用 HKCC,因为这是正确的蜂窝路径。

  • file_module 现在在使用空字符串作为正则表达式时会发出弃用警告。由于空正则表达式匹配文件中的每一行,因此它将替换文件中的最后一行而不是插入。如果这是所需的行为,请使用 '^',它将匹配每一行并且不会触发警告。例如

    $ ansible localhost -m file -a 'path=/var/lib src=/tmp/ state=directory'
    

    将创建一个名为 /tmp/lib 的目录。而不是上述方法,只需像这样拼写出整个目标路径

    $ ansible localhost -m file -a 'path=/tmp/lib state=directory'
    
  • k8s_rawopenshift_raw 模块已成为新 k8s 模块的别名。

  • k8s 模块支持所有 Kubernetes 资源,包括来自自定义资源定义和聚合 API 服务器的资源。这包括所有 OpenShift 资源。

  • k8s 模块将不接受子键已使用 snake_case 命名法的资源。这是一种在 k8s_rawopenshift_raw 模块中建议使用的解决方法。

  • k8s 模块可能无法接受 api_version 已更改为匹配 Kubernetes Python 客户端中的缩短版本的资源。您现在应该为资源指定正确的完整 Kubernetes api_version

  • k8s 模块现在可以处理多文档 YAML 文件(如果它们与 src 参数一起传递)。它将每个文档作为单独的资源进行处理。与 resource_definition 参数一起内联提供的资源必须仍然是单个文档。

  • k8s 模块不会自动将 Project 创建请求更改为 ProjectRequest 创建请求,就像 openshift_raw 模块那样。您现在必须显式指定 ProjectRequest 种类。

  • k8s 模块不会自动从 Ansible 返回值(以及扩展的日志)中删除密钥。为了防止任务中的密钥值被记录,请在任务块上指定 no_log 参数。

  • k8s_scale 模块现在支持可扩展的 OpenShift 对象,例如 DeploymentConfig

  • lineinfile 模块已更改为在使用空字符串作为正则表达式时显示警告。由于空正则表达式匹配文件中的每一行,因此它将替换文件中的最后一行而不是插入。如果这是所需的行为,请使用 '^',它将匹配每一行并且不会触发警告。

  • Openstack 模块不再使用 shade 库。而是使用 openstacksdk。由于 openstacksdk 应该已经作为 shade 的依赖项存在,因此不需要额外的操作。

插件

弃用通知

以下模块将在 Ansible 2.10 中移除。请相应更新您的剧本。

  • openshift 请改用 k8s

值得注意的插件更改

  • k8s 查询插件现在支持所有 Kubernetes 资源,包括来自自定义资源定义和聚合 API 服务器的资源。这包括所有 OpenShift 资源。

  • k8s 查询插件可能无法接受 api_version 已更改为匹配 Kubernetes Python 客户端中缩短版本的资源。您现在应该为资源指定正确的完整 Kubernetes api_version

  • k8s 查询插件将不再从 Ansible 返回值(以及扩展日志)中删除密钥。为了防止任务中的密钥值被记录,请在任务块上指定 no_log 参数。

移植自定义脚本

没有显著更改。

网络

没有显著更改。

动态清单脚本

  • contrib/inventory/openstack.py 已重命名为 contrib/inventory/openstack_inventory.py。如果您已将 openstack.py 用作 OpenStack 动态清单文件的名称,请将其更改为 openstack_inventory.py。否则,文件名将与来自 openstacksdk 的导入冲突。