下面从思路 → 常用做法 → 示例 → 进阶技巧四个层面,讲怎么用 Ansible 真正“提效率”,而不是只是“能跑”。
Ansible 提效不是写更多 playbook,而是:
典型场景
做法
# inventory
[web]
web1 ansible_host=10.0.0.1
web2 ansible_host=10.0.0.2
ansible web -m ping
ansible web -m yum -a "name=nginx state=latest"
✅ 一次命令,百台生效
低效做法
登录 → 装包 → 改配置 → 重启(人工)
高效做法
- name: 安装并配置 Nginx
hosts: web
become: yes
tasks:
- yum:
name: nginx
state: latest
- template:
src: nginx.conf.j2
dest: /etc/nginx/nginx.conf
- service:
name: nginx
state: restarted
✅ 新人不看文档也能部署
目录结构
roles/
└── nginx/
├── tasks/main.yml
├── templates/nginx.conf.j2
└── vars/main.yml
调用
- hosts: web
roles:
- nginx
✅ 一个角色,多个项目复用
[prod]
web1
[test]
web2
# group_vars/prod.yml
env: production
# group_vars/test.yml
env: test
✅ 同一套代码,不同环境不同配置
- name: 修改配置
template:
src: nginx.conf.j2
dest: /etc/nginx/nginx.conf
notify: restart nginx
handlers:
- name: restart nginx
service:
name: nginx
state: restarted
✅ 配置没变 → 不重启
ansible-playbook site.yml -f 20
tags 局部执行tasks:
- name: 安装
yum: name=nginx
tags: install
ansible-playbook site.yml --tags install
--check 做变更预览ansible-playbook site.yml --check
ansible-vault 管密码ansible-vault encrypt vars/secret.yml
| 场景 | 人工 | Ansible |
|---|---|---|
| 10台装Nginx | 1小时 | 1分钟 |
| 改配置 | 易漏 | 幂等 |
| 新人部署 | 看文档 | 跑剧本 |
| 回滚 | 难 | 改变量重跑 |
Ansible 提效 = 批量 + 标准化 + 可复用 + 可重复
如果你愿意,我可以:
免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。