跳到主要内容
极客日志极客日志面向AI+效率的开发者社区
首页博客GitHub 精选镜像工具UI配色美学隐私政策关于联系
搜索内容 / 工具 / 仓库 / 镜像...⌘K搜索
注册
博客列表
Shell / Bash

Ansible 批量部署 Nginx 实战指南

综述由AI生成Ansible 自动化运维工具通过无代理架构和幂等性设计,解决了大规模服务器配置管理的一致性问题。演示了在 CentOS 7 环境下安装 Ansible,编写 Playbook 实现 Nginx 的批量安装、配置及启动。针对内网环境远程部署需求,介绍了利用 SSH 隧道或内网穿透工具映射端口的方案,配合 hosts 文件配置,实现跨网络的一键部署。最终验证了服务状态,确保生产环境部署的高效与可靠。

MqEngine发布于 2026/3/29更新于 2026/6/813 浏览
Ansible 批量部署 Nginx 实战指南

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 =root ansible_ssh_pass=your_password
ansible_ssh_user

接下来编辑 Playbook 文件(例如 nginx_deploy.yml)。注意 YAML 对缩进非常敏感,必须使用空格而非 Tab:

---
- name: 在主机上安装并启动 Nginx
  hosts: test
  become: yes
  gather_facts: yes
  tasks:
    - name: 安装 EPEL 软件源(Nginx 依赖)
      yum:
        name: epel-release
        state: present

    - name: 安装 Nginx
      yum:
        name: nginx
        state: present

    - name: 启动 Nginx 服务并设置开机自启
      systemd:
        name: nginx
        state: started
        enabled: yes

然后使用 ansible-playbook 执行:

ansible-playbook -i hosts nginx_deploy.yml

执行成功后,我们去目标主机查看一下 Nginx 是否安装成功。输入以下命令检查:

rpm -q nginx          # 检查 Nginx 是否已安装
systemctl status nginx # 检查 Nginx 服务状态
ss -tuln | grep ':80'  # 检查 80 端口是否监听

如果能看到服务运行且端口监听正常,说明一键部署已完成。

我们可以在 hosts 文件添加上百台主机,皆可以使用 Ansible 命令一键安装。这种标准化的方式,让批量操作变得可控且可追溯。

4. 内网穿透与远程部署

有时候,公司突然要求你给上百台服务器部署任务,而你正躺在家里的沙发上享受难得的假期,不想回公司,又不在同一个局域网。远程访问内网机器成了难题。

这时候,内网穿透工具就派上用场了!它可以轻松穿透内网,安全、稳定地将本地服务暴露到公网,让你随时随地远程管理服务器。

4.1 配置隧道

你需要将本地的 SSH 端口映射到一个公网地址。具体步骤取决于你使用的工具,通常包括注册账号、创建隧道、获取公网地址。

假设你已经通过工具获取到了公网地址和端口,例如 5.tcp.cpolar.top:13501(此处仅为示例,实际请根据所用工具获取)。

4.2 修改 Hosts 配置

修改 hosts 配置文件,指向新的公网地址:

[dbservers]
5.tcp.cpolar.top ansible_user=root ansible_port=13501 ansible_password=***

4.3 执行部署

再次执行之前的 Playbook:

ansible-playbook -i hosts nginx_deploy.yml

执行成功后,去对应主机查看 Nginx 是否安装成功即可。

4.4 保留固定 TCP 公网地址

为了避免每次重启后公网地址变化导致配置失效,建议在工具中配置固定 TCP 地址。通常在 Web 管理界面找到隧道列表,编辑隧道信息,将端口类型改为固定 TCP 端口,并填入预留的地址。这样我们的 Ansible 操作就没有任何阻碍啦。

总结

总的来说,这篇内容从 Ansible 的核心优势讲起,一步步教大家在 CentOS 7 上安装 Ansible,编写 Playbook 实现 Nginx 的批量安装与启动,还补充了用内网穿透工具做远程访问、配置固定公网地址,实现异地远程运维的方法。整套流程下来,能彻底解决大规模服务器部署 Nginx 的效率问题。

