Ansible Playbook干跑测试用-C参数模拟执行不修改主机状态,可发现语法、路径、权限等问题,但shell/command模块可能仍执行命令,需结合语法检查、任务列表等多手段验证。

Ansible Playbook 干跑测试(Dry Run)是上线前验证逻辑安全性的关键步骤,它能模拟执行全过程,不真正修改目标主机状态,帮你提前发现语法错误、路径错位、权限缺失或模块行为偏差等问题。
用 -C 参数执行干跑
最直接的方式是在运行命令时加上 -C(或 --check)参数:
-
ansible-playbook -C site.yml—— 默认对清单中所有主机执行检查 -
ansible-playbook -C -i ~/my-inventory site.yml—— 指定自定义 inventory 路径 -
ansible-playbook -C --limit web01 site.yml—— 限制只检查某一台主机
输出中会显示每个任务的“changed”状态为 0,同时标注哪些操作本应发生(如 “changed: [web01]” 表示该任务在真实运行时会变更系统),但不会写文件、装包或重启服务。
Linux 安全审计工具,检查 SSH 配置、开放/监听端口、防火墙规则(ufw/iptables/nftables)、失败登录尝试、sudoers 权限...
干跑的局限性与注意事项
不是所有操作都能被完全模拟。以下情况需特别留意:
-
shell和command模块在干跑时仍可能实际执行命令(尤其含重定向、管道时),建议配合check_mode: no显式禁用检查模式 - 依赖远程状态判断的任务(如
stat后做条件分支),干跑可能跳过部分逻辑分支 - 某些模块(如
docker_container)在干跑下仅校验参数,不检查镜像是否存在或端口是否被占用
搭配其他验证手段更可靠
干跑只是第一道防线,建议组合使用:
-
语法检查:
ansible-playbook --syntax-check site.yml—— 确保 YAML 格式合法、缩进正确、模块名拼写无误 -
列出任务和主机:
ansible-playbook --list-hosts site.yml和ansible-playbook --list-tasks site.yml—— 确认作用范围和执行顺序符合预期 -
开启详细输出:
ansible-playbook -C -v site.yml或加-vvv查看模块调用细节,便于定位字段缺失或变量未解析问题

















