Linux搭建Gitlab保姆级教程

文章目录

  • 1、gitlab安装
    • 1.1、gitlab介绍
      • 1.1.1、概念
      • 1.1.2、gitlab与github的区别
      • 1.1.3、gitlab的优势
      • 1.1.4、gitlab主要服务构成
      • 1.1.5、gitlab的工作流程
    • 1.2、准备工作
    • 1.3、安装
    • 1.4、配置
    • 1.5、启动
    • 1.6、测试
  • 2、gitlab安装目录
  • 3、gitlab常用命令
  • 4、注册账号
  • 5、gitlab相关设置
    • 5.1、设置中文
    • 5.2、创建组
    • 5.3、创建项目
    • 5.4、组添加成员
    • 5.5、创建readme文件
    • 5.6、拉取项目
    • 5.7、提交代码
  • 6、小结

1、gitlab安装

1.1、gitlab介绍

1.1.1、概念

Gitlab是一个开源分布式版本控制系统,由Ruby开发,有管理项目源代码、版本控制、代码复用与查找等功能

1.1.2、gitlab与github的区别

  • github是分布式在线代码托管仓库,个人版本可直接在线免费使用,企业版本收费且需要服务器安装
  • gitlab是分布式在线代码仓库托管软件,分社区免费版本与企业收费版本,都需要服务器安装

1.1.3、gitlab的优势

  1. 开源免费,社区免费版本适合中小型公司
  2. 差异化的版本管理,离线同步以及强大分支管理功能
  3. 便捷的GUI操作界面以及强大账户权限管理功能
  4. 集成度很高,能够集成绝大多数的开发工具
  5. 支持内置HA,保证在高并发下仍旧实现高可用性

1.1.4、gitlab主要服务构成

  • Nginx 静态Web服务器
  • Gitlab-workhorse 轻量级的反向代理服务器
  • Gitlab-shell 用于处理Git命令和修改authorized keys列表
  • Logrotate 日志文件管理工具
  • Postgresql 数据库 Redis 缓存服务器

1.1.5、gitlab的工作流程

  1. 创建并克隆项目
  2. 创建项目某Feature分支
  3. 编写代码并提交至该分支
  4. 推送该项目分支至远程Gitlab服务器
  5. 进行代码检查并提交Master主分支合并申请
  6. 项目领导审查代码并确认合并申请

1.2、准备工作

我们演示的场景是在Linux系统中安装gitlab,所以需要有一个Linux环境,那我这里的方式是在本地装了一个虚拟机,然后安装了CentOS7的系统,如果你不会在本地安装虚拟机和CentOS7的话,可以参考我的这篇文章:https://blog.csdn.net/wujiangbo520/article/details/119043758,照着一步一步做就可以了

1.3、安装

好,上面我们已经准备好了Linux环境,那么我们现在就开始安装gitlab,但是安装gitlab方式有很多种,我们这里采取的是:通过rpm包进行安装

不同版本的Linux对应不同的rpm包

  • 若Linux版本为Centos 7,则需要下载el7版本的GitLab
  • 若Linux版本为Centos 8,则需要下载el8版本的GitLab
  • 若Linux版本为Alibaba Cloud Linux release 3,则需要下载el8版本的GitLab

我这里是CentOS7系统,所以需要下载el7版本的GitLab,下载地址是:https://mirrors.tuna.tsinghua.edu.cn/gitlab-ce/yum/el7,如下:

Linux搭建Gitlab保姆级教程_第1张图片

下载的文件如下:

Linux搭建Gitlab保姆级教程_第2张图片

然后将文件上传到opt目录中,如下:

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-bUcHfoCe-1673165001970)(null)]

然后我们在opt目录下执行下面命令:

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

如下:

Linux搭建Gitlab保姆级教程_第3张图片

然后我们可以设置成开机启动:

#启动ssh服务
systemctl start sshd
#ssh服务设置为开机启动
systemctl enable sshd

如下:

Linux搭建Gitlab保姆级教程_第4张图片

然后安装Postfix,Postfix是一个邮件服务器,GitLab发送邮件需要用到:

