一、简介
GitLab是利用 Ruby on Rails 一个开源的版本管理系统,实现一个自托管的Git项目仓库,可通过Web界面进行访问公开的或者私人项目。它拥有与Github类似的功能,能够浏览源代码,管理缺陷和注释。可以管理团队对仓库的访问,它非常易于浏览提交过的版本并提供一个文件历史库。团队成员可以利用内置的简单聊天程序(Wall)进行交流。它还提供一个代码片段收集功能可以轻松实现代码复用,便于日后有需要的时候进行查找。
二、GitLab和GitHub的区别
相同点:
两个都是基于web的Git仓库,而且GitLab在使用方式上和GitHub基本上是一样的,都提供了存储、分享、发布和合作开发项目的中心化云存储场所。
不同点:
GitHUb同时提供公共仓库和私有仓库,但如果需要使用私有仓库,是需要收费的.GitLab让开发团队对他们的代码仓库拥有更多的控制,相比于GitHub,它有不少的特色:
允许免费设置仓库权限;允许用户选择分享一个project的部分代码;允许用户设置project的获取权限,进一步的提升安全性;可以设置获取到团队整体的改进进度;通过innersourcing让不在权限范围内的人访问不到该资源。
从代码私有性方面来看,有时公司并不希望员工获取到全部的代码,这个时候GitLab无疑是更好的选择。但对于开源项目而言,GitHub依然是代码托管的首选。
三、安装GitLab
我们是基于CentOS7来搭建的,所以同学们先准备好CentOS的环境,能上网就可以了.
其实安装步骤在GitLab的官网上都有很详细的介绍,同学们可以到官网按照这步骤来实现就可以了。
附上官网安装地址:https://about.gitlab.com/install/#centos-7
四、安装并配置必要的依赖项,开始操作
在CentOS系统上安装所需的依赖:ssh,防火墙,postfix(用于邮件通知) ,wget,以下这些命令也会打开系统防火墙中的HTTP和SSH端口访问。
1.安装ssh
sudo yum install -y curl policycoreutils-pythonopenssh-server
2.将SSH服务设置成开机自启动
sudo systemctl enable sshd
3.启动SSH服务
sudo systemctl start sshd
4.安装防火墙(如果已经安装了防火墙并且已经在运行状态,请跳过)
yum install firewalld systemd -y
5.开启防火墙
service firewalld start
6.添加http服务到firewalld,pemmanent表示永久生效,若不加--permanent系统下次启动后就会失效。
sudo firewall-cmd --permanent --add-service=http
7.重启防火墙
sudo systemctl reload firewalld
8.接下来,安装Postfix以发送通知邮件
sudo yum install postfix
9.将postfix服务设置成开机自启动
sudo systemctl enable postfix
10.启动postfix
sudo systemctl start postfix
若启动失败出现如下错误,请看下方解决方法或参考最底下参考链接一
解决办法:
修改 /etc/postfix/main.cf 文件中以下配置 ?????????
inet_protocols = ipv4 【注:我文件中显示的这一行是 inet_protocols = all , 所以我只改了下面一行的?】
inet_interfaces = all
11.安装wget (如已安装,请跳过)
yum -y install wget
12.安装vim编辑器(如已安装,请跳过)
yum install vim -y
13.下载GitLab镜像
wget https://mirrors.tuna.tsinghua.edu.cn/gitlab-ce/yum/el7/gitlab-ce-10.0.0-ce.0.el7.x86_64.rpm
14.安装GitLab
rpm -i gitlab-ce-10.0.0-ce.0.el7.x86_64.rpm
若失败且出现如下错误,请看下方解决方法或参考最底下参考链接二
解决方法:执行下方命令,后重新运行步骤14 rpm -i gitlab-ce-10.0.0-ce.0.el7.x86_64.rpm 指令
yum install policycoreutils-python
尝试后最终结果:
15.修改gitlab配置文件指定服务器ip和自定义端口 external_url 配置
vim /etc/gitlab/gitlab.rb
【注:注意这里设置的端口不能被占用,默认是8080端口,如果8080已经使用,请自定义其它端口,并在防火墙设置开放相对应得端口,假设我开放999端口:firewall-cmd --add-port=999/tcp 】
16.重置GitLab
gitlab-ctl reconfigure
17.启动GitLab
gitlab-ctl restart
看到下方截图后,至此所有的搭建流程已经结束
18.访问GitLab
如果没有域名,直接输入服务器ip和指定端口进行访问(例:我刚在文件中设置的 http://193.112.131.155:999)
初始账户: root 密码:5iveL!fe
第一次登录修改密码
参考链接一:https://blog.youkuaiyun.com/u013697959/article/details/78041465
参考链接二:https://blog.youkuaiyun.com/abcdad/article/details/80223355
参考链接三:https://www.jianshu.com/p/9baa47a31f46
【注】若有出错,疑问或不好之处,欢迎指出问题,谢谢