自动化与可用性依赖不同机制:可重复的配置、流量分发、稳定的服务地址,以及进程停止后的恢复动作。本挑战型项目在一台 Linux 主机上配置这些机制,帮助你理解它们如何配合。
你将通过本地 Ansible Playbook 配置 Nginx,用 HAProxy 在两个预置后端之间分发请求,用 Keepalived 分配虚拟 IP,并调度 Bash Watchdog 恢复 Nginx。实验会验证具体服务状态和流量行为,同时明确单节点环境的限制。
你将学到什么
- 创建本地 Ansible Inventory、Template 和 Playbook,安装、启动并配置 Nginx
- 以 HTTP 模式配置 HAProxy,在端口
80建立 Frontend,并对端口8001和8002的 Backend 进行轮询 - 通过重复请求验证两个预置后端响应都能经 HAProxy 到达
- 识别默认路由接口,并定义带 VIP
10.0.0.100的 KeepalivedVI_1MASTER 实例 - 启动 Keepalived,并确认本地接口上存在
/32虚拟 IP - 编写可执行 Nginx Watchdog,把带日期的恢复事件追加到日志,并在 Root Crontab 中每分钟调度
本课程适合谁
本项目适合准备通过结果导向任务综合运用 Ansible、HAProxy、Keepalived、Bash 和 Cron 的 DevOps 与 Linux 学习者。
前置要求: 熟悉 Linux 软件包和服务管理、YAML、基础 Ansible Play、HTTP 代理概念、网络接口与虚拟 IP、Shell 条件语句和 Crontab;这是考核型项目。
学习环境: 可通过浏览器访问的单节点 Linux 主机,配有 sudo、Ansible、Nginx、HAProxy、Keepalived、Cron、两个预置本地 HTTP 后端和本地网络;无需云或额外服务器。
常见问题
Ansible 阶段会配置真实服务器集群吗?
不会。Inventory 只指向本地实验主机。你仍会创建并运行真实 Playbook 来安装软件包、部署文件和管理服务,但不测试多主机 SSH 编排。
HAProxy 后端是独立机器吗?
不是。两个预置服务运行在本机端口 8001 和 8002。HAProxy 监听端口 80 并使用 HTTP 轮询,重复请求必须能访问 “Server 1” 和 “Server 2”。
Keepalived 任务会演示两个节点间的真实故障转移吗?
不会。你只配置一个 MASTER 实例并验证 VIP 10.0.0.100 出现在接口上;单节点环境没有 BACKUP 节点、VRRP 接管或回切测试。
自动恢复任务会重启什么?
它只检查并启动 Nginx,把恢复记录写入 /var/log/nginx_recovery.log,并由 Root Crontab 每分钟运行。它不监控 HAProxy、Keepalived、远程节点,也不执行服务状态之外的应用健康检查。





