gpt4 book ai didi

linux - Git 部署回滚工作流程

转载 作者:太空狗 更新时间:2023-10-29 12:05:05 25 4
gpt4 key购买 nike

越来越多的服务器端文件部署是使用 git 处理的。这很好,并且有很多指南可以帮助您使用 git、rsync 和其他工具设置部署工作流。

但是,我想问一下设置部署回滚的最干净的方法是什么

  • 每次部署时,您都会记录部署前的最新状态(无需手动读取日志来查找提交)

  • 在案例部署中使用哪些 git 命令回滚到先前(记录的)状态会产生不可预见的后果

问题的范围是 Linux 服务器、shell 脚本和命令行 git。

最佳答案

请注意,这个问题没有通用的解决方案。我会提出两种解决方案。

第一个需要使用 Fabric 并深入思考如何处理整个部署过程。对于我维护的 Django 站点,我编写了一个在每个 git commit 上部署暂存的结构脚本。从暂存部署到生产是一个简单的结构命令,它将所有文件复制到一个新文件夹(将版本递增 1),例如从 production/v55/到 production/v56/(好吧,它也做备份和运行迁移).如果出现任何问题,rollback 命令会恢复备份,并从文件夹 production/v55 启动生产环境。少说话,多代码:https://github.com/kiberpipa/Intranet/blob/master/fabfile.py

第二个选项需要更多阅读并且具有更大的学习曲线,但也提供了更清晰的解决方案。正如列宁建议使用具有声明式配置的框架,我建议更进一步学习具有声明式配置的 Linux 发行版 - http://nixos.org/ . NixOS 内置了分布式软件部署(包括回滚)功能以及从您的机器部署内容的工具 https://github.com/NixOS/nixops .另请参阅有关分布式软件部署 的论文,其中还涵盖了您的问题(作为更大问题的一部分):http://www.st.ewi.tudelft.nl/~sander/index.php/phdthesis

关于linux - Git 部署回滚工作流程,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17007933/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com