【问题标题】:Ansible - choose the most recently updated side and synchronize the local and remote directories?Ansible - 选择最近更新的一面并同步本地和远程目录?
【发布时间】:2018-02-26 01:56:31
【问题描述】:

我有几个具有类似设置的工作站(家用计算机、办公室的工作站)以及用作远程存储的服务器。我正在尝试让Ansible 在这些设备之间备份和同步多个应用程序配置文件目录(Intellij Idea 配置文件目录、我的桌面环境配置文件目录、一些从 tar.gz 分发包中解压缩的应用程序等等)。我从不同时使用所有设备。

每个目录的逻辑应该是:

  • 检查本地目录修改时间戳
  • 检查远程服务器上目录的修改时间戳
  • 如果本地副本较旧,则使用远程服务器上目录的内容覆盖它。否则,将本地目录的内容备份到远程目录(有效地覆盖它)。

我将使用Ansiblesynchronize 模块。但是对我(相当长的)列表中的每个文件夹使用when 来实现上述逻辑听起来就像是在为我发明一辆自行车。这应该是实现这一目标的更好方法。

似乎是一项常见任务,也许有第三方 Ansible 角色/插件可以做到这一点?或者可能是一个单独的应用程序,可以使用command 调用?

【问题讨论】:

  • 你可以使用循环(with_item,with_together)在某处定义目录列表或字典。
  • Rsync 并不是一个很好的双向同步工具。你考虑过syncthing这样的东西吗?
  • 谢谢,我去看看。但乍一看,它并不是一个可以轻松与 Ansible 集成的控制台解决方案
  • ansible 不是最好的工具。你应该使用的是 git 之类的版本控制工具。您正在描述版本控制解决的问题。
  • 文件大多是二进制文件。我考虑过使用 git LFS,但对于这项任务来说,这听起来有点过头了。我不需要版本控制,不想一直运行 git server,不需要在旧版本的文件上浪费空间

标签: ansible rsync data-synchronization


【解决方案1】:

Ansible 显然不是解决此问题的合适工具。

您为什么不使用具有文件夹同步功能的在线存储服务,例如 Dropbox?

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2012-04-20
    • 2010-11-30
    • 1970-01-01
    • 2012-08-08
    • 2022-09-27
    • 1970-01-01
    • 2022-01-06
    • 2019-02-08
    相关资源
    最近更新 更多