如何加速 Ansible Playbook

Ansible 是一种开源 IT 自动化工具,用于持续部署或零停机滚动更新、软件部署、配置管理和更高级 IT 任务的编排。 Ansible 在服务器配置和应用程序部署期间最大限度地减少了工作负载并节省了大量时间。

在某些情况下,我们确实必须一次维护大量服务器,然后在执行 ansible-playbook 时,可能需要更长的时间才能完成 playbook 任务。 根据 ansible 官方文档,我们可以使用本文将讨论的各种方法来加快其 playbook 速度。 使用这些方法,我们可以通过更改 ansible 配置来降低其实际耗时的巨大比例。

流水线

流水线取代了早期版本的 ansible 中使用的加速模式,这有助于加速专用主机上的 ssh 连接。 Ansible 启动许多 ssh 连接来执行每个 playbook 任务,这可能会增加总时间消耗。 默认情况下禁用流水线,因此启用流水线后,许多 Ansible 模块在没有实际文件传输的情况下执行,这减少了所需的 ssh 连接数量。 STDIN 通道用于在模块执行期间将指令传递给已知主机。

您必须将流水线值设置为 true 才能在 ansible.cfg 文件中启用流水线。

自由策略

Ansible 总是以线性策略执行剧本,这是剧本的工作流程之一。 在线性策略中,剧本中的每个任务只有在每个主机完成特定任务后才会启动,这是非常耗时的。

使用自由策略,所有主机将相互独立,每个主机上的任务将继续执行,而无需等待另一台主机完成任务。 这有助于减少在所有专用主机上完成任务的等待时间。 要覆盖默认策略,请在 playbook YAML 文件中将策略设置为 free。