我们有一个网络应用程序。我们的每个客户都在我们的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)。
同样重要的是要注意,我们需要忽略/不覆盖某些文件和/或子文件夹。主要是特定于每个客户端安装的配置文件。
答案 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