Ansible 会在主节点还是目标节点上下载二进制文件?

Ansible 会在主节点还是目标节点上下载二进制文件?

使用 Ansible 安装 OpenJDK 时,二进制文件是从 Redhat 存储库下载的。

所以我有一个疑问,如果我需要在 100 个目标节点上安装 OpenJDK,Ansible

  1. 在主节点上下载二进制文件一次并将其推送到目标节点?

或者

  1. 在 100 个目标节点上分别下载二进制文件?

方法 1 消除了在 100 个节点上下载相同二进制文件的冗余,只需下载一次

但它也有缺点,必须将二进制文件推送到 100 个节点 - 这可能很耗时,并且可能还涉及网络延迟。

Q1. Ansible 采用哪种方法(上面提到的方法 #1 还是 #2)?Q2. Ansible 是否还允许我们在上述两种方法之间进行选择?

答案1

你可以选择以哪种方式进行。

如果你想将文件从源 URL 直接复制到每个节点,你将使用get_url模块。如果您的所有节点都位于不同位置和/或您的带宽无限或便宜,您可能想要这样做。

如果你想从控制节点复制文件到每个节点,你将使用copy模块。如果您的所有节点都与控制节点位于同一处所和/或您的带宽有限或昂贵,您可能需要这样做。

您还可以get_url通过将播放作为运行来下载文件到控制节点,以便分发到您的节点local_action

相关内容