使用 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

执行流程

  1. Playbook 调用 Ansible 角色。
  2. 加载变量。
  3. 安装 Apache(基于 Debian 的操作系统)。
  4. 部署静态网站。
  5. 触发处理程序。
  6. 启动 Apache 服务并设置为开机自启。

预期输出

  • Apache Web 服务器成功安装

    已安装 Apache

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

    服务运行中

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

    网站视图

使用 Ansible 角色的好处

  • 可复用的自动化代码
  • 清晰有序的结构
  • 易于维护
  • 更快的部署
  • 减少人为错误

结论

本项目展示了如何利用 Ansible 角色构建可扩展且可复用的基础设施自动化。通过将任务、处理程序、变量和文件分离,解决方案变得可用于生产,并符合真实世界的 DevOps 实践。

Back to Blog

相关文章

阅读更多 »