如何验证Ansible playbook已成功执行文件删除操作
验证Ansible文件删除操作生效的Playbook编写方法
你可以通过stat模块获取目标文件状态,配合assert断言模块实现自动化校验,完整可直接使用的playbook如下:
--- - hosts: localhost become: true tasks: - name: 检查目标文件状态 stat: path: /etc/logrotate.d/logrotate_file register: file_check_result - name: 验证文件已成功删除 assert: that: - not file_check_result.stat.exists fail_msg: "验证失败:/etc/logrotate.d/logrotate_file 文件仍然存在" success_msg: "验证通过:/etc/logrotate.d/logrotate_file 已成功删除"
代码逻辑说明
- 使用
stat模块读取目标路径的状态信息,返回结果中的stat.exists字段为布尔值,true代表文件存在,false代表文件不存在 - 通过
register关键字把stat模块的返回结果存入自定义变量file_check_result,供后续校验步骤调用 assert模块会判断预设的条件是否成立,条件不满足时会直接终止执行并抛出错误提示,条件成立则输出校验成功的信息,完全适配自动化流水线的验证场景
提示:如果你的删除操作是针对其他远程主机执行的,只需要把验证playbook里的
hosts: localhost改成和删除操作一致的目标主机/主机组即可,不需要修改其他逻辑。
轻量验证方案(仅打印结果不强制校验)
如果你不需要校验失败就终止执行,只是想查看文件的实际状态,可以用简化版本:
--- - hosts: localhost become: true tasks: - name: 检查目标文件状态 stat: path: /etc/logrotate.d/logrotate_file register: file_check_result - name: 打印文件存在状态 debug: msg: "目标文件当前状态:{{ '存在' if file_check_result.stat.exists else '已删除' }}"
内容的提问来源于stack exchange,提问作者ebro
相关产品推荐
相关产品推荐

