GitLab ci/cd部署环境构建

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了GitLab ci/cd部署环境构建相关的知识,希望对你有一定的参考价值。

说明

本文简单介绍下 Gitlab CI,包括Gitlab Runner,Gitlab CI中的相关概念以及.gitlab-ci.yml的常用配置。

部署GitLab

请参考Docker-compose部署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

参考文档

以上是关于GitLab ci/cd部署环境构建的主要内容,如果未能解决你的问题,请参考以下文章

Gitlab CI/CD自动部署方案探索

Gitlab CI/CD自动部署方案探索

实践分享!GitLab CI/CD 快速入门

CI/CD技术专题「Jenkins实战系列」如何通过Gitlab对接Jenkins构建提交自动触发部署构建体系指南(上部)

用于 GAS 的 React App + Node Gitlab ci cd 管道(构建和部署)

如何使用GitLab和Rancher构建CI/CD流水线 – Part 2