Ansible-core 2.13 移植指南
本节讨论 ansible-core
2.12 和 ansible-core
2.13 之间的行为变化。
旨在帮助您更新 playbook、插件和 Ansible 基础架构的其他部分,以便它们能够与该版本的 Ansible 兼容。
我们建议您阅读此页面以及 ansible-core 2.13 的变更日志,以了解您可能需要进行哪些更新。
本文档是移植集合的一部分。完整的移植指南列表可以在 移植指南 中找到。
Playbook
模板 - 您不能再在 Jinja 模板之外执行算术和连接操作。以下语句需要重写才能生成
[1, 2]
- name: Prior to 2.13 debug: msg: '[1] + {{ [2] }}' - name: 2.13 and forward debug: msg: '{{ [1] + [2] }}'
由
AnsibleUndefined
对象表示的未定义变量的__repr__
方法的返回值已更改。{{ '%r'|format(undefined_variable) }}
在 2.13 中返回AnsibleUndefined(hint=None, obj=missing, name='undefined_variable')
,而不是 2.12 及更早版本中的AnsibleUndefined
。在全局范围内不再公开
finalize
方法以供模板使用。要将None
转换为空字符串,可以使用以下表达式:{{ value if value is not none }}
。
命令行
没有明显的更改
已弃用
没有明显的更改
模块
要使用 ansible-core 2.13 执行模块,您必须使用 Python 2 版本 2.7 或 Python 3 版本 3.5 或更高版本。任何使用
ansible.module_utils.basic
的代码在较低的 Python 版本中将无法工作。
已移除的模块
以下模块不再存在
没有明显的更改
弃用通知
没有明显的更改
值得注意的模块更改
没有明显的更改
重大更改
ansible.module_utils.urls.fetch_url
现在将捕获的HTTPError
异常作为r
返回。HTTPError
是一种类似响应的对象,可以为模块作者提供更多信息。模块应该依赖于info['status'] >= 400
来确定是否存在故障,而不是使用r is None
或在尝试r.read()
时捕获AttributeError
。
插件
没有明显的更改
移植自定义脚本
没有明显的更改
网络
没有明显的更改