Ansible:一台机器管所有服务器的自动化利器 文章目录Ansible一台机器管所有服务器的自动化利器Ansible一台机器管所有服务器的自动化利器Ansible 是 Red Hat 赞助的开源 IT 自动化工具目前斩获了 68,868 个 StarAnsible 的核心定位是用一条命令管理成百上千台服务器。配置变更、应用部署、云资源创建、网络设备管理全部通过统一的方式完成。和 Puppet、Chef 这些老牌工具相比Ansible 最大的特点是不需要在目标机器上安装任何客户端。它直接通过 SSH 连接执行任务装好控制端就能用省去了部署 agent 的麻烦。Ansible 怎么工作的Ansible 用 YAML 格式的 Playbook 来定义自动化任务。一个 Playbook 描述的是哪些机器、执行什么操作、按什么顺序结构清晰读起来和写流程文档差不多。底层执行时Ansible 会把 Playbook 编译成 Python 脚本通过 SSH 推送到目标机器运行。任务执行完毕后脚本自动清理目标机器上不会残留任何状态。几个实际场景批量改密码。运维团队要对 500 台服务器统一修改某个用户密码手动操作需要大半天。用 Ansible 写一个 Playbook几分钟搞定还能自动跳过不通的机器并记录结果。应用发布。新版本代码打包好之后Ansible 可以按批次逐台滚动更新配合负载均衡器实现零停机发布。每台机器更新后自动做健康检查失败则回滚。云资源编排。Ansible 有丰富的 cloud 模块支持 AWS、Azure、GCP 等主流云平台。用 Playbook 定义一套完整的云环境拓扑一键创建 VPC、EC2 实例、安全组、RDS 数据库整个流程可版本化、可复现。模块生态Ansible 的功能扩展靠模块实现。目前官方和社区维护的模块覆盖了 Linux 系统管理、Windows 操作、数据库、中间件、容器、网络设备等几乎所有运维场景。不需要写代码直接在 Playbook 里调用对应模块就行。安装和上手通过 pip 安装最方便pip install ansible装好之后跑一条 ad-hoc 命令就能验证环境是否正常ansible all -m ping -i inventory.iniinventory.ini 是一个简单的主机清单文件写入服务器地址和认证信息即可。Playbook 用 YAML 编写学习成本低有 Shell 脚本基础的人半天就能上手。适合谁用Ansible 对中小团队特别友好。不需要搭建专门的基础设施服务器不需要培训复杂的 DSL 语法一台能跑 Python 的机器就是控制节点。大团队用 Ansible 同样合适配合 Ansible Tower现在叫 AAP可以实现权限管控、任务审计和 Web 界面操作。对于已经在用 Docker 和 Kubernetes 的团队Ansible 也能很好地配合。用 Ansible 管理节点基础环境和集群初始化用 K8s 管理容器编排两层各司其职。这个项目由 Michael DeHaan 创建目前有超过 5000 名贡献者参与开发采用 GPL v3.0 许可证。ichael DeHaan 创建目前有超过 5000 名贡献者参与开发采用 GPL v3.0 许可证。