我们有一个运行在虚拟机中的gitlab实例。每当我需要更新gitlab和它的ubuntu系统时,我都会制作vm的快照,执行更新,并检查是否一切正常。
偶尔会出现问题:更新期间磁盘空间不足,等等。如果发生这种情况,我只需还原虚拟机的快照,一切都与以前一样,我可以再试一次。
不幸的是,gitlab需要一个正在运行的实例来更新。所以,如果我
sudo gitlab-ctl stop
在更新之前,更新将失败。这意味着用户可以在更新过程中登录到系统。更糟糕的是,如果我碰巧遇到问题,不得不返回快照,在这段时间内gitlab上完成的所有工作都将丢失(对合并请求、推送等的评论)。
我使用gitlab的通知消息,这些消息出现在gitlab的每一页以及服务器响应中
git push
命令。然而,它们却被用户广泛忽视。
所以问题是:
-
更新gitlab而不丢失数据的最佳策略是什么?
-
如何防止用户在维护期间使用gitlab?