Ansible开发与调试:assert模块与角色应用全解析
1. assert模块的使用
assert模块用于在指定条件不满足时使任务失败。例如,若要在没有 enp0s3 接口时使剧本失败,可以这样写:
- name: Assert that the enp0s3 ethernet interface exists
assert:
that: ansible_enp0s3 is defined
在调试剧本时,插入断言有助于在假设条件被违反时立即触发失败。需要注意的是, assert 语句中的代码是Jinja2,而非Python。比如,若要断言列表的长度,不能使用Python的 len 函数:
# Invalid Jinja2, this won't work!
assert:
that: "len(ports) == 2"
而应使用Jinja2的 length 过滤器:
assert:
that: "ports|length == 2"
若要检查主机文件系统上文件的状态,可以先调用 stat 模块,再根据其返回值进行断言:
- nam
超级会员免费看
订阅专栏 解锁全文
196

被折叠的 条评论
为什么被折叠?



