文章最后更新时间:
Ansible是当下最流行的自动化运维工具,无需在目标服务器安装代理,通过SSH即可完成批量配置管理。本文介绍Ansible从入门到企业级配置的完整实战指南。
一、Ansible概述
核心特点
Ansible通过SSH协议连接服务器,无需在被管理主机安装代理,配置简单。
核心概念
控制节点(Ansible安装所在)、被管理主机(通过SSH管理)、Inventory(主机清单)、Playbook(任务剧本)。
与 Puppet/Salt 的区别
Ansible无需代理,配置更简单,适合管理几十到几百台服务器的场景。
应用场景
批量配置管理、自动化部署、应用编排、持续部署等。
二、安装与基础配置
1. 安装Ansible
通过pip install ansible或yum install ansible安装控制节点。
2. 配置SSH免密
生成SSH密钥,将公钥分发到所有被管理主机,实现免密登录。
3. 创建Inventory
编辑/etc/ansible/hosts,定义被管理主机列表和分组。
4. 测试连通性
使用ansible all -m ping测试与所有主机的连通性。
三、Ad-Hoc命令使用
批量执行命令
使用ansible命令批量执行Shell命令,如批量重启服务、批量安装软件等。
文件传输
使用ansible-doc获取模块帮助,使用copy、file等模块管理文件和目录。
包管理
使用yum、apt等模块批量管理软件包。
服务管理
使用service或systemd模块批量管理服务启停。
四、Playbook编写实战
1. YAML基础
Playbook使用YAML格式编写,包含hosts、tasks、handlers等部分。
2. 常用模块
copy、file、yum、service、template、command、shell等核心模块。
3. 变量和条件
使用vars定义变量,使用when设置条件执行,使用loop循环执行。
4. Handlers触发
Handlers用于配置变更后触发相应动作,如配置文件变更后重启服务。
五、企业级最佳实践
1. 目录结构
建立规范的目录结构,如roles、playbooks、inventory、group_vars等。
2. Roles复用
使用Roles将任务、变量、模板等组织成可复用模块。
3. Vault加密
使用ansible-vault加密敏感文件,保护密码、密钥等敏感信息。
4. Galaxy社区
使用Ansible Galaxy下载社区角色,避免重复造轮子。
六、常见问题
Q:Ansible适合管理多少台服务器?
A:官方建议1000台以内,大规模场景可使用Tower/AWX或 Ansible-pull模式。
Q:如何加快Ansible执行速度?
A:使用异步执行、批量 Fork、配置facts缓存等方法。
Q:Playbook执行失败如何排查?
A:使用-v参数查看详细输出,使用–check模拟执行,使用–start-at-task从指定任务恢复。
总结
Ansible是自动化运维的利器。核心要点:安装配置SSH免密、掌握Ad-Hoc命令、熟练编写Playbook、使用Roles组织代码。掌握这些,运维效率提升十倍。
瀚煜云提供Ansible自动化运维培训和咨询。


















暂无评论内容