本文刊发于《网络安全和信息化》2021年第1期
GitLab 是一个用于仓库管理系统的开源项目,使用Git作为代码管理工具,并在此基础上搭建起来的web服务。它拥有与Github类似的功能,是分享开源项目的平台,为开发团队提供了存储、分享、发布和合作开发项目的中心化云存储的场所。它能够浏览源代码,管理缺陷和注释,可以管理团队对仓库的访问,它非常易于浏览提交过的版本并提供一个文件历史库,它还提供一个代码片段收集功能可以轻松实现代码复用,便于日后有需要的时候进行查找。最重要的是GitLab是完全免费的。
一、安装方式,在Centos中安装GitLab有两种方式可选。
1、yum安装方式
# yum -y update #最好先更新一下
# yum install -y gitlab-ce-12.3.5 #yum安装12.3.5版本
2、rpm安装方式
# cd /usr/local/src
# wget https://mirrors.tuna.tsinghua.edu.cn/gitlab-ce/yum/el7/gitlab-ce-12.3.5-ce.0.el7.x86_64.rpm
# rpm -ivhgitlab-ce-12.3.5-ce.0.el7.x86_64.rpm --nodeps –force #12.3.5为版本号,可按实际情况进行指定
二、汉化与调试
1、汉化
# cd /usr/local/src
# git clone https://gitlab.com/xhang/gitlab.git -b v12.3.5-zh
# cd gitlab
# git diff v12.3.5 v12.3.5-zh > ../12.3.5-zh.diff
# cd ../
# patch -d /opt/gitlab/embedded/service/gitlab-rails -p1 < 12.3.5-zh.diff
2、修改文件 /etc/gitlab/gitlab.rb 中的内容。
external_url'http://gitlab.qhdedu.net:8897' #域名要写成你的域名,端口可以自定义,但要注意不能被其他程序占用
3、修改nginx中对应的配置文件,如/usr/local/nginx/conf/vhost 中的gitlab.qhdedu.net.conf ,在相应位置加入以下内容:
root/opt/gitlab/embedded/service/gitlab-rails/public;
location / {
proxy_pass http://127.0.0.1:8897;
}
4、编译与启动
# gitlab-ctl reconfigure # 重新编译gitlab的配置,可能时间会稍长一些
# gitlab-ctl start # 启动所有 gitlab 组件
如果在编译时卡住或报错,可以尝试以下命令:
# gitlab-ctl stop
# chmod 755 /var/opt/gitlab/postgresql #甚至可以赋权777
# systemctl restart gitlab-runsvdir
# gitlab-ctl reconfigure # 再重新编译
5、访问:
三、相关问题
1、如果在yum安装时,提示没有可用的安装包,应该手工建立一个源文件 /etc/yum.repos.d/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
3、如果想更换端口,则直接去修改 /etc/gitlab/gitlab.rb 的external_url 'http://gitlab.qhdedu.net:8897' 这句中的端口号,先停止服务,然后再执行编译及启动命令:
# gitlab-ctl stop
# gitlab-ctl reconfigure
# gitlab-ctl start
4、如果忘记管理员root的密码或密码错误,就要使用控制台方式进行修改。
# gitlab-rails console #进入控制台时可能会有几秒的启动时间,进入后即可在提示符后输入以下命令:
=> user = User.where(id: 1).first #根据其ID定位帐户
=> user.password = 12345678 #密码为12345678,密码须为数字
=> user.password_confirmation=12345678 #确认密码
=> user.save! #保存
=> quit #退出
图1 修改root账户的密码
5、关闭与打开注册或登录界面
首先进入psql控制台,并选择gitlab的数据库。
# sudo -u gitlab-psql/opt/gitlab/embedded/bin/psql -h /var/opt/gitlab/postgresql -dgitlabhq_production
> UPDATE application_settingsset signup_enabled=false; #关闭注册界面,如果值设置为true,则为打开注册界面即允许用户注册
> q # 退出控制台
在这里需要强调的是,新版本的gitlab中打开与关闭登录界面的设置与之前的版本不同:
> UPDATE application_settingsset password_authentication_enabled_for_web =true; #打开登录
> UPDATE application_settingsset password_authentication_enabled_for_web =false; #关闭登录
图2 打开注册界面
6、相关命令:
# gitlab-ctl start # 启动所有 gitlab 组件;
# gitlab-ctl stop # 停止所有 gitlab 组件;
# gitlab-ctl restart # 重启所有 gitlab 组件;
# gitlab-ctl status # 查看服务状态;
# vim /etc/gitlab/gitlab.rb # 修改gitlab配置文件;
# gitlab-ctl reconfigure # 重新编译gitlab的配置;
# gitlab-rake gitlab:check SANITIZE=true --trace # 检查gitlab;
# gitlab-ctl tail # 查看日志;
# gitlab-ctl tail nginx/gitlab_access.log