Ansible 批量部署 Nginx 实战指南
前言
作为一名长期与服务器打交道的运维人员,我曾无数次被批量部署软件的工作折磨得焦头烂额。上百台服务器,手动逐台登录、安装、配置,不仅耗时耗力,还总免不了因为手抖输错命令,导致某几台机器的配置出问题,后续排查又要花费大把时间。
直到接触并使用 Ansible,才真正体会到'解放双手'的滋味。用 Ansible 最大的感受就是省心,它不用在目标服务器装额外的代理程序,靠 SSH 就能通信,上手也快。写好一次 Playbook,不管是几十台还是上百台服务器,一条命令就能完成标准化部署,而且重复执行也不会出问题,完美解决了手动操作的一致性难题。
当然,有时候也会遇到特殊情况,比如假期公司临时要求给内网服务器部署 Nginx,而你又不在同一个局域网。这时候,借助内网穿透工具实现远程访问就成了关键。下面就把这套用 Ansible 自动化部署 Nginx 的完整流程整理出来,从 Ansible 安装到借助内网穿透实现异地远程部署,一步步讲清楚。
本文将从零开始,带你构建一套完整、健壮、可复用的 Ansible 自动化部署方案。无论你是刚接触自动化运维的新手,还是希望优化现有部署流程的老手,都能从中获得实用的思路与技巧。
1. 什么是 Ansible?为何选择 Ansible?
Ansible 是一款开源的自动化运维工具,旨在简化配置管理、应用部署、任务编排和 IT 编排等操作。其核心设计理念是'简单、可靠、无侵入',通过声明式语言实现对大规模基础设施的高效管控。
在传统运维模式下,面对数百台服务器的批量操作,往往依赖脚本循环执行 SSH 命令,不仅效率低下,还难以保证执行的一致性与可追溯性。Ansible 的出现有效解决了这一痛点,使运维人员能够以一条命令完成跨节点的标准化操作。
核心优势
- 无代理架构:Ansible 无需在目标主机上安装额外客户端或代理程序,仅依赖标准 SSH 服务即可完成通信与指令下发。这显著降低了系统开销与维护复杂度,同时避免了因中心化代理服务故障导致的全局性风险。
- 基于 SSH 的安全通信:利用成熟的 SSH 协议进行连接,天然支持密钥认证、跳板机、堡垒机等企业级安全策略,确保操作过程的安全合规。
- 幂等性保障:Ansible 的模块设计遵循幂等原则——无论 Playbook 被执行多少次,系统最终状态始终保持一致。这一特性对于生产环境中的配置修复、状态校验和持续同步至关重要。
- YAML 驱动的声明式语法:使用结构清晰、易于阅读的 YAML 格式编写 Playbook,大幅降低学习成本,提升协作效率与可维护性。
- 丰富的模块生态:Ansible 内置数千个模块,覆盖操作系统、网络设备、数据库、中间件及主流云平台,支持从基础资源管理到复杂业务编排的全场景自动化需求。
凭借上述特性,Ansible 已成为 DevOps 实践中广泛采用的自动化引擎,助力企业实现高效、可靠、可重复的基础设施即代码管理。
2. 在 CentOS 7 上安装 Ansible
首先更新所有系统软件包,确保环境最新:
yum update -y
安装 EPEL 仓库(提供 Ansible 包):
yum install -y epel-release
接着安装 Ansible:
yum install -y ansible
验证是否安装成功:
ansible --version
如果看到版本号输出,说明安装顺利。
3. 一键部署 Nginx
确保你在 playbook 所在目录(假设是 /etc/ansible):
cd /etc/ansible
编辑 hosts 文件,加入你所要管理的 IP、用户名及密码(生产环境建议优先使用 SSH 密钥认证):
[test]
192.168.42.146 ansible_ssh_user=root ansible_ssh_pass=your_password


