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__
方法的返回值已更改。在 2.13 中,{{ '%r'|format(undefined_variable) }}
返回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
。
插件
无重大更改
移植自定义脚本
无重大更改
网络
无重大更改