使用 Ansible 角色自动化 Apache Web Server 部署 🚀
发布: (2026年1月14日 GMT+8 15:48)
3 min read
原文: Dev.to
Source: Dev.to
项目概述
- 自动化 Apache 安装
- 部署静态网站
- 使用 Ansible 角色实现清晰结构
- 实现处理程序和变量
- 确保基于操作系统的条件执行
适用于 DevOps 初学者和基础设施自动化场景。
使用的工具与技术
- Ansible – 配置管理
- Apache2 – Web 服务器
- Linux(基于 Debian)
- YAML – 自动化语言
项目目录结构
sample_role/
├── tasks/
│ └── main.yml
├── handlers/
│ └── main.yml
├── vars/
│ └── main.yml
├── files/
│ └── index.html
├── meta/
└── README.md
该布局遵循标准的 ansible-galaxy 角色结构。
角色组件说明
vars/main.yml
定义可复用的变量:
pkg: apache2
destfile: /var/www/html/
tasks/main.yml
处理软件包安装和网站部署:
- name: Install apache2
package:
name: "{{ pkg }}"
state: latest
when: ansible_os_family == "Debian"
- name: Deploy static website on apache2
copy:
src: "."
dest: "{{ destfile }}"
become: yes
notify:
- start apache2
handlers/main.yml
确保仅在需要时启动 Apache 服务:
- name: start apache2
service:
name: apache2
state: started
enabled: yes
files/
包含静态网站资产(HTML、CSS、JavaScript、图片)。
这些文件会直接复制到 Apache 的 Web 根目录。
执行角色的 Playbook
- hosts: all
become: yes
roles:
- sample_role
执行流程
- Playbook 调用 Ansible 角色。
- 加载变量。
- 安装 Apache(基于 Debian 的操作系统)。
- 部署静态网站。
- 触发处理程序。
- 启动 Apache 服务并设置为开机自启。
预期输出
-
Apache Web 服务器成功安装

-
Apache 服务正在运行并已设置开机自启

-
可通过浏览器使用服务器 IP 访问静态网站

使用 Ansible 角色的好处
- 可复用的自动化代码
- 清晰有序的结构
- 易于维护
- 更快的部署
- 减少人为错误
结论
本项目展示了如何利用 Ansible 角色构建可扩展且可复用的基础设施自动化。通过将任务、处理程序、变量和文件分离,解决方案变得可用于生产,并符合真实世界的 DevOps 实践。