希望这些实战经验能帮到各位同行,让大家少走弯路,把更多精力放在更有价值的工作上。如果在操作过程中有任何问题,欢迎一起交流探讨,毕竟运维路上,互相分享才能一起提升!

目录

  1. Ansible 批量部署 Nginx 实战指南
  2. 前言
  3. 1. 什么是 Ansible?为何选择 Ansible?
  4. 核心优势
  5. 2. 在 CentOS 7 上安装 Ansible
  6. 3. 一键部署 Nginx
  7. 4. 内网穿透与远程部署
  8. 4.1 配置隧道
  9. 4.2 修改 Hosts 配置
  10. 4.3 执行部署
  11. 4.4 保留固定 TCP 公网地址
  12. 总结
  • 💰 8折买阿里云服务器限时8折了解详情
  • Magick API 一键接入全球大模型注册送1000万token查看
  • 🤖 一键搭建Deepseek满血版了解详情
  • 一键打造专属AI 智能体了解详情
极客日志微信公众号二维码

微信扫一扫,关注极客日志

微信公众号「极客日志V2」,在微信中扫描左侧二维码关注。展示文案:极客日志V2 zeeklog

更多推荐文章

查看全部
  • 腾讯混元图像模型 2.1 开源:支持 2K 分辨率与双语指令
  • Spring Web MVC 核心概念与实战指南
  • Python 数据分析:学生画像匹配与相似度计算
  • 使用 Web Unlocker API 高效抓取亚马逊数据实战
  • Claude Code 本地环境配置与使用指南
  • 基于 Jetson Nano 与 YOLOv5s 的无人机道路抛洒物实时检测系统
  • 火宝短剧:AI 驱动的一站式短剧生成平台
  • GLM-4.6V-Flash-WEB 与 Qwen-VL 视觉理解部署评测对比
  • DrissionPage 使用教程:Python 动态网页自动化实战
  • SSL VPN 安全防御:防范隧道内部攻击流量
  • Flutter inappwebview_cookie_manager 适配鸿蒙 HarmonyOS 实战
  • Whisper-Large-V3-Turbo 模型高效部署指南
  • AI 如何助力六花直装 V8.3.9 的自动化开发与测试
  • Git 提交信息规范:Conventional Commits 详解
  • 阿里开源 PageAgent:纯前端浏览器自动化新范式
  • AutoGen Studio 基于 AI 的 3D 虚拟场景生成技术解析
  • AI 建筑设计绘画:从基础到高级的提示词实战指南
  • LangChain 框架与大模型应用开发核心知识点总结
  • GitHub Copilot Pro 免费权益获取指南与功能对比
  • DeepSeek-R1 模型 Python 爬虫实战:智能数据采集与清洗

相关免费在线工具

  • Base64 字符串编码/解码

    将字符串编码和解码为其 Base64 格式表示形式即可。 在线工具,Base64 字符串编码/解码在线工具,online

  • Base64 文件转换器

    将字符串、文件或图像转换为其 Base64 表示形式。 在线工具,Base64 文件转换器在线工具,online

  • Markdown转HTML

    将 Markdown(GFM)转为 HTML 片段,浏览器内 marked 解析;与 HTML转Markdown 互为补充。 在线工具,Markdown转HTML在线工具,online

  • HTML转Markdown

    将 HTML 片段转为 GitHub Flavored Markdown,支持标题、列表、链接、代码块与表格等;浏览器内处理,可链接预填。 在线工具,HTML转Markdown在线工具,online

  • JSON 压缩

    通过删除不必要的空白来缩小和压缩JSON。 在线工具,JSON 压缩在线工具,online

  • JSON美化和格式化

    将JSON字符串修饰为友好的可读格式。 在线工具,JSON美化和格式化在线工具,online