【发布时间】:2018-02-26 01:56:31
【问题描述】:
我有几个具有类似设置的工作站(家用计算机、办公室的工作站)以及用作远程存储的服务器。我正在尝试让Ansible 在这些设备之间备份和同步多个应用程序配置文件目录(Intellij Idea 配置文件目录、我的桌面环境配置文件目录、一些从 tar.gz 分发包中解压缩的应用程序等等)。我从不同时使用所有设备。
每个目录的逻辑应该是:
- 检查本地目录修改时间戳
- 检查远程服务器上目录的修改时间戳
- 如果本地副本较旧,则使用远程服务器上目录的内容覆盖它。否则,将本地目录的内容备份到远程目录(有效地覆盖它)。
我将使用Ansible 和synchronize 模块。但是对我(相当长的)列表中的每个文件夹使用when 来实现上述逻辑听起来就像是在为我发明一辆自行车。这应该是实现这一目标的更好方法。
似乎是一项常见任务,也许有第三方 Ansible 角色/插件可以做到这一点?或者可能是一个单独的应用程序,可以使用command 调用?
【问题讨论】:
-
你可以使用循环(with_item,with_together)在某处定义目录列表或字典。
-
Rsync 并不是一个很好的双向同步工具。你考虑过syncthing这样的东西吗?
-
谢谢,我去看看。但乍一看,它并不是一个可以轻松与 Ansible 集成的控制台解决方案
-
ansible 不是最好的工具。你应该使用的是 git 之类的版本控制工具。您正在描述版本控制解决的问题。
-
文件大多是二进制文件。我考虑过使用 git LFS,但对于这项任务来说,这听起来有点过头了。我不需要版本控制,不想一直运行 git server,不需要在旧版本的文件上浪费空间
标签: ansible rsync data-synchronization