梗概

[father::Ansible] Playbook是用YAML格式编写的自动化脚本,通过声明式配置来管理服务器状态。本文提供Web服务器配置的实际示例,展示如何使用Playbook实现批量部署和配置管理。

Web服务器配置示例

基础Web服务器部署

以下是一个完整的Web服务器配置Playbook,包含Nginx安装、防火墙配置和服务启动:

- name: 配置 Web 服务器
  hosts: web_servers
  become: true
  tasks:
    - name: 安装 nginx
      apt:
        name: nginx
        state: present
 
    - name: 配置防火墙
      ufw:
        rule: allow
        name: 'Nginx HTTP'
        state: enabled
 
    - name: 启动 nginx 服务
      service:
        name: nginx
        state: started
        enabled: true

配置说明

主要组件

  • hosts: 指定目标主机组,需要在Inventory文件中定义web_servers
  • become: 使用sudo权限执行任务
  • tasks: 任务列表,按顺序执行

任务详解

  1. 安装nginx: 使用apt模块安装nginx包
  2. 配置防火墙: 通过ufw模块开放HTTP端口
  3. 启动服务: 确保nginx服务运行并设置开机自启

扩展配置

添加SSL配置

    - name: 配置SSL证书
      copy:
        src: /local/path/to/ssl.crt
        dest: /etc/nginx/ssl/
        mode: '0644'
      
    - name: 重启nginx应用配置
      service:
        name: nginx
        state: restarted

多环境部署

可以通过Inventory文件定义不同环境的主机组:

[web_servers_dev]
dev-web1.example.com
dev-web2.example.com
 
[web_servers_prod]
prod-web1.example.com
prod-web2.example.com

相关概念