Ansible 2.6 移植指南
本节讨论 Ansible 2.5 和 Ansible 2.6 之间的行为变化。
旨在帮助更新您的剧本、插件和 Ansible 基础架构的其他部分,以便它们能够与 Ansible 的此版本一起使用。
建议您阅读此页面以及 Ansible 2.6 的变更日志,以了解您可能需要进行哪些更新。
本文档是移植系列的一部分。完整的移植指南列表可在 移植指南 中找到。
剧本
已弃用的任务选项
always_run
已被移除,请改用check_mode: no
。
已弃用
在 nxos_igmp_interface 模块 中,
oif_prefix
和oif_source
属性已弃用。请改用带有前缀和源到值的字典的ois_ps
参数。
模块
此处详细介绍了常用模块中的主要更改
已移除的模块
以下模块已不存在
弃用通知
以下模块将在 Ansible 2.10 中移除。请相应地更新您的剧本。
值得注意的模块更改
win_chocolatey
的upgrade
模块选项已被移除;请改用state: latest
。win_feature
的reboot
模块选项已被移除;请改用win_reboot
操作插件。win_iis_webapppool
模块不再接受attributes
模块选项的字符串;请改用自由格式的字典值。win_package
的name
模块选项已被移除;此选项在任何地方都不会使用,应将其从您的剧本中删除。win_regedit
模块不再自动将蜂窝路径HCCC
校正为HKCC
;请使用HKCC
,因为这是正确的蜂窝路径。file_module 现在在使用除
hard
或link
之外的状态指定src
时会发出弃用警告,因为它仅在这些状态下才有用。这可能会影响依赖于 src 和其他状态之间的错误交互将文件放置到子目录中的人员。例如$ 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_raw
和openshift_raw
模块已成为新k8s
模块的别名。k8s
模块支持所有 Kubernetes 资源,包括来自自定义资源定义和聚合 API 服务器的资源。这包括所有 OpenShift 资源。k8s
模块将不接受子键已使用 snake_case 命名法的资源。这是一种在k8s_raw
和openshift_raw
模块中建议使用的解决方法。k8s
模块可能不会接受api_version
已更改为匹配 Kubernetes Python 客户端中的缩写版本的资源。您现在应该为资源指定正确的完整 Kubernetesapi_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 中移除。请相应地更新您的剧本。
使用
k8s
代替openshift
。
值得注意的插件更改
k8s
查找插件现在支持所有 Kubernetes 资源,包括来自自定义资源定义和聚合 API 服务器的资源。这包括所有 OpenShift 资源。k8s
查找插件可能无法接受资源,其中api_version
已更改为匹配 Kubernetes Python 客户端中的简短版本。您现在应该为资源指定正确的完整 Kubernetesapi_version
。k8s
查找插件将不再从 Ansible 返回值(以及扩展日志)中删除密钥。为了防止任务中的密钥值被记录,请在任务块上指定no_log
参数。
移植自定义脚本
没有明显的更改。
网络
没有明显的更改。
动态清单脚本
contrib/inventory/openstack.py
已重命名为contrib/inventory/openstack_inventory.py
。如果您已将openstack.py
用作 OpenStack 动态清单文件的名称,请将其更改为openstack_inventory.py
。否则,文件名将与来自openstacksdk
的导入冲突。