GitLab-CI 工作原理

  • 将代码托管到 git 仓库

  • 在项目的根目录下创建 .gitlab-ci.yml 文件,在文件中包含了构建、测试以及部署等脚本,这些脚本被分组为 stage,共同组成了 pipeline

  • GitLab 检测到 ci.yml 文件,使用 GitLab Runner 的工具运行定义的脚本

环境准备

一. 安装 GitLab

  • 使用 rpm 安装,也可以通过 docker、k8s 等方式安装

GitLab下载地址:https://mirrors.tuna.tsinghua.edu.cn/gitlab-ce/yum/el7

# 下载最新的 gitlab-ce 版本 14.2.4  wget https://mirrors.tuna.tsinghua.edu.cn/gitlab-ce/yum/el7/gitlab-ce-14.2.4-ce.0.el7.x86_64.rpm  rpm -ivh gitlab-ce-14.2.4-ce.0.el7.x86_64.rpm  

image-20210921113102795

安装成功!

  • 修改 IP + 端口

# 将external_url变量的地址修改为gitlab所在机器的ip地址 vim /etc/gitlab/gitlab.rb 

例如:external_url 'http://192.168.123.62'

# 配置生效 gitlab-ctl reconfigure

修改默认的端口号为 9000

vim /var/opt/gitlab/gitlab-rails/etc/gitlab.yml

image-20210921132706055

vim /var/opt/gitlab/nginx/conf/gitlab-http.conf

image-20210921132825199

完成以上修改之后,重启gitlab,访问 ip+端口

gitlab-ctl restart

  • 修改默认账户密码

    sudo gitlab-rails console production user=User.where(name: "root").first user.password='xxx' user.save! quit

    修改完成,成功登陆!

image-20210921135601905

二. GitLab Runner

2.1 GitLab Runner 简介
  • GitLab Runner 是一个来源项目,用于运行 pipeline 并将结果发送会 GitLab

  • 与 GitLab-CI 相结合,进行持续集成服务

  • GitLab Runner 是用 Go 语言编写的,可以运行在 Linux、MacOS 以及 Windows 上

  • 容器化部署需要使用最新的 Docker 版本;GitLab Runner 版本最低需要 Docker v1.13.0

  • GitLab Runner 的版本需要与 GitLab 版本一致,避免版本不一致导致差异化

  • 可以根据实际的需求配置任意数量的 Runner

2.2 GitLab Runner 特点
  • 可以同时执行多个 pipeline

  • 执行环境:

    • 可以在本地、Docker 以及 K8s 上运行

    • 使用 Docker 容器在不同的云和虚拟化管理程序上自动缩放

    • 连接接到远程 SSH 服务器

  • 支持 Bash、Windows Batch 以及 Windows PowerShell

  • 允许自定义作业运行环境

  • 自动重新加载配置,无需重启

2.2 GitLab Runner 类型与状态
  • 类型

    • shared: 共享类型,运行这个平台项目的作业(gitlab)

    • group: 项目组类型,运行指定 group 下的所有项目的作业(group)

    • specific: 项目类型,运行指定项目作业(project)

  • 状态:

    • locked: 锁定状态,无法运行流水线

    • paused:暂停状态,暂时不会接受新的流水线作业

三. 安装 GitLab Runner

GitLab Runner 可以在 GNU/Linux、macOS、FreeBSD 和 Windows 上安装和使用,下面介绍下常用的安装场景及方式。

3.1 Linux 安装 GitLab Runner

使用 rpm 包安装,打开清华源,找到合适的版本

wget https://mirrors.tuna.tsinghua.edu.cn/gitlab-runner/yum/el7/gitlab-runner-14.2.0-1.x86_64.rpm  # 安装前需要安装 git  rpm -ivh gitlab-runner-14.2.0-1.x86_64.rpm # 启动 runner systemctl start gitlab-runner # 查看启动结果 gitlab-runner -h
3.2 Docker 并注册 GitLab Runner
docker run -it --name gitlab-runner \      --rm -v ~/data/gitlab-runner/config:/etc/gitlab-runner \      gitlab/gitlab-runner:v14.2.0 register \      --non-interactive \      --executor "shell" \      --url "http://192.168.123.62:9000/" \      --registration-token "xCRUCRdy5W9LMKxysv1d" \      --description "runner-shared-docker" \      --tag-list "test,prod" \      --run-untagged="true" \      --locked="false"

image-20210921191512992

接下来启动 runner

docker run -itd --name gitlab-runner \      --rm -v ~/data/gitlab-runner/config:/etc/gitlab-runner \      gitlab/gitlab-runner:v14.2.0

image-20210921191650482

三. 注册 GitLab Runner

runner 的注册步骤: 获取 runner token ,然后进行注册

3.1 获取 runner token

按照 runner 类型的不同,获取 token 方式如下:

  • shared 类型 runner

进入管理员 -> Runners 页面,复制 runner token

image-20210921161225029

  • group 类型

image-20210921161556650

  • specific 类型

3.2 注册 runner

下面以 shared 类型的 runner 为例,进行注册

  • 交互式的方式进行注册

# 执行以下命令 gitlab-runner register # 检测是否注册成功 gitlab-runner verify

image-20210921174139711

测试运行流水线

安装配置好相关的环境后,接下来简单运行一条流水线测试下

  • 在项目的根目录下创建 .gitlab-ci.yml 文件

  • 校验文件格式是否正确

image-20210921175548423

image-20210921175640711

  • 提交代码,成功触发流水线


点赞(3) 打赏

Comment list 共有 0 条评论

暂无评论
立即
投稿
发表
评论
返回
顶部