vlambda博客
学习文章列表

Centos中Gitlab的安装与调试

跟老赵头儿学网络维护




本文刊发于《网络安全和信息化》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  #退出


Centos中Gitlab的安装与调试

图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