![使用操作系统包管理(deb、rpm)管理 Web 应用程序部署时,最佳实践或缺陷是什么?](https://linux22.com/image/548055/%E4%BD%BF%E7%94%A8%E6%93%8D%E4%BD%9C%E7%B3%BB%E7%BB%9F%E5%8C%85%E7%AE%A1%E7%90%86%EF%BC%88deb%E3%80%81rpm%EF%BC%89%E7%AE%A1%E7%90%86%20Web%20%E5%BA%94%E7%94%A8%E7%A8%8B%E5%BA%8F%E9%83%A8%E7%BD%B2%E6%97%B6%EF%BC%8C%E6%9C%80%E4%BD%B3%E5%AE%9E%E8%B7%B5%E6%88%96%E7%BC%BA%E9%99%B7%E6%98%AF%E4%BB%80%E4%B9%88%EF%BC%9F.png)
我在周末的一次谈话中听说了这一点,这听起来是个好主意,原因如下:
- 确保依赖关系得到满足且没有被破坏(例如,Web 应用程序需要特定版本的 imagemagick)
- 帮助快速启动新服务器
- 与操作系统包的一致性和易于部署
- (可能)使配置与代码一起更新,以便对 apache、php 等配置的更改与代码依赖关系保持最新。我知道这是一个灰色区域,因为它进入了配置管理。
答案1
它没有任何问题。它肯定比默认的要好。太多人只是从每个服务器上的版本控制中签出。然而,它不如为 Web 部署制作的程序好。我个人喜欢使用 chef 和部署资源。
部署资源会从 svn 或 git 签出到新目录,符号链接配置文件,然后更改您的网络服务器用于指向那里的符号链接。这意味着,如果您需要,回滚就像更改食谱一样简单。然后 chef 只需更改符号链接即可。
这确实完全是主观的。Chef 确实有一个学习曲线,但它简化了许多管理任务。它还使“启动服务器”、管理依赖项和保持配置文件更新变得容易。它允许您将包管理、配置管理和系统管理结合到一个地方。
编辑:添加了有关厨师的更多信息