GitLab
URL
date
Dec 23, 2021
slug
gitlab
status
Published
tags
Gitlab
summary
GitLab
type
Post
GitLab-CE安装配置邮箱配置GitLab 备份数据备份数据恢复GitLab升级配置SSL证书GitLab迁移服务器安装GitLab-RunnerDocker 安装Runner使用GitLab-CIgit报错gitlab-ci高级用法配置详解解决git clone后无代码的情况问题描述为什么会这样?修复建议完整代码解决gitlab迁移后runner无法使用CI高级用法实现不同环境部署实现多个节点参考
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
- 最新下载地址 也可以直接选择下载 gitlab-runner(opens new window)
- 安装程序
- 向
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
模式
IP
和令牌
从下图位置获取注册完毕后 输入命令查看
同时也可以在
GitLab
页面上查看Docker 安装Runner
安装
或者
注册
说明
定义个Dockerfile
使用GitLab-CI
git报错
原因是git版本太老不持之新API,需要升级一下git:
在项目的根目录,创建
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为域名
1. 执行
gitlab-runner restart
即重启gitlab-runner,然后到gitlab上看看状态吧!