当前位置:   article > 正文

Ubuntu搭建gitlab-Ci教程

Ubuntu搭建gitlab-Ci教程

本文参考gitlab官方教程搭建CI
GitLab Runner是一款开源工具,用于在GitLab上运行CI/CD(持续集成/持续交付)作业。它可以在多个操作系统上安装和使用,并且可以在容器中运行或部署到Kubernetes集群中。可以通过以下三种方式安装GitLab Runner:

  • 在容器中安装
  • 手动下载二进制文件并安装
  • 使用 rpm/deb 软件包仓库进行安装。

为了安全和性能的考虑,建议将运行GitLab Runner的服务器和托管GitLab代码的服务器分开。
安装完成后,需要向GitLab实例注册 runner,以便GitLab Runner可以运行在GitLab中定义的CI/CD作业。

一、安装

我们在这里使用第三种方式:通过软件包仓库安装。

1.添加官方仓库

Debian/Ubuntu/Mint 运行:

curl -L "https://packages.gitlab.com/install/repositories/runner/gitlab-runner/script.deb.sh" | sudo bash
  • 1

RHEL/CentOS/Fedora运行:

curl -L "https://packages.gitlab.com/install/repositories/runner/gitlab-runner/script.rpm.sh" | sudo bash
  • 1

2. 安装最新版本的GitLab Runner

(如果需要安装指定版本,直接跳到下一步)

Debian/Ubuntu/Mint 运行:

sudo apt-get install gitlab-runner
  • 1

RHEL/CentOS/Fedora运行:

sudo yum install gitlab-runner
  • 1

备注:

  • 从GitLab Runner 14.0开始,默认情况下禁用skel目录使用,以防止无此类文件或目录是CI作业失败。
  • 在GitLab 14.7及更高版本中,兼容FIPS 140-2的GitLab Runner版本可用于RHEL发行版。可以使用gitlab runner fips作为软件包名称来安装此版本,而不是使用gitlab runner。

3. 安装指定版本的GitLab Runner

基于Deb的系统:
(我们使用指定版本)

apt-cache madison gitlab-runner
sudo apt-get install gitlab-runner=10.0.0
  • 1
  • 2

基于rpm的系统:

yum list gitlab-runner --showduplicates | sort -r
sudo yum install gitlab-runner-10.0.0-1
  • 1
  • 2

4. 查看gitlab-runner 版本的命令:

gitlab-runner -v
  • 1

二、注册runner

  • 在 GitLab Runner 15.0 中,注册请求格式发生了变化,如果你的 GitLab 版本低于 14.8,那么 Runner 就无法与 GitLab 通信。
  • 在 GitLab 15.6 中,传递 Runner 注册令牌的能力已被弃用,并计划在 17.0 版本中删除,因此这是一个破坏性变化。GitLab 计划引入新的 GitLab Runner 令牌体系结构,以引入一种新的注册 Runner 的方法,并消除旧的 Runner 注册令牌。

所以,第一步在安装GitLab Runner 时,要注意版本是否能满足要求。

在 GitLab 中,注册 Runner 是将 Runner 与一个或多个 GitLab 服务器绑定的过程。你可以在同一台主机上注册多个 Runner,每个 Runner 都有不同的配置。为了注册 Runner,你需要运行一个特定的命令(即 register 命令),并提供必要的参数,例如 Runner 的名称、Runner 的标签、GitLab 服务器的 URL 和 Runner 的身份验证令牌等。

1. 注册前需要完成的工作

1.1 安装gitlab runner(不要与托管代码的服务器放在同一台机器),这个第一步已经完成
1.2 获取令牌(Token)

runner 有三个级别,分别对应不同的操作

  • shared runner : 需要管理员转到GitLab管理区域,选择 Overview > Runners
  • group runner:转到 CI/CD > Runners
  • project runner:转到 Settings > CI/CD and expand the Runners section,位置如图:
    在这里插入图片描述

在这里插入图片描述

2. 开始注册

(我们在这里只介绍Linux系统的操作步骤,其它系统请移步官方教程

  1. 运行:
sudo gitlab-runner register
  • 1

如果你使用的是代理服务器,那么你需要设置一个环境变量,以便在注册Runner时使用代理服务器。在这里,需要设置HTTP_PROXY和HTTPS_PROXY环境变量。这些变量包含代理服务器的URL和端口号

export HTTP_PROXY=http://yourproxyurl:3128
export HTTPS_PROXY=http://yourproxyurl:3128

sudo -E gitlab-runner register

-----------------------------------------------------
-----------------------------------------------------
export命令用于设置环境变量。
例如,如果你的代理服务器的URL是http://yourproxyurl:3128,那么你需要运行以下命令:

export HTTP_PROXY=http://yourproxyurl:3128
export HTTPS_PROXY=http://yourproxyurl:3128

这样设置环境变量后,你就可以在注册命令前面添加sudo -E选项来使用这些环境变量,例如:

sudo -E gitlab-runner register
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16

问: 如何查看是否使用的是代理服务器?
答: 运行以下命令:

env | grep -i proxy
  • 1

这个命令会列出所有以“proxy”开头的环境变量,包括HTTP_PROXY、HTTPS_PROXY等。如果你当前使用代理服务器,那么这些变量将显示代理服务器的URL和端口号。例如:

HTTP_PROXY=http://yourproxyurl:3128
HTTPS_PROXY=http://yourproxyurl:3128
  • 1
  • 2

如果这些变量没有被设置或者显示为空,那么你就没有使用代理服务器连接互联网。

  1. 输入gitlab的服务URL(也就是托管代码的gitlab服务器网址)

  2. 输入gitlab-ci的Toekn,获取方式参考上图

  3. 输入这个runner的描述信息

  4. 给这个gitlab-runner输入一个标记,这个tag非常重要。开始CI工作之前,我们可以选择使用哪个gitlabrunner编译代码。
    在这里插入图片描述

  5. 是否运行在没有tag的build上面。在配置gitlab-ci的时候,会有很多job,每个job可以通过tags属性来选择runner。这里为true表示如果job没有配置tags,也执行

  6. 是否锁定runner到当前项目

  7. 选择执行器,gitlab-runner实现了很多执行器,可用在不同场景中运行构建。官方建议写docker,但是我们没用docker,这里选用Shell模式

三、gitlab-runner设置用户为root

第二步安装gitlab-runner是会默认安装一个gitlab-runner用户,CI运行期间,会出现一些权限不足的问题,所以将gitlab-runner的默认用户设为root

  1. 卸载掉gitlab-runner默认用户
sudo gitlab-runner uninstall
  • 1
  1. 重新安装gitlab-runner并将用户设置为root
gitlab-runner install --working-directory /home/gitlab-runner --user root
  • 1
  1. 重启gitlab-runner
sudo service gitlab-runner restart
  • 1

第3步执行完后,gitlab-runner已经开始运行,不需要手动运行。

四、解决git push /git pull每次都需要输账号密码的问题

  1. 配置ssh
  2. 执行 git config --global credential.helper store
    第2步执行完后,第一次git pull还是需要输密码,以后就不需要了
声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/花生_TL007/article/detail/682341
推荐阅读
相关标签
  

闽ICP备14008679号