适用场景
手工登录 50 台服务器改配置,出错概率极高且没有记录。自动化不是为了炫技,而是"一次编写、批量执行、结果可查"。
配置步骤(清单与分组管理)
# inventory.ini
[web]
10.0.10.11
10.0.10.12
[db]
10.0.10.21 ansible_user=ops
[all:vars]
ansible_python_interpreter=/usr/bin/python3
ansible_ssh_common_args='-o StrictHostKeyChecking=no'
关键参数与建议
- 先建清单(inventory)与分组,按角色组织主机
- 幂等性优先:脚本重复执行结果一致,避免"跑两次就坏"
- 敏感信息用 ansible-vault 加密,不要明文写在 playbook
- 批量操作前先 --check 与 -l 限制范围,避免误伤全网
- 执行结果归档(谁在什么时候改了什么)
容易踩的坑
- 清单与实际资产不符,漏管主机
- 全部用 root 连接,缺少审计
- 未区分环境(生产/测试)在同一清单
验证与巡检
ansible -i inventory.ini all -m ping
- 巡检:ping 全部成功、分组与环境标签清晰
小结
自动化的落地顺序:先做只读巡检(收集信息)→ 再做低风险变更(时间同步、日志配置)→ 最后做高风险变更(网络与安全策略)。
> 说明:文中命令为通用写法,不同型号/版本可能略有差异,落地前请对照设备实际版本的官方文档;带外管理与安全设备变更建议先在测试设备验证。