搭建背景
由于当前公司性质的原因,公司一直在使用SVN的方式进行项目版本控制,但是随着公司项目的日益扩大,进行版本管理也越来越困难,因此公司项目组决定开始使用GIT来进行项目版本控制。因为之前曾就职于一家基金公司,使用过gitlab对项目进行管理,所以有幸主导gitlab的搭建,以方便更好的进行项目的维护。以下是整个搭建过程以及遇到的坑,特此撰文以记之:
提示:本次安装基于CentOS7,Gitlab-10.8.2
安装之前的准备
由于gitlab的安装包下载比较慢,使用git的克隆或wget下载汉化包非常慢,因此建议本地先下载好安装包
安装必要软件
安装Git
监测是否安装过git(若出现版本号,则代表已经安装了git,可跳过git安装,若出现 git: command not found. 则没有安装过)
git --version
由于特殊原因,请先确认linux版本
- cetos5以及以下版本中的yum都没有git,无法使用yum安装
- cetos6可以使用yum安装git,但是安装的git是1.7.1版本的(如果后期还需使用github,则请通过git源码编译的方式安装,因为GitHub需要的git版本最低不低于1.7.2)
- cetos7以及以上版本的,推荐使用yum安装,方便
使用yum方式安装git
yum -y install git
安装unzip,Patch(如果不需要汉化则跳过)
yum -y install zip // 用来压缩文件为zip包
yum -y install unzip // 用来解压zip包
yum -y install patch // 用于修补文件,汉化时用
安装gitlab
安装必须软件
如果后期需要gitlab的邮箱功能,请在安装Gitlab前要先安装postfix,即使不需要也建议执行以下操作(python依赖包为必须)
(以下操作主要安装了ssh服务器[使git能够以ssh方式连接gitlab],postfix,cronie,python依赖包)
yum install curl openssh-server postfix cronie
yum -y install policycoreutils-python // 必须安装该依赖包
下载安装rpm包(该步可通过网盘直接下载然后传到linux上)
wget --content-disposition https://mirrors.tuna.tsinghua.edu.cn/gitlab-ce/yum/el7/gitlab-ce-10.8.2-ce.0.el7.x86_64.rpm/download.rpm
rpm -ivh gitlab-ce-10.8.2-ce.0.el7.x86_64.rpm
如果为centOS6请将上述https地址改为
https://mirrors.tuna.tsinghua.edu.cn/gitlab-ce/yum/el6/gitlab-ce-10.8.2-ce.0.el7.x86_64.rpm/download.rpm
安装完成会出现gitlab的logo,如下图所示
注:安装完成后会出现以上文本,特别注意logo下的提示,即接下来我们只需要按照提示执行即可
GitLab was unable to detect a valid hostname for your instance
Please configure a URL for your GitLab instance by setting `external_url`
configuration in /etc/gitlab/gitlab.rb file.
Then, you can start your GitLab instance by running the following command.
sudo gitlab-ctl reconfigure
GitLab需要为你的实例指定一个有效的hostname,请在/etc/gitlab/gitlab.rb的配置文件中通过设置
external_url 属性的值为你的GitLab设置URL,然后,你可以通过运行以下命令来开启你的GitLab实例
sudo gitlab-ctl reconfigure
- 修改/etc/gitlab/gitlab.rb文件
vi /etc/gitlab/gitlab.rb
- 找到external_url属性(在非编辑状态下可通过 `/ external_url` 的方式直接定位到此属性的位置,然后使用 i 切换为编辑模式,然后修改为自己本机的IP,如果external_url属性前有 # 请先将其去除,也可以复制此行后再做修改)
external_url 'http://192.168.2.222'
- 激活配置并启动GitLab实例(此步首次执行时间较长,在5分钟左右,后续如果变更配置重启,将会变快到1分钟半左右,执行时间可能根据不同机器的配置而有所偏差)
gitlab-ctl reconfigure
-
其他相关命令(上述步骤已经将gitlab实例启动了,以下命令为gitlab的补充命令,无需执行,可直接跳过)
gitlab-ctl status // gitlab各个组件的运行状态
gitlab-ctl stop // 关闭gitlab实例
gitlab-ctl start // 开启gitlab实例
gitlab-ctl restart // 重启gitlab实例
gitlab-ctl reconfigure // 更新gitlab配置并重启
gitlab-ctl tail // gitlab运行过程中的实时log
Web页面进行root用户登录
可通过执行以下命令查看当前的GitLab实例的版本
cat /opt/gitlab/embedded/service/gitlab-rails/VERSION
- gitlab 8.8版本之前默认账号 root 密码 5iveL!fe
- gitlab 8.9之后登录web界面会要求更改密码,注意密码最少8位!!(此次安装的是10.8.2)
如忘记密码可在gitlab数据库修改密码文档链接:https://blog.csdn.net/qq_40025218/article/details/81363126
此处如果是502,则请先多刷新几次,如果一直是502,则请通过 gitlab-ctl tail 命令查看错误日志或进行卸载重装
注:如果安装GitLab出现ruby_block[supervise_redis_sleep] action run
一般出现在卸载gitlab然后再次安装执行sudo gitlab-ctl reconfigure的时候往往会出现:ruby_block[supervise_redis_sleep] action run,会一直卡无法往下进行!
解决方案:
- 按住CTRL+C强制结束;
- 运行:sudo systemctl restart gitlab-runsvdir;
- 再次执行:sudo gitlab-ctl reconfigure
注:有可能因为某些误操作导致页面出现502,而不是登录页面,则需要卸载,卸载参考 卸载gitlab 章节
汉化gitlab
获取gitlab汉化包
可以使用git clone的方式或通过wget下载或通过本地下载再上传到服务器
git clone https://gitlab.com/xhang/gitlab.git
wget https://gitlab.com/xhang/gitlab/-/archive/10-8-stable-zh/10-8-stable-zh.tar.gz
对比文件并汉化
如果是wget下载的压缩包或上传的压缩包,请提前解压好,然后使用git生成.diff文件
cd gitlab // 先进入gitlab目录
git diff v10.8.2 v10.8.2-zh > ../v10.8.2-zh.diff
将刚才的diff文件做为补丁导入到gitlab中(此步如果卡住或询问是否覆盖一路回车跳过即可!)
patch -d /opt/gitlab/embedded/service/gitlab-rails -p1 < ../v10.8.2-zh.diff
启动并重新配置
gitlab-ctl start
gitlab-ctl reconfigure // 若访问web出现502,先多刷新几次,如果不行,可重新执行此命令再访问
卸载gitlab
- 停止gitlab
gitlab-ctl stop
- 卸载gitlab
rpm -e gitlab-ce
- 查看gitlab进程,如果有一大堆则证明还存在gitlab进程,如果没有则跳过杀进程的步骤
ps aux | grep gitlab
- 杀进程
kill -9 9763 // 9763为gitlab的进程号(出现很多.的那个进程)
如果执行杀死进程后,使用 ps aux | grep gitlab 还有进程请用以下命令杀死所有进程
ps -ef | grep gitlab | xargs kill -s 9
-
删除所有包含gitlab文件
find / -name gitlab | xargs rm -rf