使用 Ansible 安装 OpenJDK 时,二进制文件是从 Redhat 存储库下载的。
所以我有一个疑问,如果我需要在 100 个目标节点上安装 OpenJDK,Ansible
- 在主节点上下载二进制文件一次并将其推送到目标节点?
或者
- 在 100 个目标节点上分别下载二进制文件?
方法 1 消除了在 100 个节点上下载相同二进制文件的冗余,只需下载一次
但它也有缺点,必须将二进制文件推送到 100 个节点 - 这可能很耗时,并且可能还涉及网络延迟。
Q1. Ansible 采用哪种方法(上面提到的方法 #1 还是 #2)?Q2. Ansible 是否还允许我们在上述两种方法之间进行选择?
答案1
你可以选择以哪种方式进行。
如果你想将文件从源 URL 直接复制到每个节点,你将使用get_url
模块。如果您的所有节点都位于不同位置和/或您的带宽无限或便宜,您可能想要这样做。
如果你想从控制节点复制文件到每个节点,你将使用copy
模块。如果您的所有节点都与控制节点位于同一处所和/或您的带宽有限或昂贵,您可能需要这样做。
您还可以get_url
通过将播放作为运行来下载文件到控制节点,以便分发到您的节点local_action
。