GitLab
URL
date
Dec 23, 2021
slug
gitlab
status
Published
tags
Gitlab
summary
GitLab
type
Post
安装GitLab安装包 方式Docker Compose 方式数据备份数据恢复 更新GitLab配置GitLab配置邮箱配置SSL证书GitLab服务器迁移安装GitLab Runner安装包方式Docker Compose 安装 GitLab RunnerGitLab Runner 使用gitlab-ci高级用法配置详解常见问题 解决git clone后无代码的情况问题描述为什么会这样?修复建议完整代码解决gitlab迁移后runner无法使用参考
安装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
才可以迁移(谨慎!!会清除数据)更新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
安装包方式
- 最新下载地址 选择平台和CPU架构
- 安装程序,可指定执行用户
- 向
gitlab
中注册runner
注册过程中根据提示输入如下信息:
- 输入
gitlab
的服务URL,获取方式参考下图
- 输入
gitlab-ci
的Toekn
,获取方式参考下图
- 关于集成服务中对于这个
runner
的描述
- 给这个
gitlab-runner
输入一个标记,这个tag
非常重要,在后续的使用过程中需要使用这个tag
来指定gitlab-runner
- 是否运行在没有
tag
的build
上面。在配置gitlab-ci
的时候,会有很多job
,每个job
可以通过tags
属性来选择runner
。这里为true
表示如果job
没有配置tags
,也执行
- 是否锁定
runner
到当前项目
- 选择执行器,
gitlab-runner
实现了很多执行器,可用在不同场景中运行构建,详情可见GitLab Runner Executors
,这里选用Shell
模式, 也可以选择docker模式
IP
和令牌
从下图位置获取注册完毕后 输入命令查看
同时也可以在
GitLab
页面上查看Docker Compose 安装 GitLab Runner
注册runner
卸载runner
GitLab Runner 使用
centos7 拉取代码报错,原因是git版本太老不持之新API,需要升级一下git:
简单定义个Dockerfile
在项目的根目录,创建
CI
脚本文件,文件名:.gitlab-ci.yml
上传
CI
脚本文件后,在GitLab上查看流水线作业若流水线作业暂停,显示暂无可用runner
需要前往以下地方配置
gitlab-ci高级用法
在项目路径下建立
.gitlab/ci
如图:使用前缀标识隔离环境,后缀统一是*.gitlab-ci.yml
配置详解
推荐三篇文章,这里不过多解读
常见问题
解决git clone后无代码的情况
问题描述
git clone
代码后,发现没有文件为什么会这样?
因为迁移代码时,默认的
HEAD
找不到啦,需要指向一个修复建议
进入相对应的文件夹,查询所有分支
随便找一个分支(如
remotes/origin/dev
),然后敲入下面的命令git checkout remotes/origin/dev
指令意思是制定dev分支为默认的
HEAD
,然后就可以看到相对应的文件.完整代码
解决gitlab迁移后runner无法使用
gitlab由ip+prot 更换为域名的访问方式,runner无法正常运行
更改方案
- linux下编辑
/etc/gitlab-runner/config.toml
- 更换ip+port为域名
- 执行
gitlab-runner restart
即重启gitlab-runner,然后到gitlab上看看状态吧!
参考
- GitLab CI/CD 备忘清单 https://wangchujiang.com/reference/docs/gitlab-ci.html
- .gitlab-ci.yml 关键字参考 https://docs.gitlab.com/ee/ci/yaml/