Gitlab的搭建

GitLab是利用 Ruby on Rails 一个开源的版本管理系统,实现一个自托管的Git项目仓库,可通过Web界面进行访问公开的或者私人项目。它拥有与Github类似的功能,能够浏览源代码,管理缺陷和注释。可以管理团队对仓库的访问,它非常易于浏览提交过的版本并提供一个文件历史库。团队成员可以利用内置的简单聊天程序(Wall)进行交流。它还提供一个代码片段收集功能可以轻松实现代码复用,便于日后有需要的时候进行查找。

  • 社区版基于MIT license开源完全免费
  • 无用户,协作和仓库限制
  • 保护你的源码安全
  • 管理仓库,用户与访问权限

环境准备

gitlab接触了一段时间,觉得是一个很不错的开源产品(gitlab的社区版),值得我整理一篇部署教程作为记录。

安装全程选择的用户为root。

操作系统:centos7(minimal,www.centos.org下载的包是CentOS-7-x86_64-Minimal-1708.iso)

更换阿里yum

​ 1)下载wget

1
yum install -y wget

​ 2)备份默认的yum

1
mv /etc/yum.repos.d /etc/yum.repos.d.backup

​ 3)设置新的yum目录

1
mkdir /etc/yum.repos.d

​ 4)下载阿里yum配置到该目录中

1
wget -O /etc/yum.repos.d/CentOS-Base.repo http://mirrors.aliyun.com/repo/Centos-7.repo

​ 5)重建缓存

1
2
yum clean all
yum makecache

​ 6)升级所有包(改变软件设置和系统设置,系统版本内核都升级,故需要几分钟耐心等待)

1
yum update -y

安装vim

1
yum install -y vim

获取gitlab汉化包

要部署非汉化版,可以跳过这一块内容

说明:gitlab中文社区版的项目,v7-v8.8是由Larry Li发起的“GitLab 中文社区版项目”(https://gitlab.com/larryli/gitlab),从 v8.9 之后,@xhang 开始继续该汉化项目(https://gitlab.com/xhang/gitlab)。

1) 安装git

1
yum install -y git

2)克隆获取汉化版本库

下载最新的汉化包

1
git clone https://gitlab.com/xhang/gitlab.git

如果是要下载老版本的汉化包,需要加上老版本的分支,比如今天已经是10.0.4,我依旧想下载10.0.2,可以运行下面的语句

1
git clone https://gitlab.com/xhang/gitlab.git -b v10.0.2-zh

3) 查看该汉化补丁的版本

1
cat gitlab/VERSION

部署社区版gitlab

1) 安装gitlab的依赖项

1
yum install -y curl openssh-server openssh-clients postfix cronie policycoreutils-python

2) 启动postfix,并设置为开机启动

1
2
systemctl start postfix
systemctl enable postfix

3) 设置防火墙

1
2
firewall-cmd --add-service=http --permanent
firewall-cmd --reload

4) 获取gitlab的rpm包

途径1:通过清华开源镜像站

获取rpm包

1
wget https://mirrors.tuna.tsinghua.edu.cn/gitlab-ce/yum/el7/gitlab-ce-10.0.2-ce.0.el7.x86_64.rpm

途径2:从官方获取RPM包后上传到/root目录下

官方下载:https://packages.gitlab.com/gitlab/gitlab-ce/

5) 安装rpm包

1
rpm -i gitlab-ce-10.0.2-ce.0.el7.x86_64.rpm

根据提示,继续执行指令配置gitlab。

1
gitlab-ctl reconfigure

6) 修改配置文件gitlab.rb

1
vim /etc/gitlab/gitlab.rb

将external_url变量的地址修改为gitlab所在centos的ip地址。

1
external_url 'http://192.168.9.100'

因为修改了配置文件,故需要重新加载配置内容。

1
2
gitlab-ctl reconfigure
gitlab-ctl restart

查看gitlab版本

1
head -1 /opt/gitlab/version-manifest.txt

覆盖汉化包

1) 停止gitlab服务

1
gitlab-ctl stop

2) 切换到gitlab汉化包所在的目录 (即步骤二获取的汉化版gitlab)

1
cd /root/gitlab

3) 比较汉化标签和原标签,导出 patch 用的 diff 文件到/root下

1
git diff v10.0.2 v10.0.2-zh > ../10.0.2-zh.diff

4) 回到/root目录

1
cd

5) 将10.0.2-zh.diff作为补丁更新到gitlab中

1
2
yum install patch -y
patch -d /opt/gitlab/embedded/service/gitlab-rails -p1 < 10.0.2-zh.diff

6) 启动gitlab

1
gitlab-ctl start

7) 重新配置gitlab

1
gitlab-ctl reconfigure

设置管理员密码

管理员账号登录的用户名:root

(虽然登录后管理员的用户名为Administrator,但是实际登录的用户名是root)

方法一:网页方式

浏览器访问gitlab所在的ip,输入密码后点击 “Change your password”(如果进行汉化,点击“修改密码”)。

方法二:指令方式

1
gitlab-rails console production

稍等一会后会出现

1
2
3
4
irb(main):001:0> user = User.where(id: 1).first     // id为1的是超级管理员
irb(main):002:0>user.password = 'yourpassword' // 密码必须至少8个字符
irb(main):003:0>user.save! // 如没有问题 返回true
exit // 退出
# Git
Your browser is out-of-date!

Update your browser to view this website correctly. Update my browser now

×