#安装postfix
yum install -y postfix
 
#启动postfix并设置为开机启动
systemctl start postfix
systemctl enable postfix

如下:

Linux搭建Gitlab保姆级教程_第5张图片

Linux搭建Gitlab保姆级教程_第6张图片

然后开放ssh以及http服务(80端口):

#开放ssh、http服务
firewall-cmd --add-service=ssh --permanent
firewall-cmd --add-service=http --permanent

如下:

Linux搭建Gitlab保姆级教程_第7张图片

如上图,说明设置成功了

然后关闭防火墙以及开机自动关闭防火墙:

systemctl stop firewalld
systemctl disable firewalld
setenforce 0

如下:

Linux搭建Gitlab保姆级教程_第8张图片

接下来可以安装gitlab了:

rpm -ivh gitlab-ce-10.0.2-ce.0.el7.x86_64.rpm

如果出现下图,则说明安装成功:

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-yJuPAmTR-1673165001742)(null)]

1.4、配置

安装完gitlab需要修改配置文件,并加载

vim /etc/gitlab/gitlab.rb     进入配置文件

Linux搭建Gitlab保姆级教程_第9张图片

找到下面一行,修改IP:

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-aydGawat-1673165001686)(null)]

还需要配置发邮件的相关参数:

gitlab_rails['smtp_enable'] = true
gitlab_rails['smtp_address'] = "smtp.qq.com"
gitlab_rails['smtp_port'] = 465
gitlab_rails['smtp_user_name'] = "[email protected]"
gitlab_rails['smtp_password'] = "授权码"
gitlab_rails['smtp_domain'] = "smtp.qq.com"
gitlab_rails['smtp_authentication'] = "login"
gitlab_rails['smtp_enable_starttls_auto'] = true
gitlab_rails['smtp_tls'] = true
gitlab_rails[‘gitlab_email_from’] = '[email protected]'

如下:

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-ZV2jM0ux-1673165001643)(null)]

先按字母【i】进入编辑模式,修改完成后,按【Esc】然后输入【:wq】保存并退出即可

1.5、启动

修改好配置文件后,要使用下面命令重新加载一下配置文件,否则不生效

gitlab-ctl reconfigure

执行上面命令后,启动过程时间较长,需要耐心等待,结果如下:

Linux搭建Gitlab保姆级教程_第10张图片

然后执行下面命令查看一下gitlab的状态:

gitlab-ctl status

结果如下:

Linux搭建Gitlab保姆级教程_第11张图片

重启成功后,可以测试一下是否可以正常发邮件,执行下面命令进入控制台:

gitlab-rails console

如下:

Linux搭建Gitlab保姆级教程_第12张图片

然后执行下面命令,发送一封测试邮件,格式:Notify.test_email(‘收件人’, ‘标题’, ‘正文’).deliver_now

Notify.test_email('[email protected]', 'gitlab测试', 'gitlab测试正文').deliver_now

然后查看你的邮箱,就可以收到邮件了:

Linux搭建Gitlab保姆级教程_第13张图片

说明邮件服务是正常的

1.6、测试

我们本地浏览器访问:http://192.168.92.128:9001,结果如下:

Linux搭建Gitlab保姆级教程_第14张图片

可以正常看到gitlab的首页,说明我们安装部署成功了,完美

2、gitlab安装目录

以下是gitlab常用的默认安装目录:

gitlab组件日志路径:/var/log/gitlab
 
gitlab配置路径:/etc/gitlab/  路径下有gitlab.rb配置文件
 
应用代码和组件依赖程序:/opt/gitlab
 
各个组件存储路径: /var/opt/gitlab/
 
仓库默认存储路径   /var/opt/gitlab/git-data/repositories
 
版本文件备份路径:/var/opt/gitlab/backups/
 
nginx安装路径:/var/opt/gitlab/nginx/
 
redis安装路径:/var/opt/gitlab/redis

3、gitlab常用命令

