# 良心教程!手把手教你在Linux服务器搭建Gitlab实现团队专属的私有项目版本控制平台

良心教程!手把手教你在Linux服务器搭建Gitlab实现团队专属的私有项目版本控制平台

1. Gitlab和Github的区别

Gitlab是一个开源的git仓库管理软件,并提供web界面,方便管理git仓库。和Github很相似,不过Github暂时没有开源版本,项目必须托管到Github官方网站,不能本地部署。很多公司考虑到安全费用等因素,搭建自己的Gitlab服务器。

1.1 GitHub如果使用私有仓库,是需要付费的,GitLab可以在自己的服务器上搭建私人的免费仓库

1.2 GitLab让开发团队对他们的代码仓库拥有更多的控制,相对于GitHub,它有不少的特色:

  • 允许免费设置仓库权限

  • 允许用户选择分享一个project的部分代码

  • 允许用户设置project的获取权限,进一步提升安全性

  • 可以设置获取到团队整体的改进进度

  • 通过innersourcing让不在权限范围内的人访问不到该资源

2. 服务器及安装前准备

  • 服务器版本:CentOS 7
  • 将官网文档作为安装指导:https://about.gitlab.com/install/

3. 开始安装

3.1 点击上一步的官网链接选择自己的Linux系统版本,点击 install instructions官网帮助文档页面

3.2 使用远程工具(PuttyXshell等)登录到Linux服务器,使用su root命令切换至root用户,参考指导文档,将下述命令copy至终端运行为正式安装做准备

sudo yum install -y curl policycoreutils-python openssh-server perl
# Enable OpenSSH server daemon if not enabled: sudo systemctl status sshd
sudo systemctl enable sshd
sudo systemctl start sshd

# Check if opening the firewall is needed with: sudo systemctl status firewalld
sudo firewall-cmd --permanent --add-service=http
sudo firewall-cmd --permanent --add-service=https
sudo systemctl reload firewalld

3.3 copy以下命令至终端运行,此步是为Gitlab Server向用户发邮件做准备

sudo yum install postfix
sudo systemctl enable postfix
sudo systemctl start postfix

3.4 添加Gitlab Package源

curl https://packages.gitlab.com/install/repositories/gitlab/gitlab-ee/script.rpm.sh | sudo bash

如果你有更快的源可以推荐,则替换掉上述的URL即可

3.5 正式开始安装Gitlab服务

在终端运行以下命令

sudo EXTERNAL_URL="https://gitlab.example.com" yum install -y gitlab-ee

命令讲解:

  • EXTERNALURL意为外部访问链接,该命令中表示待Gitlab安装完毕后,可在浏览器输入https://gitlab.example.com远程访问服务器并进行注册、登录、创建project等操作。该链接可在安装完毕后,通过配置文件进行更改。
  • 通过该命令安装完成后,没有为自动创建的root管理员账户设置密码,但会生成一个临时密码

3.6 ROOT用户密码相关问题

3.6.1 查看系统为root用户自动生成的临时密码

cat /etc/gitlab/initial_root_password

最后一行即为临时密码:
ROOT用户临时密码

3.6.2 为ROOT用户重置密码

  1. 在终端输入以下命令进入控制台对话框
sudo gitlab-rails console

你将进入以下命令窗口:

控制台对话

  1. 输入以下命令查找到root用户,并将root用户的信息赋值给user变量(root用户的ID为1

    user=User.find(1)
    
  2. 分别输入以下命令为root用户重置密码,默认密码长度不能小于8位,且需要用双引号""将密码括起来,切记不可使用单引号''(官网文档上使用的是单引号,但不知为啥我使用单引号设置的密码登录系统时依然显示密码错误)!

    user.password="12345678"
    user.password_confirmation="12345678"
    user.save!
    exit
    

    save后面的感叹号不可省略!

3.7 修改外部访问链接

3.7.1 修改链接前先准备一个没有被占用的端口号,例如,使用以下命令检查8888端口是否被占用,且保证防火墙未将此端口屏蔽

netstat -nap | grep 8888

若该端口号未被占用,则不会输出任何信息

端口未被占用时无输出结果

若端口号被占用,则会输出占用该端口的服务信息,如:

端口被占用时输出服务信息

3.7.2 输入以下命令打开Gitlab配置文件

vi /etc/gitlab/gitlab.rb

在命令模式下输入/external_url查找其配置信息所在位置,按箭头将光标移动到想要修改的位置,按下ia键进入编辑模式,将安装时使用的https://gitlab.example.com替换为你想使用的URL。由于我的服务器没有绑定域名且没有进行数字签名证书认证(不能使用https),直接使用http://公网IP:端口号的形式进行配置,如http://192.168.0.14:8888

修改external url

修改完毕后,按下esc键,输入wq!即可保存并退出。

3.7.3 重置并重启Gitlab

上述External URL修改完毕后一定要重置和重启Gitlab

# 重置Gitlab,过程较长,需耐心等待
gitlab-ctl reconfigure
# 重启Gitlab
gitlab-ctl restart

3.8 访问Gitlab

在其他电脑的浏览器地址栏输入在步骤3.7External URL即可访问到自己搭建的Gitlab服务器,root用户拥有最高权限,使用root用户登录后可进行 项目管理,用户管理,权限配置等操作。

可将此链接发给团队成员,每人注册了账号后,即可属于自己的repository,也可以在管理员的管控下,参与团队共享的repository。

自己搭建的Gitlab登录页面

一起进行协同开发、版本控制吧!

更多强大功能待你发掘!

篇幅有限,无法覆盖所有可能遇到的问题,如遇到困难,欢迎留言或私信交流,记得加个关注呦!


版权声明:本文为Roach007原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接和本声明。