级别与用途的对应
排障时最常犯的错是直接开最高级别、对全量目标跑一遍:输出淹没关键信息,日志里还带上不该留下的内容。冗长级别应当按问题类型选择——只关心成败与跳过用默认级别;要看实际执行了什么命令用详细级别;要确认变量取值、条件判定与模板渲染结果才用调试级别。定位结束后立刻回到默认级别,避免调试输出进入长期存储。
基本信息
| 常见分级 | 默认摘要、详细、调试、连接级追踪 |
|---|---|
| 使用时机 | 复现问题时临时提高,定位完成后回落 |
| 主要代价 | 日志量激增、性能开销、敏感信息外泄 |
| 范围控制 | 按单主机或单个任务限定,避免全量开启 |
| 留存策略 | 调试级输出默认不进长期日志与归档 |
典型使用场景
- 变量未生效:打印变量来源与最终取值,确认是否被覆盖
- 连接与认证失败:提高级别观察握手与认证阶段的具体报错
- 命令回显异常:查看实际下发的命令行,而不是剧本里的写法
- 模板渲染差异:对比渲染结果与预期,定位模板与变量问题
- 外部接口调试:观察请求构造与响应码,判断是参数还是对端问题
级别、可回答的问题与代价
| 级别 | 能回答什么 | 代价 |
|---|---|---|
| 默认 | 任务成败、哪些被跳过、总体耗时 | 看不到变量取值与详细回显 |
| 详细 | 每个任务实际命令与返回内容 | 日志成倍增长,可能含少量敏感值 |
| 调试 | 变量取值、条件判定、模板渲染结果 | 可能打印令牌、密钥与完整请求 |
| 连接级追踪 | 连接、认证与文件传输细节 | 输出量最大,含主机内部路径信息 |
分级使用的写法
分级使用的写法
# 先用默认级别看整体结果,确认是全局失败还是个别主机
ansible-playbook site.yml
# 需要看实际命令时提升一级,并限定到单台失败主机
ansible-playbook site.yml --limit web-03 -vv
# 变量与模板问题时才提到调试级别,范围仍限定在单机单任务
ansible-playbook site.yml --limit web-03 --start-at-task 'render config' -vvv
# 调试输出写到临时文件,定位完成后清理,不进长期归档
ansible-playbook site.yml --limit web-03 -vvv > /tmp/dbg-web03.log 2>&1提高级别要同时缩小范围。对全部目标开调试级别会得到无法阅读的输出,还会在被检端与日志平台同时制造大量无用数据。
高冗长级别经常把凭据、令牌、完整 URL 与环境变量原样打印。启用前确认脱敏开关与日志归集范围,启用后及时清理临时文件,避免调试日志变成长期泄露面。