前言
作为一名常年和服务器打交道的运维人员,我曾无数次被批量部署软件的工作折磨得焦头烂额。上百台服务器,手动逐台登录、安装、配置,不仅耗时耗力,还总免不了因为手抖输错命令,导致某几台机器的配置出问题,后续排查又要花费大把时间。直到接触并用上 Ansible,才真正体会到'解放双手'的滋味。
用 Ansible 最大的感受就是省心,它不用在目标服务器装额外的代理程序,靠 SSH 就能通信,上手也快,写好一次 Playbook,不管是几十台还是上百台服务器,一条命令就能完成标准化部署,而且重复执行也不会出问题,完美解决了手动操作的一致性难题。
好东西当然要和同行们分享,下面就把这套用 Ansible 自动化部署 Nginx 的完整流程整理出来,从 Ansible 安装到编写 Playbook,一步步讲清楚。
本文将从零开始,手把手带你构建一套完整、健壮、可复用的 Ansible 自动化部署方案。无论你是刚接触自动化运维的新手,还是希望优化现有部署流程的老手,都能从中获得实用的思路与技巧。通过本教程,你将掌握如何利用 Ansible 实现 Nginx 的批量安装、配置管理、服务启停及状态验证,真正实现'一次编写,处处运行'的高效运维目标。
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 和他的用户名及密码:
[test]
ip ansible_ssh_user=用户名 ansible_ssh_pass=密码
*注意:生产环境建议优先使用 SSH 密钥认证,避免明文传输密码。
编辑命令 yml 文件:


