Linux搭建Gitlab保姆级教程

导读:本篇文章讲解 Linux搭建Gitlab保姆级教程,希望对大家有帮助,欢迎收藏,转发!站点地址:www.bmabk.com

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,如下:

image-20230104160049623

下载的文件如下:

image-20230104160501323

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

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

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

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

如下:

image-20230104155239852

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

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

如下:

image-20230104155359627

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

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

如下:

image-20230104155506140

image-20230104155520259

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

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

如下:

image-20230104155701212

如上图,说明设置成功了

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

systemctl stop firewalld
systemctl disable firewalld
setenforce 0

如下:

image-20230104155847516

接下来可以安装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     进入配置文件

image-20230104161449314

找到下面一行,修改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'] = "11334135987@qq.com"
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’] = '11334135987@qq.com'

如下:

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

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

1.5、启动

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

gitlab-ctl reconfigure

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

image-20230104162146318

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

gitlab-ctl status

结果如下:

image-20230104162209531

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

gitlab-rails console

如下:

image-20230104164923351

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

Notify.test_email('wujiangbo2018@163.com', 'gitlab测试', 'gitlab测试正文').deliver_now

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

image-20230104173240737

说明邮件服务是正常的

1.6、测试

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

image-20230104162457083

可以正常看到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,如下:

image-20230104173952180

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

image-20230104174033142

5、gitlab相关设置

5.1、设置中文

image-20230104174358754

5.2、创建组

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

image-20230104174926048

填写相关参数即可:

image-20230104175140464

可见性级别中包含三种:

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

5.3、创建项目

image-20230104175319929

然后填写相关参数即可:

image-20230104175430863

创建成功了:

image-20230104175502191

5.4、组添加成员

image-20230104175809295

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

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

5.5、创建readme文件

image-20230104180018446

5.6、拉取项目

image-20230104180230566

然后本地进行拉取:

image-20230104180246925

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

image-20230104180331725

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

image-20230104180356332

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

5.7、提交代码

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

image-20230104180734599

提交成功:

image-20230104180753693

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

image-20230104180938597

查看提交的文件详情:

image-20230104181032881

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

6、小结

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

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

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。

文章由极客之音整理,本文链接:https://www.bmabk.com/index.php/post/116616.html

(0)
seven_的头像seven_bm

相关推荐

发表回复

登录后才能评论
极客之音——专业性很强的中文编程技术网站,欢迎收藏到浏览器,订阅我们!