Runner 分为"指定Runner "和"共享Runner ",共享Runner 适用于所有群组和项目,根据tags标签来匹配并执行(Runner 的标签和.gitlab-ci.yml文件任务里的标签);指定Runner是项目独享的,可以为某个项目单独配置Runner。以下配置的是共享Runner,指定Runner的配置方式一样,只是Token获取的地方不同。
1、下载地址:https://mirrors.tuna.tsinghua.edu.cn/gitlab-runner/yum/el7/
2、安装
wget https://mirrors.tuna.tsinghua.edu.cn/gitlab-runner/yum/el7/gitlab-runner-15.8.1-1.x86_64.rpm
yum -y install gitlab-runner-15.8.1-1.x86_64.rpm
#查看运行状态
systemctl status gitlab-runner
3、注册到GitLab
3.1 查看GitLab的runner token
图中Show Runner installation instructions按钮也有安装和注册gitlab Runner的步骤
3.2 执行注册命令
gitlab-runner register --url http://192.168.48.128:8001/ --registration-token _sRaUvmhkgzdbLXJ9Gy1
最后的执行器我选择的是shell,常用的还有docker和kubernetes(k8s)
可以在gitlab后台看到刚才注册的runner:
前面没有输入好的,可以在这里进行修改:
tags选项与.gitlab-ci.yml中的tags对应,多个以逗号分隔。
在某个项目里可以看到共享Runner:
4、创建和执行一个流水线
4.1 在项目根目录下面创建文件,并提交:.gitlab-ci.yml
stages:
- build
- deploy
#当master分支变更的时候触发
build:
stage: build
script: #需要执行的脚本内容,也可以是一个sh脚本文件用于执行。
- echo "hello world build"
only:
- master
tags:
- trade_runner #这个标签需要与Runner配置的标签匹配
deploy:
stage: deploy
script:
- echo "hello world deploy"
only:
- master
tags:
- trade_runner
可以看到本次提交,就会立马触发流水线,后面更改了一次文件,也触发了一次流水线
在”作业“里可以看到流水线中每个步骤的执行日志:
4、相关命令
systemctl status gitlab-runner
systemctl stop gitlab-runner
systemctl start gitlab-runner
systemctl restart gitlab-runner
gitlab-runner -h #查看帮助文档
# --user指定将用于执行构建的用户,--working-directory 指定将运行构建时数据存储的根目录
gitlab-runner install --user=gitlab-runner --working-directory=/home/gitlab-runner
gitlab-runner uninstall #停止运行并从服务中卸载GitLab Runner
gitlab-runner start #启动GitLab Runner服务
gitlab-runner stop #停止GitLab Runner服务
gitlab-runner restart #重启GitLab Runner服务
gitlab-runner status #显示GitLab Runner服务的状态
gitlab-runner --debug <command> #调试模式排查错误特别有用
gitlab-runner <command> --help #获取帮助信息
gitlab-runner run #普通用户模式,配置文件: ~/.gitlab-runner/config.toml
sudo gitlab-runner run # 超级用户模式,配置文件:/etc/gitlab-runner/config.toml
gitlab-runner register #默认交互模式下使用,非交互模式添加 --non-interactive
gitlab-runner list #此命令列出了保存在配置文件中的所有运行程序
gitlab-runner verify #此命令检查注册的runner是否可以连接,但不验证GitLab服务是否正在使用runner。 --delete 删除
gitlab-runner unregister #该命令使用GitLab取消已注册的runner
gitlab-runner unregister --url http://gitlab.dev.com/ --token djiih23 #使用令牌注销
gitlab-runner unregister --name test-runner #使用名称注销(同名删除第一个)
gitlab-runner unregister --all-runners #注销所有runner