跨客户端安装同步Web应用程序文件

时间:2013-09-17 18:57:55

标签: file web-applications automation sync

我们有一个网络应用程序。我们的每个客户都在我们的VPS的不同文件夹中安装了这个Web应用程序。我们还有一个单独的文件夹,其中包含Web应用程序的基本文件(所有代码都是最新的)。

我们遇到的问题是:我们需要为所有客户端安装自动化Web应用程序的更新过程。因此,如果我们将文件添加到基本Web应用程序,移动文件,创建目录或删除文件或目录,则应在Web应用程序的每个客户端安装上自动(应用于)这些更改。目前我们正处于测试阶段,每次代码更新都会导致使用FTP手动更新每个客户端安装的所有文件,所做的更改越多,此过程所花费的时间就越多,变得越复杂。

是否有可用于自动执行此类流程的工具?或者如果没有,你怎么建议应该接近它?

/
    /clients
        /client1.domain.com
            /[web app subfolders and files...]
        /client2.domain.com
            /[web app subfolders and files...]
        /client3.domain.com
            /[web app subfolders and files...]
    /base_web_app
        /[web app subfolders and files...]

基本上,每次我们对/ base_web_app的内容进行任何更改时,这些更改都应自动应用(同步)到/ clients内的Web应用程序安装(即/client1.domain.com,/ client2)。 domain.com,/ client3.domain.com)。

同样重要的是要注意,我们需要忽略/不覆盖某些文件和/或子文件夹。主要是特定于每个客户端安装的配置文件。

1 个答案:

答案 0 :(得分:1)

查看rsync:http://rsync.samba.org/examples.html这是一个将文件从一个区域同步到另一个区域的工具(比如您的生产区域的临时区域)。您可以使用模式指定要同步的内容和要排除的内容,并且只复制更改的文件。

在您的暂存区域(您要同步的最新更改),您可以执行以下操作:

# sync staging area base_web_app directory to production base_web_app
# this syncs the entire local base_webapp directory to remote /base_webapp
rsync -avRc base_webapp server:/
# sync staging area base_web_app files to clients/client* directories, excluding the config directory
# this syncs the entire base_webapp to each remote client dir, excluding the config dir
rsync -avRc --exclude 'config/*' base_webapp server:/clients/client1.domain.com
rsync -avRc --exclude 'config/*' base_webapp server:/clients/client2.domain.com
rsync -avRc --exclude 'config/*' base_webapp server:/clients/client3.domain.com