说明
本文简单介绍下 Gitlab CI
,包括Gitlab Runner,Gitlab CI中的相关概念以及.gitlab-ci.yml的常用配置。
部署GitLab
什么是 GitLab CI
GitLab CI 是GitLab内置的进行持续集成的工具,只需要在仓库根目录下创建.gitlab-ci.yml
文件,并配置GitLab Runner
;每次提交的时候,gitlab将自动识别到.gitlab-ci.yml
文件,并且使用Gitlab Runner执行该脚本。
Gitlab Runner
GitLab-Runner就是一个用来执行.gitlab-ci.yml 脚本的工具。可以理解成,Runner就像认真工作的工人,GitLab-CI就是管理工人的中心,所有工人都要在GitLab-CI里面注册,并且表明自己是为哪个项目服务。当相应的项目发生变化时,GitLab-CI就会通知相应的工人执行对应的脚本。
Runner类型
GitLab-Runner可以分类两种类型:Shared Runner(共享型)
和Specific Runner(指定型)
。
(1)Shared Runner:所有工程都能够用的,且只有系统管理员能够创建。
(2)Specific Runner:只有特定的项目可以使用。
Runner搭建
这里提供两种方法(本次使用docker):
(1)For RHEL/CentOS
curl -L https://packages.gitlab.com/install/repositories/runner/gitlab-ci-multi-runner/script.rpm.sh | sudo bash
(2)使用docker
#获取gitlab-runner 镜像
docker pull gitlab/gitlab-runner
#启动 gitlab-runner
docker run -d \
-p 2443:443 \
-p 5678:5678 \
-p 2222:22 \
--name gitlab-runner \
--restart always \
-v /data/gitlab-runner/config:/etc/gitlab-runner \
-v /var/run/docker.sock:/var/run/docker.sock \
gitlab/gitlab-runner:latest
#进入Runner容器内
docker exec -it gitlab-runner bash
获取Runner注册Token
安装好Runner之后,需要向Gitlab进行注册,注册Runner需要GitLab-CI的url和token。可根据需求注册选择所需类型Runner。
获取Shared Runner
注册Token: 使用管理员用户登录,进入Admin Area->OverView->Runners界面。
获取Specific Runner
注册Token: 进行项目仓库->settings->CI/CD界面
注册Runner
#进入Runner容器内
docker exec -it gitlab-runner bash
#运行以下命令
gitlab-runner register
#输入Gitlab实例的地址
#Please enter the gitlab-ci coordinator URL (e.g. https://gitlab.com/):
http://192.168.246.194
#输入token
#Please enter the gitlab-ci token for this runner
zN6snSbddCQkJ7y_ef39
#输入Runner的描述
#Please enter the gitlab-ci description for this runner:
[6c011be28cd8]: ci-test apply
#输入与Runner关联的标签
#Please enter the gitlab-ci tags for this runner (comma separated):
ci-test-tag
#输入Ruuner的执行者
#Please enter the executor: custom, ssh, virtualbox, docker-ssh+machine, kubernetes, docker, docker-ssh, parallels, shell, docker+machine:
docker
#如果上面执行者为docker,需要你在.gitlab-ci.yml中指定docker版本
#Please enter the default Docker image (e.g. ruby:2.6):
alpine:latest
通过以上命令后,就可以在gitlab中查看到了这个刚刚创建的runner:
修改Runner配置文件
vim /data/gitlab-runner/config/config.toml
#找到volumes配置,修改为如下,分别是挂载了宿主机的docker和配置Maven的缓存,提高效率
volumes = ["/cache","/var/run/docker.sock:/var/run/docker.sock","/data/.m2/:/.m2/"]
#在volumes配置下方增加一行配置,防止Runner重复拉取镜像
pull_policy = "if-not-present"
#重启Runner即可
docker restart gitlab-runner
参考文档
来源:51CTO
作者:品鉴初心
链接:https://blog.51cto.com/wutengfei/2481114