良心教程!手把手教你在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
![官网帮助文档页面](https://i-blog.csdnimg.cn/blog_migrate/09d123ec1b1aeafe01e40cfce56e1989.png)
3.2 使用远程工具(Putty
、Xshell
等)登录到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
最后一行即为临时密码:
3.6.2 为ROOT用户重置密码
- 在终端输入以下命令进入控制台对话框
sudo gitlab-rails console
你将进入以下命令窗口:
-
输入以下命令查找到
root
用户,并将root
用户的信息赋值给user
变量(root
用户的ID为1
)user=User.find(1)
-
分别输入以下命令为
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
查找其配置信息所在位置,按箭头将光标移动到想要修改的位置,按下i
或a
键进入编辑模式
,将安装时使用的https://gitlab.example.com
替换为你想使用的URL。由于我的服务器没有绑定域名且没有进行数字签名证书认证(不能使用https),直接使用http://公网IP:端口号
的形式进行配置,如http://192.168.0.14:8888
修改完毕后,按下esc
键,输入wq!
即可保存并退出。
3.7.3 重置并重启Gitlab
上述External URL
修改完毕后一定要重置和重启Gitlab
# 重置Gitlab,过程较长,需耐心等待
gitlab-ctl reconfigure
# 重启Gitlab
gitlab-ctl restart
3.8 访问Gitlab
在其他电脑的浏览器地址栏输入在步骤3.7
中External URL
即可访问到自己搭建的Gitlab
服务器,root
用户拥有最高权限,使用root
用户登录后可进行 项目管理,用户管理,权限配置等操作。
可将此链接发给团队成员,每人注册了账号后,即可属于自己的repository,也可以在管理员的管控下,参与团队共享的repository。
一起进行协同开发、版本控制吧!
更多强大功能待你发掘!
篇幅有限,无法覆盖所有可能遇到的问题,如遇到困难,欢迎留言或私信交流,记得加个关注呦!