GitLab

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

GitLab-CE安装

选择centos7.x系统,yum安装

配置邮箱

配置

GitLab 备份

针对与yum安装用户,docker用户请直接更新镜像

数据备份

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

数据恢复

特别注意:备份目录和gitlab.rb中定义的备份目录必须一致 GitLab的版本和备份文件中的版本必须一致,否则还原时会报错。 首先删除

GitLab升级

升级前一定要记得备份

配置SSL证书

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

GitLab迁移服务器

记得备份
  • /etc/gitlab/gitlab-secrets.json
  • /etc/gitlab/gitlab.rb
 

安装GitLab-Runner

  1. 最新下载地址 也可以直接选择下载 gitlab-runner(opens new window)
  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模式
IP令牌从下图位置获取
notion image
注册完毕后 输入命令查看
notion image
同时也可以在GitLab页面上查看
notion image

Docker 安装Runner

安装
 
或者
注册
 
说明
定义个Dockerfile
 

使用GitLab-CI

git报错

原因是git版本太老不持之新API,需要升级一下git:
在项目的根目录,创建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为域名
notion image
1. 执行 gitlab-runner restart 即重启gitlab-runner,然后到gitlab上看看状态吧!
 
 

CI高级用法

实现不同环境部署

 
 

实现多个节点

 

参考

 
 
 
 
 

© Wang Jiahao 2021 - 2024