介绍
1、GitLab-CI
GitLab-CI就是一套配合GitLab使用的持续集成系统(当然,还有其它的持续集成系统,同样可以配合GitLab使用,比如Jenkins)。而且GitLab8.0以后的版本是默认集成了GitLab-CI并且默认启用的。
2、GitLab-Runner
GitLab-Runner是配合GitLab-CI进行使用的。一般地,GitLab里面的每一个工程都会定义一个属于这个工程的软件集成脚本,用来自动化地完成一些软件集成工作。当这个工程的仓库代码发生变动时,比如有人push了代码,GitLab就会将这个变动通知GitLab-CI。这时GitLab-CI会找出与这个工程相关联的Runner,并通知这些Runner把代码更新到本地并执行预定义好的执行脚本。
所以,GitLab-Runner就是一个用来执行软件集成脚本的东西。你可以想象一下:Runner就像一个个的工人,而GitLab-CI就是这些工人的一个管理中心,所有工人都要在GitLab-CI里面登记注册,并且表明自己是为哪个工程服务的。当相应的工程发生变化时,GitLab-CI就会通知相应的工人执行软件集成脚本。如下图所示:
Runner可以分布在不同的主机上,同一个主机上也可以有多个Runner。
3、Runner类型
GitLab-Runner可以分类两种类型:Shared Runner(共享型)和Specific Runner(指定型)。
Shared Runner:这种Runner是所有工程都能够用的。只有系统管理员能够创建Shared Runner。
Specific Runner:这种Runner只能为指定的工程服务。拥有该工程访问权限的人都能够为该工程创Shared Runner。
安装
安装gitlab-runner可以使用二种一个是docker容器进行安装配置、一个是直接在物理机上安装。我们一般是按照二台不同服务器上、一台用于gitlab服务、一台用CICD就是用来跑持续集成用的机器。这样的目的为了减轻gitlab服务器的服务负担。分开部署可以大大提高服务器的处理能力,
这里我是已经将gitlab与gitlab-runer安装在一台机器上了、为了更好的演示我将进行使用另一台服务器进行重新安装配置。
这里我们使用容器安装的方式进行安装配置,物理机安装配置后续也会奉上。。。
一、进行拉取gitlab-runner 镜像
docker pull gitlab/gitlab-runner
复制
二、进行注册gitlab-runner
先启动gitlab-runner 容器
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
复制
复制
进入容器内部
docker exec -it gitlab-runner bash
复制
进行注册命令输入下方内容:
gitlab-runner register
复制
1、Enter the GitLab instance URL (for example, https://gitlab.com/):这个输入你的gitlab 连接地址
进入任意项目仓库 找到settings
复制下面链接即可
2、Enter the registration token:
3、Enter a description for the runner:输入runner描述
4、Enter tags for the runner (comma-separated): 输入runner 的tag
5、Enter an executor: docker-ssh, virtualbox, docker+machine, docker-ssh+machine, kubernetes, custom, docker, parallels, shell, ssh:输入Runner的执行器我们使用shell
然后回到gitlab 页面刷新你会看到刚刚我们创建的runner tags 名为 autotest 的runner了
这里创建的是仅支持当前项目的成员进行使用其他项目无法使用
好了gitlab-runner已基本完成、下面来演示下正常的自动化部署流程