一、摘要
公司经常用Gitlab做为代码仓库,这里我也安装下Gitlab,为后面CI/CD集成打下基础,官方安装地址:https://about.gitlab.com/install/#centos-7。不过官网很多人说比较坑,这里就不用官方方法安装了。
二、安装步骤
2.1 yum安装
2.1.1 配置yum源
运行命令:vi /etc/yum.repos.d/gitlab-ce.repo
复制如下内容到gitlab-ce.repo文件中:
[gitlab-ce]
name=Gitlab CE Repository
baseurl=https://mirrors.tuna.tsinghua.edu.cn/gitlab-ce/yum/el$releasever/
gpgcheck=0
enabled=1
按esc,再按:wq保存文件。
2.2.2 更新yum缓存
运行命令:sudo yum makecache
这一步会将yum源里配置的docker-ce安装包下载下来,这里可能会报错,也可能会卡住,只要换个能连接的网速较快的gitlab-ce的yum地址即可。
2.2.3 安装GitLab
运行命令:yum install gitlab-ce
gitlab-ctl reconfigure
2.2 rpm安装
这里采用rpm离线安装方式安装。
2.2.1 下载rpm安装包
下载地址为:https://mirrors.tuna.tsinghua.edu.cn/gitlab-ce/yum/el7/
这里选取版本:gitlab-ce-12.3.5-ce.0.el7.x86_64.rpm,理论应该是越新越好,毕竟越新修复bug多,兼容性也更强,功能更强大,但这里和公司目前的gitlab保持一致,用12.3.5版本。
下载好后,将rpm包复制到linux的/opt/gitlab目录下
2.2.2 安装gitlab-ce依赖
gitlab运行需要依赖policycoreutils-python和openssh-server,所以需要安装并设置自动启动 ,运行命令如下:
yum -y install policycoreutils-python openssh-server
systemctl enable sshd
systemctl start sshd
2.2.3 安装gitlab-ce
运行命令如下:
cd /opt/gitlab
rpm -Uvh gitlab-ce-12.3.5-ce.0.el7.x86_64.rpm
gitlab-ctl reconfigure
三、配置GitLab
3.1 配置文件目录
gitlab默认安装后各目录如下:
gitlab组件日志路径:/var/log/gitlab
gitlab配置路径:/etc/gitlab/ 路径下有gitlab.rb配置文件
应用代码和组件依赖程序:/opt/gitlab
各个组件存储路径: /var/opt/gitlab/
仓库默认存储路径 /var/opt/gitlab/git-data/repositories
版本文件备份路径:/var/opt/gitlab/backups/
nginx安装路径:/var/opt/gitlab/nginx/
redis安装路径:/var/opt/gitlab/redis
3.2 修改配置
3.2.1 修改默认端口
运行命令:vi /etc/gitlab/gitlab.rb,将external_url的地址和端口写成你想要的IP和端口号,如下:
四、启动
启动:gitlab-ctl start(若改了配置需要先运行:gitlab-ctl reconfigure)
重启:gitlab-ctl restart
关闭:gitlab-ctl stop
访问 配置的ip和端口即可。默认配置端口是80,第一次登录需要直接改密码:
五、问题排查
问题一:502 Whoops, GitLab is taking too much time to respond.
这里超时了,即无法获取git服务数据,这里可能是哪个服务因为端口冲突没起来。最容易冲突的是puma或unicorn,后期版本貌似是默认只启用puma。它的端口默认是8080。
gitlab-ctl stop执行后还有别的服务占用8080,如下:
这里就改puma的端口:
再运行:gitlab-ctl stop、gitlab-ctl reconfigure、gitlab-ctl start
启动后要等个1分钟甚至更久,再刷新页面就可以看到登录页了。当然,也可以用gitlab-ctl tail puma看日志或者改动的8081端口有服务占用则就可以刷新页面了。