用 20 多个场景练 Ansible:单机配置管理到多机滚动部署
【免费下载链接】ansible-for-devopsAnsible for DevOps examples.项目地址: https://gitcode.com/gh_mirrors/an/ansible-for-devops
新服务器上线要装一堆依赖、改完配置还得逐台登录核对——ansible-for-devops 是《Ansible for DevOps》一书的配套仓库,收录 20 多个可直接运行的 Ansible 剧本,覆盖配置管理、应用部署与多节点编排。
先搞清楚它管什么
拿一台新机器来装环境,要装依赖、开端口、建数据库、调 Web 服务,第一次全靠手工,第二台就得重新来一遍。剧本(playbook)的意义在于把这套动作写成可重复执行的文件,跑第二次不需要凭记忆。
机器到多台之后麻烦升级:Web 集群后面挂着三台机器,改一个配置要登三台。这个仓库的示例从单机逐步走到多机,最后落到零停机发布和滚动更新这两个真实运维问题上。
所有示例都用 Vagrant 加 VirtualBox 在本地跑,不需要真实机器,可以放心搞坏。注意书中示例以教学为目的,没有完全遵循 Ansible 最佳实践,适合先学语法。
几个模块分别干嘛
装完系统先跑通第一个剧本
first-ansible-playbook/ 用两个任务装 chronyd 并保证它运行,是最短的一个完整剧本,适合先验证本地环境是否可用。接下来可以跑 drupal/,单文件剧本装完整套 LAMP 加 CMS,用来对比长短剧本的写法差异。
多台机器怎么一起编排
orchestration/ 用 Vagrant 起多台虚机并给出 inventory,用来试 ad-hoc 命令,是理解分组概念的第一步。想看完整的多机架构,参考 lamp-infrastructure/ 的高可用 LAMP 部署,或 elk/ 的两机日志栈。适合刚开始接触多机环境的人。
发布流程怎么做零停机和滚动更新
deployments/、deployments-balancer/、deployments-rolling/ 三组示例分别对应常规发布、HAProxy 负载均衡后零停机发布、多机滚动更新,都把 provision 和 deploy 拆成两个剧本。适合要设计应用发布流程的人。
角色和集合怎么搭
nodejs-role/ 把 nodejs/ 的例子重构为角色,collection/ 展示 collection 的目录结构,galaxy-role-servers/ 则直接引入社区角色拉起服务器。适合开始写自己可复用角色的人。
跑起来要什么
需要 VirtualBox、Vagrant 和 Ansible 2.9+。先克隆仓库:git clone https://gitcode.com/gh_mirrors/an/ansible-for-devops。每个示例目录都有自己的 Vagrantfile 和剧本,进入目录用vagrant up起虚机,再按该目录 README 跑对应剧本即可。
上手时容易卡住的地方
- 注意:部分示例使用 Vagrant 私有网络 192.168.56.0/24(如 elk/),若与本地网段冲突,
vagrant up会失败,先确认网段是否被占用。 - 注意:多数剧本引用了 Galaxy 上的 geerlingguy 角色,目录里通常有 requirements.yml,要先用
ansible-galaxy装好角色再跑,否则会报找不到 role。 - 建议:仓库 README 明确示例以教学为主、未完全遵循最佳实践,学完语法后若用于生产,需按较新的 Ansible 文档复核变量与标签用法。
适合谁,从哪下手
想练剧本语法:从 first-ansible-playbook/ 跑起,再看 includes/ 里任务拆分的方式,最后对照 nodejs-role/ 看单文件如何演进成角色。
想搭真实发布流程:从 deployments-rolling/ 入手,弄清 provision.yml 与 deploy.yml 的分工,再把 vars.yml 里的应用变量换成自己的服务地址试跑。
全部示例按书籍章节分目录存放,clone 下来对照各目录 README 逐个跑即可。
【免费下载链接】ansible-for-devopsAnsible for DevOps examples.项目地址: https://gitcode.com/gh_mirrors/an/ansible-for-devops
创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考