读预览的固定顺序
预览(diff、执行计划、变更清单)的作用是让人在执行前用几分钟躲开一次事故。有效读法是有顺序的:先扫破坏性动作,任何删除、替换、重建都单独提出来确认数据与依赖;再看影响范围,计划改 1 台却列出 50 台就是危险信号;然后逐项核对内容差异是否符合预期;最后处理无法识别的差异——看不懂的差异不能按通过处理。顺序颠倒容易在细节里耗光注意力,把高风险动作漏过去。
基本信息
| 预览形式 | 文件差异、资源执行计划、命令与变更清单 |
|---|---|
| 阅读顺序 | 破坏性动作、影响范围、内容差异、无法识别项 |
| 关键标记 | 新增、修改、删除、替换重建、无变化 |
| 判读要求 | 每处差异都能被预期解释,解释不了就停下 |
| 留存要求 | 预览清单与实际执行记录绑定同一标识 |
典型使用场景
- 配置文件下发评审:确认字段改动符合变更单描述,无额外覆盖
- 基础设施计划审核:识别意外重建,避免实例与数据被替换
- 批量文件分发前核对:确认分发的目标与文件数量在计划范围内
- 权限与策略改动:确认只放开必要项,没有顺带放宽其他规则
- 模板渲染验证:确认渲染结果无编码或占位符残留问题
标记含义与处置
| 标记 | 含义 | 风险与动作 |
|---|---|---|
| 新增 | 创建新对象或新增配置项 | 风险较低,确认命名规范与归属 |
| 修改 | 更新现有内容 | 逐项对照变更单,确认无多余改动 |
| 删除 | 移除对象或释放资源 | 高风险,先确认无数据与依赖关系 |
| 替换或重建 | 先销毁再创建 | 高风险,可能中断服务并丢失数据 |
| 无变化 | 幂等生效,无需动作 | 确认确实无变化,而非未被执行 |
| 识别失败 | 无法计算差异 | 停下人工确认,不按通过处理 |
预览与执行的基本用法
预览与执行的基本用法
# 文件级差异:逐行看清将要改什么,注意是否有意外覆盖
ansible-playbook site.yml --check --diff
# 基础设施计划:先保存计划文件,执行时用同一份计划,避免预览与实际不一致
terraform plan -out=tfplan # 计划与落地必须同源
tfplan_show=$(terraform show -no-color tfplan)
# 计划落地:只落地已评审过的那份计划
terraform apply tfplan
# 关键检查:在计划输出里搜索破坏性动作,逐条确认后方可执行数量级异常是重要信号:计划只改 1 台却出现几十条变更,通常说明目标选择或变量取值有问题。这类偏差比单个字段改错更容易演变成批量事故。
删除与替换重建类动作必须先确认数据与依赖:涉及存储、数据库、证书与网络策略的销毁操作通常不可逆,评审时要单独列出并留下确认记录。