GitLab社区版是免费的,不但能建立免费的私有仓库而且没有数量上限,参与人员也没有数量限制,还能设置成员的权限,甚至细致到具体某条分支的权限,以及强大的工作流等等。
GitLab很适合中小型非开源项目公司。 一、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 1、GitLab安装
通过GitLab官方提供的Omnibus安装包来安装,相对方便。Omnibus安装包套件整合了大部分的套件(Nginx、ruby on rails、git、redis、postgresql等),再不用额外安装这些软件,减轻了绝大部分安装量。
GitLab官方安装文档:CentOS6.x系统 安装依赖包,并配置postfix服务为GitLab邮件服务 代码语言:javascript 复制
打开HTTP和SSH端口 代码语言:javascript 复制
两种安装源
从官方镜像源安装
添加GitLab仓库并安装到服务器上 代码语言:javascript 复制
从第三方镜像源安装
官方镜像源在国外,国内安装会很慢,甚至有时因网络问题会无法安装。
国内推荐使用清华大学开源软件镜像源。
新建 /etc/yum.repos.d/gitlab-ce.repo,内容为: 代码语言:javascript 复制
代码语言:javascript 复制
再执行 代码语言:javascript 复制
代码语言:javascript 复制
修改配置文件/etc/gitlab/gitlab.rb,绑定域名 代码语言:javascript 复制
启动GitLab,使得配置生效 代码语言:javascript 复制
在Dnspod中添加解析记录 使用浏览器访问GitLab
首次访问GitLab,系统会让你重新设置管理员的密码,设置成功后会返回登录界面.
默认的管理员账号是root,如果你想更改默认管理员账号,请输入上面设置的新密码登录系统后修改帐号名.
GitLab安装细节 代码语言:javascript 复制
代码语言:javascript 复制
GitLab由以下服务构成
nginx: 静态web服务器
gitlab-shell: 用于处理Git命令和修改authorized keys列表
gitlab-workhorse: 轻量级的反向代理服务器
logrotate:日志文件管理工具
postgresql:数据库
redis:缓存数据库
sidekiq:用于在后台执行队列任务(异步执行)
unicorn:An HTTP server for Rack applications,GitLab Rails应用是托管在这个服务器上面的。
2、配置SMTP服务
如果你不想用服务器自带的postfix服务来发邮件,可以改用SMTP服务。
修改GitLab邮件服务配置(gitlab.rb文件),使用腾讯企业邮箱的SMTP服务器,填写账号和密码 代码语言:javascript 复制
代码语言:javascript 复制
使配置生效 代码语言:javascript 复制
3、GitLab配置HTTPS
GitLab默认是使用HTTP的,可以手动配置为HTTPS 上传SSL证书
创建ssl目录,用于存放SSL证书 代码语言:javascript 复制
代码语言:javascript 复制
上传证书并修改证书权限 代码语言:javascript 复制
修改GitLab的配置文件
修改配置文件/etc/gitlab/gitlab.rb 代码语言:javascript 复制
代码语言:javascript 复制
重建配置,使其生效 代码语言:javascript 复制
以上操作后,GitLab自带的Nginx服务的配置文件 /var/opt/gitlab/nginx/conf/gitlab-http.conf 会被重新修改: 代码语言:javascript 复制
代码语言:javascript 复制
不用额外再配置,HTTP 会自动跳转到 HTTPS 。 开放443端口
在防火墙上开放443端口,用于HTTPS 代码语言:javascript 复制
4、修改root用户密码
对于普通用户而言,可通过系统重置密码,接收邮件即可。可是GitLab管理员账号,缺省邮箱 admin@example.com是个不存在的邮箱地址,无法通过邮箱修改密码。 官方修改密码文档,根据文档,修改root密码的方法如下: 打开与Rails程序交互的控制台
在root权限下,执行: 代码语言:javascript 复制
等待一会,直到控制台加载成功。 获取用户信息并修改root用户密码 代码语言:javascript 复制
代码语言:javascript 复制
三、GitLab 常用命令 运维管理排查 代码语言:javascript 复制
代码语言:javascript 复制
服务管理 代码语言:javascript 复制
代码语言:javascript 复制
日志 代码语言:javascript 复制
代码语言:javascript 复制
四、GitLab备份和恢复 备份
GitLab作为公司项目代码的版本管理系统,数据非常重要,必须做好备份。 修改备份目录
GitLab备份的默认目录是 /var/opt/gitlab/backups ,如果想改备份目录,可修改/etc/gitlab/gitlab.rb:
修改配置后,记得: 备份命令 代码语言:javascript 复制
该命令会在备份目录(默认:/var/opt/gitlab/backups/)下创建一个tar压缩包xxxxxxxx_gitlab_backup.tar,其中开头的xxxxxx是备份创建的时间戳,这个压缩包包括GitLab整个的完整部分。 自动备份
通过任务计划crontab 实现自动备份 代码语言:javascript 复制
备份保留7天
可设置只保留最近7天的备份,编辑配置文件 /etc/gitlab/gitlab.rb 代码语言:javascript 复制
重新加载gitlab配置文件 恢复
备份文件:
停止 unicorn 和 sidekiq ,保证数据库没有新的连接,不会有写数据情况。 代码语言:javascript 复制
随意支持下,一起做好分享