前言
做运维这些年,批量部署软件一直是最耗时间、也最容易出错的活儿。几十台、上百台服务器逐台登录、安装、配置,效率低不说,某一步命令输错了,还得回头一台台排查。接触 Ansible 之后,这种'手工搬砖'的感觉才真正被替代掉。
Ansible 的思路很直接:不需要在目标主机上额外装代理,靠 SSH 就能完成管理。你只要把期望状态写进 Playbook,剩下的事情交给它。无论是几十台还是上百台机器,同一套配置都能稳定执行,而且重复跑也不会把系统搞乱,这一点在生产环境里尤其省心。
下面我把用 Ansible 自动化部署 Nginx 的过程整理成一篇完整的实战记录,顺带把异地远程运维这部分也一起串起来。你会看到,从安装 Ansible、编写 Playbook,到通过内网穿透远程管理内网主机,整个流程其实并不复杂,关键是把步骤理顺。

1. 认识 Ansible
Ansible 是一款开源自动化运维工具,主要用来做配置管理、应用部署、任务编排和基础设施自动化。它的特点很鲜明:简单、可靠、无侵入。
在传统运维场景里,批量操作通常离不开脚本和 SSH 循环调用。能用,但维护起来很累,一旦环境变复杂,一致性和可追溯性就会变成老大难。Ansible 则把这类事情抽象成'声明式配置',你描述目标状态,它负责把机器收敛到这个状态。
它的几个核心优势
- 无代理架构:目标主机不需要安装客户端或常驻代理,直接通过 SSH 通信,部署和维护都更轻。
- 基于 SSH 的连接方式:可以直接接入常见的密钥认证、跳板机和堡垒机体系,比较符合企业环境的安全要求。
- 幂等性:同一份 Playbook 重复执行,最终结果保持一致,不会因为重复操作把环境越改越乱。
- YAML 语法清晰:Playbook 可读性高,后续协作、审查和维护都方便。
- 模块丰富:从系统包管理到中间件部署,常见场景基本都有现成模块可用。
2. 在 CentOS 7 上安装 Ansible
先把系统软件包更新一下,避免后面因为依赖版本太旧出小问题:
yum update -y
接着安装 EPEL 仓库,Ansible 的安装包通常会从这里获取:
yum install -y epel-release
安装 Ansible 本身:
yum install -y ansible
安装完成后,先确认版本是否正常:
ansible --version
如果能正确输出版本信息,说明环境已经准备好了。
3. 用 Ansible 一键部署 Nginx
先切到 Ansible 的工作目录,下面的示例默认放在 /etc/ansible:
cd /etc/ansible
配置主机清单
编辑 hosts 文件,把目标主机的 IP、登录用户和密码写进去。实际环境里更推荐密钥认证,这里为了演示方便,先用账号密码说明:
[test]
192.168.42.146 ansible_user=用户名 ansible_password=密码


