作为我们开发工作流程的一部分,我们希望我们的构建服务器将已编译的二进制文件和其他构建工件发布到某些基于LAN的复制文件系统.理想情况下,我们只需让构建服务器根据构建版本将构建工件删除到文件夹中,并将该文件夹的内容本地复制到每个开发人员工作站.发布后,每个构建都是静态的,不会更改.我们没有强大的一致性要求,我们只需要在一分钟左右的时间内在每个开发人员工作站上提供这些文件.所有机器都是基于
Linux的.
最简单的解决方案可能是带有rsync cron的NAS,但感觉很笨重.是否有另一个支持上述要求的分布式/复制文件系统?我们看过做Amazon S3 s3fs,但这很痛苦.
在许多方面,这感觉就像来自网络服务器场景中的权威来源的传统镜像,例如,www1,www2等
解决方法
如果您只需要单向复制,那么您真的不需要分布式文件系统.这引入了很多复杂性,没有任何收益.我会选择rsync方法.如果构建成功,那么构建脚本中的最后一步是推出工件.如果您不想将其作为构建脚本的一部分,则可以使用cron以特定间隔执行此操作,或者在创建或修改文件时使用
lsyncd执行此操作.