将文件部署到远程服务器:带有额外选项的 rsync 是什么样子的?

将文件部署到远程服务器:带有额外选项的 rsync 是什么样子的?

来自 Web 开发人员的 DevOps 问题提醒 :) 我想将所有本地修改的文件复制到远程服务器。现在我知道我可以使用 rsync,例如:

rsync -cavzu / [email protected]:/file/path/

但我想知道现在是否有一个方便的 rsync 包装器?理想情况下,最好具有以下功能:

  • 配置我不想复制的文件(例如localsettings.pyDjango 项目)
  • 存储远程文件路径,这样我就不必每次都指定它
  • 存储部署到开发或生产服务器的不同选项,使用单个标志指定

再次,我想我可以通过围绕 rsync 编写自己的 shell 脚本来完成所有这些操作,但我只是想知道现在是否有更简单的实用程序可以完成上述操作。

答案1

如果你使用 Ruby on Rails,Capistrano 就是你要找的。我认为 Python/Django 也有类似的东西(更新:它叫织物)。其他语言和框架应该也有类似的工具。

Capistrano 不使用 rsync,而是从您的 Git(或其他 VCS)服务器运行签出。您可以轻松定义自己的部署任务并设置不同的环境。

答案2

您是否考虑过使用 SVN 或 Git?

它们都可用于将代码从开发环境“推送”(或提交)到生产环境,但还具有版本控制的额外优势,并且您可以使用钩子在某些事件之后执行自定义脚本。

Git 更受欢迎,并且具有更好的文档。调整工作流程以使用它们可能会很麻烦,但绝对值得。如果您不想管理自己的 Git / SVN 服务器,有很多服务可以提供它。我个人使用过的两个是:

相关内容