一、GitLab 简介
GitLab 是一个利用Ruby on Rails 开发的开源版本控制系统,实现一个自托管的Git项目仓库,可通过Web界面进行访问公开的或者私人项目。
它拥有与GitHub类似的功能,能够浏览源代码,管理缺陷和注释。可以管理团队对仓库的访问,它非常易于浏览提交过的版本并提供一个文件历史库。团队成员可以利用内置的简单聊天程序(Wall)进行交流。它还提供一个代码片段收集功能可以轻松实现代码复用,便于日后有需要的时候进行查找。
开源中国代码托管平台码云就是基于GitLab项目搭建。
GitLab 分为 GitLab Community Edition(CE) 社区版 和 GitLab Enterprise Edition(EE) 专业版。社区版免费,专业版收费,两个版本在功能上的差异对比,可以参考官方对比说明
二、GitLab 安装和配置
安装社区版 GitLab CE 版本:9.2.6
通过GitLab官方提供的Omnibus安装包来安装,相对方便。Omnibus安装包套件整合了大部分的套件(Nginx、ruby on rails、git、redis、postgresql等),再不用额外安装这些软件,减轻了绝大部分安装量。
GitLab官方安装文档:CentOS6.x系统 CentOS7.x系统
1 安装依赖包,并配置postfix服务为GitLab邮件服务可以参考官网命令执行
把external_url改成部署机器的域名或者IP地址。
external_url 'http://gitlab.hongsusu.cn'
2 启动GitLab,使得配置生效
# gitlab-ctl reconfigure
登录不上可能是防火墙的问题.
第一次启动的时候,需要初始化大量的东西,经常会出现502错误,通常是由于内存不足的原因导致,所以需要准备好足够的内存。官方推荐虚拟机中测试4GB内存基本就可以了。
三、GitLab 由以下服务构成
- nginx: 静态web服务器
- gitlab-shell: 用于处理Git命令和修改authorized keys列表
- gitlab-workhorse: 轻量级的反向代理服务器
- logrotate:日志文件管理工具
- postgresql:数据库
- redis:缓存数据库
- sidekiq:用于在后台执行队列任务(异步执行)
- unicorn:An HTTP server for Rack applications,GitLab Rails应用是托管在这个服务器上面的
四、常用命令
gitlab-ctl command (subcommand)
Service Management Commands |
|
start |
启动所有服务 |
stop |
关闭所有服务 |
restart |
重启所有服务 |
status |
查看所有服务状态 |
tail |
查看日志信息 |
service-list |
列举所有启动服务 |
graceful-kill |
平稳停止一个服务 |
例子:
#启动所有服务
gitlab-ctl start
#启动单独一个服务
gitlab-ctl start nginx
#查看日志,查看所有日志
gitlab-ctl tail
#查看具体一个日志,类似tail -f
gitlab-ctl tail nginx
help |
帮助 |
reconfigure |
修改配置文件之后,需要重新加载下 |
show-config |
查看所有服务配置文件信息 |
uninstall |
卸载这个软件 |
cleanse |
删除gitlab数据,重新白手起家 |
#显示所有服务配置文件
例子:
gitlab-ctl show-config
Database Commands |
|
pg-upgrade |
更新postgresql版本 |
revert-pg-upgrade |
还远先前的(离现在正在使用靠近的版本)一个数据库版本 |
#卸载gitlab
gitlab-ctl uninstall