Linux中gitlab-runner部署使用备忘

发布于:2024-05-09 ⋅ 阅读:(24) ⋅ 点赞:(0)
  • 环境:

        操作系统::CentOS8

        gitlab版本:13.11.4

  • 查看gitlab-runner版本

        可以从https://packages.gitlab.com/app/runner/gitlab-runner/search找到与安装的gitlab版本相近的gitlab-runner版本以及安装命令等信息,我找到与13.11.4相近的是gitlab-runner-13.11.0-1.x86_64.rpm

  • 安装gitlab-runner

        下载配置:

#Debian/Ubuntu/Mint:
curl -L "https://packages.gitlab.com/install/repositories/runner/gitlab-runner/script.deb.sh" | sudo bash

#查看可以安装的列表
apt-cache madison gitlab-runner

#安装
sudo apt-get install gitlab-runner-13.11.0-1



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

#查看可以安装的列表
yum list gitlab-runner --showduplicates | sort -r

#安装
sudo yum install gitlab-runner-13.11.0-1

  • 注册

#执行注册
gitlab-runner register

        注册时依次要求输入:
        1、Enter the GitLab instance URL:gitlab的url,获取位置见下图
        2、Enter the registration token:获取位置见下图
        3、Enter a description for th runner:说明随便填
        4、Enter tags for the runner:指定标签,用于标识runner
        5、Enter an executor:我用的shell

        registration token可以从2个地方获取,一个是gitlab全局的token,另一个是项目的token:

        全局token获取位置:

        项目token获取位置:

        进入某个项目获取

        每个项目的token不同,注册后直接与该项目绑定。后期也可以在gitlab中为该注册的runner绑定其他的项目。runner管理功能入口见下图:

  • 安装时碰到的问题

   1、为repo 'appstream' 下载元数据失败 : Cannot prepare internal mirrorlist: No URLs in mirrorlist

        这个问题是因为 CentOS 8 已于2021年12月31日停止官方服务,而在2022年1月31日,CentOS 团队从官方镜像中移除了 CentOS 8 的所有包。现在他们被转移到 vault.centos.org。
可以在 /etc/yum.repos.d 中更新一下源。使用 vault.centos.org 代替 mirror.centos.org 即可。
        按照以下步骤操作:

sed -i -e "s|mirrorlist=|#mirrorlist=|g" /etc/yum.repos.d/CentOS-*
sed -i -e "s|#baseurl=http://mirror.centos.org|baseurl=http://vault.centos.org|g" /etc/yum.repos.d/CentOS-*
    2、为 repo 'gitlab_gitlab-ce' 下载元数据失败 : repomd.xml GPG signature verification error: Bad GPG signature

        这个问题是由于 GitLab 的包签名密钥在一段时间内过期,影响了 GitLab 和 GitLab Runner 的升级和新安装。需要更新系统上用于签名 GitLab Linux 包的 GPG 密钥。

        按照以下步骤操作:

#从存储库密钥环中删除任何现有密钥
for pubring in /var/cache/dnf/gitlab_gitlab-?e-*/pubring
do
    gpg --homedir $pubring --delete-key F6403F6544A38863DAA0B6E03F01618A51312F3F
done

#清理缓存
sudo dnf clean all

#更新
sudo dnf check-update
  • 项目打包

        在项目pom.xml同级目录中创建.gitlab-ci.yml文件:

stages:
  - build

build:
  stage: build
  script:
    - echo "Building WAR file"
    - mvn clean package -P prod
  artifacts:
    paths:
      - ep.war
  • 打包时碰到的问题

   1、此作业已阻塞,因为该项目没有分配任何可用Runner

    这个问题是因为.gitlab-ci.yml文件中的作业没有指定任何标签,而GitLab Runner被配置为只运行具有特定标签的作业。有两种方式解决这个问题:
1)在.gitlab-ci.yml文件中指定tags

stages:
  - build

build:
  stage: build
  script:
    - echo "Building WAR file"
    - mvn clean package -P prod
  tags:
    - my-tag #注册时填写的标签
  artifacts:
    paths:
      - ep.war

2)允许runner运行没有标签的作业


网站公告

今日签到

点亮在社区的每一天
去签到