gitlab的CICD
作者:互联网
使用Gitlab CI/CD分为三步:
- 安装Runner
- 注册Runner
- 编写流水线脚本
1、客户端安装runner
- 安装文档:https://docs.gitlab.com/runner/install/
curl -L https://packages.gitlab.com/install/repositories/runner/gitlab-runner/script.rpm.sh | sudo bash
yum install gitlab-runner
# docker 安装
docker run -d --name gitlab-runner --restart always -v /srv/gitlab-runner/config:/etc/gitlab-runner -v /var/run/docker.sock:/var/run/docker.sock gitlab/gitlab-runner:latest
- 官方源国内很慢,不一定下的了,可以配个清华源
vi /etc/yum.repos.d/runner.repo
[gitlab-runner]
name=gitlab-runner
baseurl=https://mirrors.tuna.tsinghua.edu.cn/gitlab-runner/yum/el$releasever-$basearch/
repo_gpgcheck=0
gpgcheck=0
enabled=1
gpgkey=https://packages.gitlab.com/gpg.key
yum install -y gitlab-runner
runner注册到gitlab
# 交互
gitlab-runner register
步骤描述:
1. 输入gitlab访问地址,例如http://gitlab.ctnrs.com
2. 输入token(从管理中心->概述->Runner获取)
3. 输入描述
4. 输入标签,流水线脚本根据标签来使用runner,如果多个,例如web,deploy
5. 输入executor,这个是要用什么方式来执行脚本,输入shell
# 免交互
gitlab-runner register \
--non-interactive \
--executor "shell" \
--url "http://gitlab.ctnrs.com" \
--registration-token "2JEjhGn7Uigbv7vbiGAP" \
--description "test1" \
--tag-list "build,deploy" \
--run-untagged="true" \
--locked="false"
# 参数解释
--non-interactive:免交互,交互式默认runner状态是锁定的
--executor:指定为shell执行器
--url:gitlab服务器域名,可通过Gitlab的配置文件修改域名,注意无dns,需要配置hosts
--registration-token:注册token,获取见下图
--description:runner的介绍
--tag-list:给这个runner打标签
--run-untagged:是否运行无标签的脚本
--locked:是否锁定runner
[root@k2 ~]# gitlab-runner register \
> --non-interactive \
> --executor "shell" \
> --url "http://gitlab.ctnrs.com" \
> --registration-token "2JEjhGn7Uigbv7vbiGAP" \
> --description "test1" \
> --tag-list "build" \
> --run-untagged="true" \
> --locked="false"
Runtime platform arch=amd64 os=linux pid=17038 revision=e91107dd version=14.5.2
Running in system-mode.
Registering runner... succeeded runner=2JEjhGn7
Runner registered successfully. Feel free to start it, but if it's running already the config should be automatically reloaded!
- 刷新gitlab仓库
编写流水线脚本
1、脚本编写,在项目分支根根目录编写
# 脚本编写
stages:
- build
- test
- deploy
one:
stage: build
tags:
- build
script:
- echo "代码编译..."
two:
stage: test
tags:
- build
script:
- echo "测试代码..."
three:
stage: deploy
tags:
- build
script:
- echo "部署项目..."
- scp index.html root@192.168.112.53:/root/nginx
# 配置格式解释
• stages:自动化执行步骤,从上至下一次执行,错误停止
• stage:具体执行job,命名应该在stages步骤中,否则不会执行
• tags:runner标签,通过标签指定到哪个runner主机执行
• script:因为是shell执行器,所以这里写执行的shell命令,执行多个命令,按格式换行写即可
• 最后一步scp还需要runner主机与目标主
机配置免交互认证,以项目分支根目录为相对路径
当有新代码提交时,就会自动发布执行脚本
- 默认使用gitlab-runner用户执行脚本,自己可以在脚本中打印$USER就知道,需要使用gitlab-runner用户与目标主机做免密
标签:run,runner,CICD,gitlab,--,build,com 来源: https://blog.csdn.net/weixin_47677347/article/details/122008678