一.简介
GitLab是一个利用 Ruby on Rails 开发的开源应用程序,实现一个自托管的Git项目仓库,可通过Web界面进行访问公开的或者私人项目。它拥有与Github类似的功能,能够浏览源代码,管理缺陷和注释。可以管理团队对仓库的访问,它非常易于浏览提交过的版本并提供一个文件历史库。它还提供一个代码片段收集功能可以轻松实现代码复用,便于日后有需要的时候进行查找。
GitLab与GitHub的不同
- Github分布式在线代码托管仓库,个人版本可直接在线免费使用,企业版本收费且需要服务器安装
- Gitlab 分布式在线代码仓库托管软件,分社区免费版本与企业收费版本,都需要服务器安装.
Gitlab的优势和应用场景
- 开源免费,适合中小型公司将代码放置在该系统中
- 品差异化的版本管理,离线同步以及强大分支管理功能
- 便捷的GUI操作界面以及强大账户权限管理功能
- 集成度很高,能够集成绝大多数的开发工具
- 支持内置HA,保证在高并发下仍旧实现高可用性
GitLab主要服务构成
- Nginx静态Web服务器
- Gitlab-workhorse 轻量级的反向代理服务器
- Gitlab-shell 用于处理Git命令和修改authorized keys列表
- Logrotate 日志文件管理工具
- Postgresql数据库
- Redis 缓存服务器
GitLab的工作流程
- 创建并克隆项目
- 创建项目某Feature分支
- 编写代码并提交至该分支
- 推送改项目分支至远程Gitlab服务器
- 进行代码检查并提交Master主分支合并申请
- 项目领导审查代码并确认合并申请
二.程序部署
部署gitlab
注意: gitlab需要4g内存支持
1.配置gitlab源
vim /etc/yum.repos.d/gitlab_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
2.安装gitlab的依赖项
yum install -y curl policycoreutils-python openssh-server
3.启动postfix,并设置为开机启动
systemctl start postfix
systemctl enable postfix
4.设置防火墙 (如果未使用防火墙可以跳过)
firewall-cmd --add-service=http --permanent
systemctl reload firewalld
5.获取gitlab的rpm包
wget https://mirrors.tuna.tsinghua.edu.cn/gitlab-ce/yum/el7/gitlab-ce-10.0.2-ce.0.el7.x86_64.rpm
6.安装rpm包
rpm -i gitlab-ce-10.0.2-ce.0.el7.x86_64.rpm
7.执行指令配置gitlab
gitlab-ctl reconfigure
8.修改配置文件gitlab.rb,将external_url变量的地址修改为gitlab所在centos的ip地址。
vim /etc/gitlab/gitlab.rb
因为修改了配置文件,故需要重新加载配置内容。
gitlab-ctl reconfigure
gitlab-ctl restart
9.查看gitlab版本
head -1 /opt/gitlab/version-manifest.txt