【发布时间】:2017-11-22 19:52:12
【问题描述】:
我是 Ansible 的新手。我有一个包含 4 个主机的主机文件。
我还有一个“copymap”字典,用于在服务器之间复制数据(文件夹)(完整的“copymap”字典比下面的示例大得多)。
copymap:
- {service: "zeppelin", src: '3.3.3.3', dest: '2.2.2.2'}
- {service: "local_data", src: '4.4.4.4', dest: '1.1.1.1'}
我想在服务器之间复制数据,当源是 copymap.src 并且目标是 copymap.dest。
我知道如何使用“with_items”进行迭代,但我不确定我是否了解如何指定源和目标服务器。有没有人使用内置的“复制”模块从动态远程复制到远程服务器?
【问题讨论】:
-
我已经阅读了这篇文章,但仍然不知道如何从远程服务器复制到远程服务器?假设我正在从 Server1 运行 Ansible,并且当我的 hosts 文件中有 Servers1-4 时,我想在 Server2 和 Server3 之间同步文件夹。我需要使用带有完整服务器列表的主机文件,因为我正在遍历不同的服务器和不同的文件夹。
-
Ansible 适合这个,你需要编写和部署一些服务守护进程,它将拥有所有机器主机 IP 并且可以完成这项工作。 Ansible 只会将主机 IP 更新为守护程序服务。或者另一种方法是您可以只使用带有命令模块的命令 (scp) 来执行此操作,但这不是一个好方法。也许你可以解释你的架构更多细节,这样你就会得到更多好的解决方案
-
我写的剧本是系统升级的。如果服务在服务器 X 上并移动到 Y,则升级的任务之一是复制数据 - 我正在使用一个 python 脚本来处理这个问题,该脚本获取有关新旧结构的数据并生成一个“copymap”字典(参见它的结构关于我原来的问题)。所以 Ansible 正在我的所有主机上运行(例如可以是 10 台),但我想将数据从服务器 1.1.1.1 复制到服务器 2.2.2.2(而 3.3.3.3 和 4.4.4.4 等在主机上文件)。我将用'with_items'循环这本字典。
标签: ansible