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

RHEL/CentOS/Fedora运行:

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

2. 安装最新版本的GitLab Runner

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

Debian/Ubuntu/Mint 运行:

sudo apt-get install gitlab-runner

RHEL/CentOS/Fedora运行:

sudo yum install gitlab-runner

备注:

  • 从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

基于rpm的系统:

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

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

gitlab-runner -v

二、注册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

如果你使用的是代理服务器,那么你需要设置一个环境变量,以便在注册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

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

env | grep -i proxy

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

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

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

  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. 重新安装gitlab-runner并将用户设置为root
gitlab-runner install --working-directory /home/gitlab-runner --user root
  1. 重启gitlab-runner
sudo service gitlab-runner restart

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

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

  1. 配置ssh
  2. 执行 git config --global credential.helper store
    第2步执行完后,第一次git pull还是需要输密码,以后就不需要了
  • 4
    点赞
  • 8
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
### 回答1: 在 GitLab CI 中使用 Docker 时,可以在 .gitlab-ci.yml 文件中使用 chrome。这需要在 Dockerfile 中安装 chrome 浏览器和 chromedriver,并在 .gitlab-ci.yml 文件中配置启动 chrome 和 chromedriver。具体步骤如下: 1. 在 Dockerfile 中安装 chrome 浏览器和 chromedriver,可以使用以下命令: ``` RUN apt-get update && apt-get install -y google-chrome-stable RUN wget https://chromedriver.storage.googleapis.com/78.0.3904.70/chromedriver_linux64.zip RUN unzip chromedriver_linux64.zip -d /usr/bin/ ``` 2. 在 .gitlab-ci.yml 文件中配置启动 chrome 和 chromedriver。 ``` services: - chrome:latest before_script: - export CHROME_BIN=/usr/bin/google-chrome - export DISPLAY=:99.0 - sh -e /etc/init.d/xvfb start ``` 3. 在你的测试代码中配置使用chrome ``` from selenium import webdriver chrome_options = webdriver.ChromeOptions() chrome_options.binary_location = os.environ.get("CHROME_BIN") chrome_options.add_argument("--headless") chrome_options.add_argument("--disable-dev-shm-usage") chrome_options.add_argument("--no-sandbox") chrome_options.add_argument("--disable-extensions") chrome_options.add_argument("--disable-gpu") chrome_options.add_argument("--remote-debugging-port=9222") chrome_options.add_argument("start-maximized") chrome_options.add_argument("disable-infobars") chrome_options.add_argument("--disable-dev-shm-usage") chrome_options.add_argument("--disable-browser-side-navigation") chrome_options.add_argument("--disable-gpu") chrome_options.add_argument("--no-sandbox") chrome_options.add_argument("--remote-debugging-port=9222") chrome_options.add_argument("--disable-setuid-sandbox") chrome_options.add_argument("--disable-dev-shm-usage") chrome_options.add_argument("--disable-infobars") chrome_options.add_argument("--disable-extensions") chrome_options.add_argument("--disable-gpu") chrome_options.add_argument("--disable-gpu-sandbox") chrome_options.add_argument("--disable- ### 回答2: 在gitlab-ci的docker环境中使用chrome可以通过以下步骤实现: 1. 首先,在.gitlab-ci.yml文件中定义一个新的job,这个job将用来运行chrome。 ``` yml chrome_test: image: selenium/standalone-chrome script: - # 添加运行chrome的命令 ``` 2. 在上述job中使用selenium/standalone-chrome镜像作为基础镜像。这个镜像已经预装了chrome浏览器。 3. 在script脚本中可以添加需要运行的chrome命令。 ```yml chrome_test: image: selenium/standalone-chrome script: - google-chrome-stable --version - # 添加其他需要运行的chrome命令 ``` 上述脚本中的google-chrome-stable --version是一个示例命令,用于显示chrome浏览器的版本信息。你可以根据需要添加其他需要运行的chrome命令。 4. 确保在.gitlab-ci.yml文件中定义的job在pipeline中被执行。 通过以上步骤,就可以在gitlab-ci的docker环境中使用chrome浏览器了。你可以在script脚本中运行各种需要使用chrome的测试或其他命令。注意,由于使用的是selenium/standalone-chrome镜像,因此脚本中的命令需要以google-chrome-stable开头。 ### 回答3: 要在GitLab CI中的Docker容器中使用Chrome,需要按照以下步骤进行配置: 1. 在.gitlab-ci.yml文件中的job中定义Docker镜像,选择一个已包含Chrome的镜像,例如google/chrome。 示例: ``` image: google/chrome jobs: test: script: - chrome --version # 做一些其他的测试操作 ``` 2. 在Docker镜像中安装Chrome,可以通过在Dockerfile中使用apt-get命令或者直接使用chrome的Docker镜像。 Dockerfile示例: ```Dockerfile FROM ubuntu # 安装Chrome RUN apt-get update && apt-get -y install wget gnupg RUN wget -q -O - https://dl-ssl.google.com/linux/linux_signing_key.pub | apt-key add - RUN echo "deb [arch=amd64] http://dl.google.com/linux/chrome/deb/ stable main" >> /etc/apt/sources.list.d/google-chrome.list RUN apt-get -y update RUN apt-get install -y google-chrome-stable # 可以进行其他的Docker镜像配置操作 CMD ["/bin/bash"] ``` 3. 在job的脚本中使用Chrome命令,运行相关的测试或操作。 示例: ```shell script: - google-chrome-stable --version - google-chrome-stable --headless --disable-gpu --remote-debugging-port=9222 http://your-website.com # 其他的测试或操作命令 ``` 通过以上步骤,你就可以在GitLab CI的Docker容器中成功使用Chrome进行相关的测试或操作了。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值