#查看服务状态
gitlab-ctl status
使用控制台实时查看日志
# 查看所有的logs; 按 Ctrl-C 退出
gitlab-ctl tail
# 拉取/var/log/gitlab下子目录的日志
gitlab-ctl tail gitlab-rails
# 拉取某个指定的日志文件
gitlab-ctl tail nginx/gitlab_error.log
#启动关闭gitlab	
gitlab-ctl start      
gitlab-ctl stop                                #停止            
gitlab-ctl status                              #查看状态
gitlab-ctl restart                             #重启
gitlab-ctl reconfigure			   #更新配置文件
gitlab-ctl help                                #帮助
gitlab-rake gitlab:check SANITIZE=true --trace	检查gitlab
#gitlab 默认的日志文件存放在/var/log/gitlab 目录下
gitlab-ctl tail                                #查看所有日志
#禁止 Gitlab 开机自启动
systemctl disable gitlab-runsvdir.service 
#启用 Gitlab 开机自启动
systemctl enable gitlab-runsvdir.service

4、注册账号

访问地址:http://192.168.92.128:9001/users/sign_in,如下:

Linux搭建Gitlab保姆级教程_第15张图片

点击【Redister】按钮后,出现下面页面:

Linux搭建Gitlab保姆级教程_第16张图片

5、gitlab相关设置

5.1、设置中文

Linux搭建Gitlab保姆级教程_第17张图片

5.2、创建组

组相当于团队,在项目开发过程中,每个组有不同的组员和对应的不同的子项目,对项目组用户开放项目的访问

Linux搭建Gitlab保姆级教程_第18张图片

填写相关参数即可:

Linux搭建Gitlab保姆级教程_第19张图片

可见性级别中包含三种:

  1. 私有:群组及其项目只能由成员查看
  2. 内部:任何登录的用户都可以查看该群组和任何内部项目
  3. 公开:不进行身份验证,可以随意查看

5.3、创建项目

Linux搭建Gitlab保姆级教程_第20张图片

然后填写相关参数即可:

Linux搭建Gitlab保姆级教程_第21张图片

创建成功了:

Linux搭建Gitlab保姆级教程_第22张图片

5.4、组添加成员

Linux搭建Gitlab保姆级教程_第23张图片

用户角色总共有下面几个选项,分别为:

  • Guest:可以创建issue、发表评论,不能读写版本库
  • Reporter:可以克隆代码,不能提交,QA、PM可以赋予这个权限
  • Developer:以克隆代码、开发、提交、push,RD可以赋予这个权限
  • Maintainer:可以创建项目、添加tag、保护分支、添加项目成员、编辑项目,核心RD负责人可以赋予这个权限
  • Owner:可以设置项目访问权限 - Visibility Level、删除项目、迁移项目、管理组成员,开发组leader可以赋予这个权限

5.5、创建readme文件

Linux搭建Gitlab保姆级教程_第24张图片

5.6、拉取项目

Linux搭建Gitlab保姆级教程_第25张图片

然后本地进行拉取:

Linux搭建Gitlab保姆级教程_第26张图片

然后输入账号wujiangbo,密码:itsource123456,然后可以拉取了:

Linux搭建Gitlab保姆级教程_第27张图片

拉取下来的代码是这样的:

Linux搭建Gitlab保姆级教程_第28张图片

目前里面啥也没有,就只有我们刚刚新建的一个readme.md文件

5.7、提交代码

我们新建一个文件后提交:

Linux搭建Gitlab保姆级教程_第29张图片

提交成功:

Linux搭建Gitlab保姆级教程_第30张图片

然后刷新gitlab查看是否上传成功:

Linux搭建Gitlab保姆级教程_第31张图片

查看提交的文件详情:

Linux搭建Gitlab保姆级教程_第32张图片

没有毛病,是我们提交的文件,测试成功

6、小结

其实gitlab和我们平时使用的Gitee没有太大的区别,使用方式大同小异,在工作中多用几次就不陌生了

如果本文对你有帮助的话,记得点个赞哦

你可能感兴趣的:(工具,linux,gitlab,搭建gitlab,linux搭建gitlab)