GitLab

URL
date
Dec 23, 2021
slug
gitlab
status
Published
tags
Gitlab
summary
GitLab
type
Post

安装GitLab

安装包 方式

下载官方安装包 https://about.gitlab.com/install 执行安装命令即可

Docker Compose 方式

默认配置文件路径: /etc/gitlab/gitlab.rb

数据备份

设置备份路径、权限、保留时常,防止每天执行备份,有目录被爆满的风险,打开开配置文件,找到如下配置
重新加载配置并重启
 
默认备份路径: /var/opt/gitlab/backups 找到备份包,解压查看,会发现备份的还是比较全面的,数据库、repositories、build、upload等分类还是比较清晰的。
备份完成,会在备份目录中生成一个当天日期的tar包。

数据恢复

特别注意:备份目录和gitlab.rb中定义的备份目录必须一致 GitLab的版本和备份文件中的版本必须一致,否则还原时会报错。
_gitlab_backup.tar可以忽略不填入
等待数秒后,记得输入YES才可以迁移(谨慎!!会清除数据)
notion image
notion image

更新GitLab

更新前务必做备份
  • 安装包方式请下载新的安装包
  • docker方式更新镜像即可

配置GitLab

配置邮箱

配置SSL证书

进入 /ect/gitlab/ssl 放入相对应的证书,配置 /etc/gitlab/gitlab.rb
更新配置并重启
gitlab-ctl reconfigure && gitlab-ctl restart

GitLab服务器迁移

 
安装包方式和docker方式一样的,备份文件包含三个
  • /etc/gitlab/gitlab-secrets.json 放到同样路径
  • /etc/gitlab/gitlab.rb 放到同样路径
  • gitlab-rake gitlab:backup:create --trace 备份文件放到/var/opt/gitlab/backups
因备份文件较大,建议使用rsync传输文件,例如centos安装sudo yum install rsync -y
新建rsync运行脚本,vim sync_script.sh 根据自身情况填写
赋权并执行
查询进程
校验文件md5,保证文件正确
docker方式进入容器,docker exec -it gitlab bash 执行恢复,详细请参考恢复数据章节
 

安装GitLab Runner

安装包方式

  1. 最新下载地址 选择平台和CPU架构
  1. 安装程序,可指定执行用户
  1. gitlab中注册runner
注册过程中根据提示输入如下信息:
  • 输入gitlab的服务URL,获取方式参考下图
  • 输入gitlab-ciToekn,获取方式参考下图
  • 关于集成服务中对于这个runner的描述
  • 给这个gitlab-runner输入一个标记,这个tag非常重要,在后续的使用过程中需要使用这个tag来指定gitlab-runner
  • 是否运行在没有tagbuild上面。在配置gitlab-ci的时候,会有很多job,每个job可以通过tags属性来选择runner。这里为true表示如果job没有配置tags,也执行
  • 是否锁定runner到当前项目
  • 选择执行器,gitlab-runner实现了很多执行器,可用在不同场景中运行构建,详情可见GitLab Runner Executors,这里选用Shell模式, 也可以选择docker模式
IP令牌从下图位置获取
notion image
注册完毕后 输入命令查看
notion image
同时也可以在GitLab页面上查看
notion image

Docker Compose 安装 GitLab Runner

 
 
注册runner
卸载runner

GitLab Runner 使用

centos7 拉取代码报错,原因是git版本太老不持之新API,需要升级一下git:
 
简单定义个Dockerfile
 
 
在项目的根目录,创建CI脚本文件,文件名:.gitlab-ci.yml
notion image
上传CI脚本文件后,在GitLab上查看流水线作业
notion image
若流水线作业暂停,显示暂无可用runner
需要前往以下地方配置
notion image
notion image

gitlab-ci高级用法

在项目路径下建立 .gitlab/ci
如图:使用前缀标识隔离环境,后缀统一是*.gitlab-ci.yml
notion image
 

配置详解

推荐三篇文章,这里不过多解读
 
 

常见问题

解决git clone后无代码的情况

问题描述

git clone代码后,发现没有文件

为什么会这样?

因为迁移代码时,默认的HEAD找不到啦,需要指向一个

修复建议

进入相对应的文件夹,查询所有分支
随便找一个分支(如remotes/origin/dev),然后敲入下面的命令
git checkout remotes/origin/dev
指令意思是制定dev分支为默认的HEAD,然后就可以看到相对应的文件.

完整代码

notion image

解决gitlab迁移后runner无法使用

gitlab由ip+prot 更换为域名的访问方式,runner无法正常运行
更改方案
  1. linux下编辑/etc/gitlab-runner/config.toml
  1. 更换ip+port为域名
  1. 执行 gitlab-runner restart 即重启gitlab-runner,然后到gitlab上看看状态吧!
notion image
 
 

参考

 
 
 
 

© Wang Jiahao 2021 - 2024