好长时间没写博客了,之前因为一些事情忙着没写,但我还是感觉博客要经常去写,不然确实会忘记当初解决问题的细节。

gitlab安装后无法访问 gitlab无法启动_重启


首先说明一下,本篇博客所遇到的问题是由于Ucloud磁盘扩容而导致的部署在服务器上的GitLab服务运行异常,为节省大家时间,着急的朋友直接到文章最后查看解决方案即可。



实验室目前是有阿里云、Ucloud以及腾讯云相关资源,这些云产品自己也都是用过,其中我个人感觉还是阿里云的产品更稳定一些,并且拓展性也是更好一些。因为之前在使用Ucloud的资源时可能突然会出现ssh远程连接服务器失败的情况,虽然这种情况出现的不多,但是哪怕只是出现一次还是挺难受的。言归正传,之前实验室在Ucloud服务器上部署了GitLab服务,但是某天突然发现GitLab代码仓库打不开了,(不是域名过期的问题;也不是内网可以访问但是外网访问不了的问题),就是单纯地 “服务器上的GitLab服务异常"的问题。


gitlab安装后无法访问 gitlab无法启动_gitlab_02

当然,遇到这个问题我首先所要做的就是"登录服务器"——“查看GitLab服务”,这是一个正常的故障排查思路。但是就在这个时候“登录服务器”出现了问题,即使用ssh连接服务器报错,我之前也是遇到过类似的问题,比如Linux服务器的系统盘或者cpu占用过高的话,将会出现"服务器连接失败"的情况。我登录了Ucloud控制台看了一下,果不其然,系统盘负载过高。




gitlab安装后无法访问 gitlab无法启动_重启_03



我之前是遇到过因Linux服务器系统负载过高或者服务器相关资源负载过高而导致的问题,之前使用过两种解决方式。


1、等待Linux服务器。有的时候等一段时间,Linux服务器就可以远程连接上去了,我个人感觉应该是Linux服务器内部进行了相关释放负载的操作。


2、登录阿里云服务器或者Ucloud服务器的控制台进行相关负载的释放或者升级相关资源配置,比如可以升级系统盘空间或者内存资源等。


这里需要说明一下不同公有云厂商的磁盘扩容策略略有差异,比如,对于阿里云服务器是支持在线扩容磁盘的,


gitlab安装后无法访问 gitlab无法启动_gitlab安装后无法访问_04



而Ucloud服务器则不支持磁盘的在线扩容,必须是关闭服务器主机,才能进行磁盘的扩容。


gitlab安装后无法访问 gitlab无法启动_linux_05


其实Ucloud的这种"关闭Linux服务器 -> 扩容磁盘"是有一定问题的,因为可能Linux服务器正在运行相关服务,那么这个时候关闭服务器就可能会导致服务的中断。所以,相比之下还是阿里云的"支持磁盘在线扩容"更加人性化一些。



注意,在这里我想强调一下,无论是哪一种磁盘扩容方式,无论是"在线硬盘扩容"还是"关闭服务器扩容硬盘",都建议先对磁盘进行 "磁盘快照",或者进行系统盘、数据盘的备份,以避免磁盘扩容过程中磁盘数据的丢失。(当然,了解docker的朋友对服务器或者磁盘制作备份镜像也是可以的。) 在这里简单介绍一下,阿里云与Ucloud上关于如何创建实例快照,或者如何创建磁盘快照?


阿里云下的实例快照创建,首先进入阿里云的ECS控制台,选择“更多”选项,

gitlab安装后无法访问 gitlab无法启动_重启_06


然后就可以找到Linux实例快照的创建了。


gitlab安装后无法访问 gitlab无法启动_gitlab_07


Ucloud下的磁盘快照创建,和阿里云类似,我们也需要首先进入Ucloud中ECS的控制台,进入服务器实例的详情页面,

gitlab安装后无法访问 gitlab无法启动_服务器_08


进入"磁盘与恢复"页面,注意要开启"数据方舟"功能("数据方舟"是Ucloud的数据备份服务,"数据方舟"服务怎么开启此处不再赘述。)然后我们就可以进入"数据方舟"进行数据盘或者系统盘的备份了。


gitlab安装后无法访问 gitlab无法启动_linux_09


这里我们就可以根据根据自己的需要进行磁盘的备份了,



gitlab安装后无法访问 gitlab无法启动_重启_10

到这里,大家应该就了解了如何在扩容磁盘之前对磁盘或者服务器实例进行相关备份。


赶时间的朋友直接看接下来的解决方案就可以了哦~


回到之前的话题,为什么Ucloud服务器上的GitLab服务在服务器进行磁盘扩容之后服务就出现了问题呢?我这里说一下解决方法吧,如果大家在启动或者重启GitLab服务的时候可以参考一下我的这个解决方案。


解决方案: 重启服务器后,使用gitlab-ctl reconfigure+gitlab-ctl restart启动GitLab服务。


在这里我 解释一下,因为GitLab服务部署在ucloud服务器上,而ucloud服务器上的磁盘扩容是要重启服务器的,那么这就有可能导致运行GitLab所需的一些配置文件被清除了。所以重启ucloud服务器之后,应该在服务器中使用 gitlab-ctl reconfigure命令更新一下GitLab的一些配置文件,这会生成一些因为重启服务器而导致缺失的GitLab配置文件;然后使用命令 gitlab-ctl restart重启GitLab服务就好了。



问题:如果在重启ucloud服务器之后不执行命令 gitlab-ctl reconfigure,即重启服务器之后立即执行 gitlab-ctl restart重启GitLab服务, 那么会导致很多GitLab的服务处于Want up状态,相关服务起不来。


原因: 其实这是很多博客对于GitLab中的 gitlab-ctl reconfigure命令理解有偏差或者没有正确使用,才使得大家对于 gitlab-ctl reconfigure这个命令的认知出现了偏差。这个命令可不是大多数博主所认为的"恢复GitLab的原始配置,导致自己对GitLab所进行的各种更改消失"。


解决方案:大家可以参考一篇文章

linux搭建gitlab服务器,详细步骤,该文章中对于GitLab的相关解释还是不错的,但是其中对于gitlab-ctl reconfigure命令的解释存在问题,我也是在评论区进行了相关解释。大家可以参考一下。

gitlab安装后无法访问 gitlab无法启动_gitlab_11

当大家对于某些工具或者组件的概念不清楚的时候,最正确的方法就是去官网查看官方文档的解读,因为很多组件的官方文档都是英文的,这样有些人在使用该组件的时候可能会对文档中的相关内容进行中文翻译,这就可能会造成"翻译的意思"与"组件的本义"存在偏差,所以建议大家查询官方英文文档。