serial 与滚动批次执行
分批安全推出更改
serial 与滚动批次执行 是 CoddyKit 上的免费 Ansible Academy 课时。 这是第 4 节课,共 4 节。 你可以在下方免费阅读本课时的完整内容 — 然后在浏览器中使用内置代码编辑器和全天候 AI 导师进行实践。 这是 Ansible Academy 学习路径的一部分,你的进度在网页和 CoddyKit 应用中同步。 Ansible Academy 课程共包含 4 节课。
一次全部更新风险很高
一次性更新所有服务器速度很快,但错误的更改可能会在同一时刻让整个主机群停止运行。滚动更新可以避免这种情况。
认识 serial
serial 关键字会让任务按批次处理主机,而不是一次处理全部主机。您更新完一个批次后,再处理下一个批次。
- hosts: web
serial: 2数字设置批次大小
为 serial 指定一个数字,每个批次就包含相应数量的主机。设置为 serial 2 时,Ansible 会先在两台主机上完成整个任务,然后才处理其余主机。
使用百分比
百分比 会随主机群规模变化。serial: 25% 表示每轮更新四分之一的主机,无论您有 8 台服务器还是 800 台服务器。
serial: 25%用列表逐步增加
传入一个列表,随着信心增加逐步扩大批次:先从一台主机开始,然后增加数量。这是经典的先金丝雀、后全面发布模式。
serial:
- 1
- 5
- 25%每个批次运行完整任务
关键在于,serial 会先在一个批次上运行完整个任务,然后才处理下一个批次。第一个批次完成全部操作时,后面的主机还没有开始执行。
使用 max_fail_percentage 快速失败
将 serial 与 max_fail_percentage 配合使用,可以在一个批次中失败的主机过多时中止发布,避免有问题的变更继续扩散。
- hosts: web
serial: 25%
max_fail_percentage: 30处理主机前先将其排空
安全的一轮发布会先将每个批次从负载均衡器中移除,应用变更后再将这些主机加回,这样用户就不会访问到正在更新的服务器。
保持服务运行
由于其他批次仍在提供流量,滚动更新可以实现零停机时间:应用在整个部署过程中都保持可用。
serial 与 forks 的配合
在一个批次内,forks 仍然控制并行度。serial 限制一轮发布涉及多少台主机,forks 则限制其中同时运行的主机数量。
先在一台主机上测试
从 serial: 1 开始,会让第一台主机充当金丝雀。如果它出现问题,运行就会在那里停止,其余主机群仍然保持正常。
快速检查
您希望每次更新几台主机,在不造成中断的情况下更新 100 台 Web 服务器。
回顾
使用 serial 分批发布变更,用列表逐步扩大批次,并添加 max_fail_percentage 以便尽早中止。这就是零停机部署。🌊
常见问题解答
「serial 与滚动批次执行」课时是免费的吗?
是的 — 「serial 与滚动批次执行」的完整文本可在网页上免费阅读。要进行交互式练习(内置代码编辑器和全天候 AI 导师)并解锁 Ansible Academy 课程的其余内容,请升级到 CoddyKit PRO。 Ansible Academy 课程共包含 4 节课。
「serial 与滚动批次执行」这节课中我会学到什么?
分批安全推出更改 你通过在浏览器中直接运行的动手代码来练习 Ansible Academy,全天候 AI 导师会在你学习这节课的过程中回答你的问题。
学习 Ansible Academy 需要有经验吗?
无需任何先前经验。CoddyKit 上的 Ansible Academy 课程适合初学者到高级学习者,你可以从这里开始或从头开始,按照自己的节奏学习。 这是第 4 节课,共 4 节。
「serial 与滚动批次执行」课时需要多长时间?
大多数 CoddyKit 课程大约需要 5–10 分钟。每节课都很精短且互动,所以你能稳步进步,并在网页和应用中从离开的地方继续。
我能在这节 Ansible Academy 课中编写并运行代码吗?
能。每节 Ansible Academy 课都包含内置代码编辑器,你可以在浏览器中直接编写并运行真实代码,并获得即时 AI 反馈 — 无需本地设置。