梗概
[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: 任务列表,按顺序执行
任务详解
- 安装nginx: 使用
apt模块安装nginx包 - 配置防火墙: 通过
ufw模块开放HTTP端口 - 启动服务: 确保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