Ansible 自动化运维实战:从配置管理到应用部署
Ansible 是 Red Hat 维护的自动化运维工具,以简单易用著称。它无需在目标机器安装 Agent,通过 SSH 执行任务。
一、安装和基本概念
# 安装
pip install ansible
# 验证
ansible --version
核心概念:
| 概念 | 说明 |
|---|---|
| Control Node | 运行 Ansible 的机器 |
| Managed Node | 被管理的目标机器 |
| Inventory | 主机清单 |
| Playbook | YAML 格式的任务剧本 |
| Module | 执行特定操作的模块 |
二、Inventory 配置
# hosts.ini
[web]
web1.example.com
web2.example.com
[db]
db1.example.com
[all:vars]
ansible_user=deploy
ansible_python_interpreter=/usr/bin/python3
三、Playbook 示例
---
- name: Configure Web Servers
hosts: web
become: yes
vars:
nginx_port: 80
tasks:
- name: Install Nginx
apt:
name: nginx
state: present
update_cache: yes
- name: Copy Nginx config
template:
src: nginx.conf.j2
dest: /etc/nginx/sites-available/default
notify: restart nginx
- name: Start Nginx
service:
name: nginx
state: started
enabled: yes
handlers:
- name: restart nginx
service:
name: nginx
state: restarted
四、Role 组织
将 Playbook 组织成可复用的 Role:
roles/
nginx/
tasks/main.yml
templates/nginx.conf.j2
vars/main.yml
handlers/main.yml
defaults/main.yml
五、应用场景
| 场景 | 方案 |
|---|---|
| 服务器初始化 | 安装常用软件、配置 SSH、设置时区 |
| 应用部署 | 从 Git 拉取代码、构建、重启服务 |
| 配置管理 | 管理 Nginx、MySQL、Redis 配置 |
| 安全加固 | 防火墙规则、Fail2ban、SSH 加固 |