【问题标题】:Tracking deployed application's files跟踪已部署应用程序的文件
【发布时间】:2010-10-05 13:15:41
【问题描述】:

你们在生产中使用什么来部署、应用和跟踪他们的文件?我的意思是跟踪文件是否没有直接在服务器中更改?

谢谢

【问题讨论】:

  • 您是否需要查明文件是否在生产中发生了更改或给定文件集的原始来源?
  • 我需要知道是否在正式部署过程之外更改了某些文件。例如:如果使用 RPM 部署软件可以检查在安装 RPM 后部署的文件是否被更改。

标签: git deployment rpm


【解决方案1】:

我已经使用 Git 3 年来跟踪 HPC 生产集群上的 /usr/local。

对于 2.2G(主要是二进制文件),运行 git log -n 1; git status(通过 NFS!)需要 1 分钟来说服自己文件在部署后没有被修改。在本地磁盘上,扫描需要几秒钟。如果确实发生了更改,我会查看哪些文件和差异(如果它不是二进制文件)。

【讨论】:

  • +1。我当时并不认为 Git 是一个有效的解决方案,但您可以在 serverfault.com/questions/3852/… 看到替代方案讨论,并且顶级解决方案之一(etckeeper joey.kitenet.net/code/etckeeper)基于 dvcs。所以只要你不滥用它(例如部署),它似乎是一个很好的解决方案。
【解决方案2】:

不会通过服务器上的 VCS 跟踪这些文件。
通常(除了简单的 webapp 部署),除了运行应用程序实际需要的工具(即:当然不是 VCS)之外,生产服务器上没有任何“不必要的”工具。

在预生产环境之前,版本控制系统一直存在,供您获取要部署的特定标签。
但是一旦使用该标签来获取您的文件,就会发生部署过程:

  • 将通用配置文件中的变量替换为特定于生产的值
  • 停止生产过程
  • 将文件复制并部署到生产服务器上
  • 重启
  • 监控...

所以我会设置一个外部(即不直接由 VCS 管理)作业来比较版本化文件和相应的部署文件。

【讨论】:

  • 如何部署二进制文件(WAR、EAR、本机)?
  • @HGF:这些文件无论如何都不在 VCS 中,而是通过发布和部署管理流程生成/部署的。监控其完整性的系统(即“它们是否在服务器上被更改?”)可能会将这些文件的 SHA1/MD5 密钥与服务器上发布的文件和 Nexus 等工件存储库进行比较,其中所述二进制文件可以是存储和引用(使用存储时自动生成的 SHA1/MD5 密钥)。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2015-04-13
  • 1970-01-01
  • 2012-11-09
  • 2013-02-08
  • 1970-01-01
  • 1970-01-01
  • 2022-01-17
相关资源
最近更新 更多