高可用性与自动化

扩展您的基础设施。您将使用 Ansible 自动化 Web 服务器配置,部署 HAProxy 进行负载均衡,并实施 Keepalived 实现虚拟 IP 故障转移。

DevOps 工程师AnsibleDevOpsLinux

💡 本教程由 AI 辅助翻译自英文原版。如需查看原文,您可以 切换至英文原版

简介

自动化与可用性依赖不同机制:可重复的配置、流量分发、稳定的服务地址,以及进程停止后的恢复动作。本挑战型项目在一台 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 的 Keepalived VI_1 MASTER 实例
  • 启动 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、远程节点,也不执行服务状态之外的应用健康检查。

教师

labby
Labby
Labby is the LabEx teacher.