gitlab是什么

个人版本可以免费在线使用,企业版本需要收费且服务器安装

gitlab分社区免费版和企业收费版,都需要服务器安装,当然社区免费版比企业收费版少一些功能,但是也完全满足我们的需求了,所以一般中小型公司都使用社区免费版

为什么不用github?
github的企业版是收费的

主要服务构成

nginx 静态web服务器
gitlab-workhorse 轻量级的反向代理服务器(文件的上传下载,git push等)
gitlab-shell 用于处理git 命令和修改 authorized keys(存放ssh公钥)列表
logrotate 日志的切割打包操作
postgresql 数据库,保存gitlab的数据信息
redis 缓存服务器

gitlab工作流程

  1. 创建并克隆项目
  2. 创建项目某 feature 分支
  3. 编写代码并提交至该分支
  4. 推送改项目分支到gitlab服务器
  5. 进行代码检查,合并merge
  6. 项目管理员核查并确认合并申请

安装

1、准备工作

# 关闭防火墙
systemctl stop firewalld
# 禁止开机自启防火墙
systemctl disable firewalld
# 关闭selinux并重启,强制访问控制安全策略
vi /etc/sysconfig/selinux
# 禁用SELINUX
SELINUX=disabled
# 重启系统
reboot

2、安装Omnibus gitlab-ce package
就是集成了很多东西,简化安装的包

yum install -y curl policycoreutils openssh-server openssh-clients postfix

3、添加gitlab软件包到yum仓库

curl -sS https://packages.gitlab.com/install/repositories/gitlab/gitlab-ce/script.rpm.sh | sudo bash

4、启动postfix邮件服务,使得gitlab可以给我们发邮件通知

systemctl start postfix && systemctl enable postfix

5、安装gitlab-ce一键安装包

yum install -y gitlab-ce

配置流程

1、证书配置与配置加载,这个证书是自行签名的证书,不是第三方的,所以也就是自己玩玩用

# 创建一个文件夹
mkdir -p /etc/gitlab/ssl
# 创建一个本地私有秘钥
openssl genrsa -out "/etc/gitlab/ssl/gitlab.example.com.key" 2048
# 使用这个私有秘钥去创建csr证书
openssl req -new -key "/etc/gitlab/ssl/gitlab.example.com.key" -out "/etc/gitlab/ssl/gitlab.example.com.csr"
# 接下来进入证书安装向导
country name: cn
provice name: zj
city: hz
company: 
section: 
hostname: gitlab.example.com
email: 
password: 设置证书密码
company: 
# 查看是否创建成功这个私有秘钥
cd /etc/gitlab/ssl
ll会发现两个文件.csr(csr证书) .key(私有秘钥)
# 利用这俩去拿签署证书
openssl x509 -req -days 365 -in "/etc/gitlab/ssl/gitlab.example.com.csr" -signkey "/etc/gitlab/ssl/gitlab.example.com.key" -out "/etc/gitlab/ssl/gitlab.example.com.crt"
# ll可以查到本地有三个文件.crt(签署证书)和上面那俩
# 创建pem证书
openssl dhparam -out /etc/gitlab/ssl/dhparams.pem 2048
# ll可以查到新加了.pem文件
# 更改文件权限
chmod 600 *

2、编辑gitlab的配置文件将所有的证书配置到gitlab的配置文件当中

# 编辑gitlab的配置文件将所有的证书配置到gitlab的配置文件当中并初始化配置
vi /etc/gitlab/gitlab.rb
# 如果这里你是https到下一步里面的nginx配置自动会有443,如果是http则是80,记得把注释打开
找到 external_url 'https://gitlab.example.com'
nginx[redirect_http_to_https]=true
nginx['ssl_certificate']="/etc/gitlab/ssl/gitlab.example.com.crt"
nginx['ssl_certificate_key']="/etc/gitlab/ssl/gitlab.example.com.key"
nginx['ssl_dhparam'] ="/etc/gitlab/ssl/dhparams.pem"
# 初始化配置
gitlab-ctl reconfigure
# 找到gitlab下的nginx代理工具,更改gitlab的http配置文件
vi /var/opt/gitlab/nginx/conf/gitlab-http.conf
在server_name gitlab.example.com下一行添加
# 重定向我们所有gitlab https请求,这一步其实可有可无
rewrite ^(.*)$ https://$host$1 permanent;
# 使nginx配置生效
gitlab-ctl restart

如果不想要 https,直接跳到第 2 步改一下 external_url 就行,然后gitlab-ctl reconfigure & gitlab-ctl restart

遇到解决bug的几个方法:
不要https
reconfigure完成后gitlab-ctl start启动一下
ping一下服务器
出现502的时候尝试刷新页面就好了
https://gitlab.example.com/users/password/edit?reset_password_token=31srUroHUymh9p61pNTK 先用ip登录,再用域名登录

gitlab-ctl相关操作

[root@localhost ~]# gitlab-ctl  reconfigure  #重读配置
[root@localhost ~]# gitlab-ctl  start      #启动
[root@localhost ~]# gitlab-ctl  restart    #重启
[root@localhost ~]# gitlab-ctl  status    #查看服务状态
[root@localhost ~]# gitlab-ctl  stop   #停止
[root@localhost ~]# gitlab-ctl  stop nginx #单独停止nginx
[root@localhost ~]# gitlab-ctl  tail          #查看日志
 
/opt/gitlab/        #gitlab程序安装目录
/var/opt/gitlab/  #gitlab数据目录
/var/opt/gitlab/git-data/   #仓库目录  
# 查看gitlab信息
sudo gitlab-rake gitlab:env:info

进入页面

浏览器输入 gitlab.example.com 来到该页面

gitlab企业版价格 gitlab企业版怎样收费_git

第一次进来重置密码

gitlab企业版价格 gitlab企业版怎样收费_nginx_02


之后会跳到登录页面,输入 root 和你刚设置的密码就会进入啦~

新建一个仓库

# 克隆到本地
git -c http.sslVerify=false clone https://gitlab.example.com/root/test-repo.git
输入账号root和密码,这种方式可以不用安装证书
git config --global user.email ""
git config --global user.name ""

然后就可以push啦

git -c http.sslVerify=false push origin master

运维角度的使用

进入运维面板

gitlab企业版价格 gitlab企业版怎样收费_git_03

创建两个角色,一个dev,一个lead

gitlab企业版价格 gitlab企业版怎样收费_配置文件_04


然后进入我们刚刚的项目,把这俩人加进来并分配不用的权限

gitlab企业版价格 gitlab企业版怎样收费_nginx_05


可以编辑我们的用户

gitlab企业版价格 gitlab企业版怎样收费_git_06