Ansible 自动化运维实战
Ansible 以其简单易用的特点,成为最受欢迎的自动化运维工具之一。
一、概述
基于 SSH 的自动化工具,无需在目标机器安装客户端。
- 无 Agent 架构
- YAML 语法简单易学
- 幂等性保证
- 丰富的模块库
- 支持角色和变量
二、安装配置
pip install ansible
cat > /etc/ansible/hosts << EOF
[webservers]
web1 ansible_host=192.168.1.10
web2 ansible_host=192.168.1.11
[dbservers]
db1 ansible_host=192.168.1.20
EOF
三、Playbook
---
- name: Install and configure Nginx
hosts: webservers
become: yes
tasks:
- name: Install Nginx
apt: {name: nginx, state: present}
- name: Configure Nginx
template: {src: nginx.conf.j2, dest: /etc/nginx/nginx.conf}
notify: restart nginx
- name: Ensure Nginx is running
service: {name: nginx, state: started, enabled: yes}
handlers:
- name: restart nginx
service: {name: nginx, state: restarted}
四、角色
Roles 是 Ansible 的复用机制。
ansible-galaxy init roles/webserver
# roles/webserver/
# ├── tasks/main.yml
# ├── handlers/main.yml
# ├── templates/
# ├── files/
# ├── vars/main.yml
# └── defaults/main.yml
五、大规模部署
- SSH 连接池减少开销
- 配置 forks 控制并发
- fact 缓存减少信息收集
- 分批部署降低风险
- 使用 --check 预演
ansible all -m ping
ansible webservers -m shell -a "uptime"
ansible-playbook site.yml --limit webservers --check
六、总结
Ansible 是批量服务器管理的利器。掌握 Playbook 和 Roles 可大幅提升运维效率。
本文基于实际生产环境经验编写,配置参数需根据具体情况调整。建议在测试环境验证后再应用于生产环境。如需了解更多技术细节和实践案例,请关注本站后续文章。
虾米生活分享

评论前必须登录!
注册