• Linux中gitlab-runner部署使用备忘


    • 环境:

            操作系统::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

            下载配置:

    1. #Debian/Ubuntu/Mint:
    2. curl -L "https://packages.gitlab.com/install/repositories/runner/gitlab-runner/script.deb.sh" | sudo bash
    3. #查看可以安装的列表
    4. apt-cache madison gitlab-runner
    5. #安装
    6. sudo apt-get install gitlab-runner-13.11.0-1
    7. #RHEL/CentOS/Fedora:
    8. curl -L "https://packages.gitlab.com/install/repositories/runner/gitlab-runner/script.rpm.sh" | sudo bash
    9. #查看可以安装的列表
    10. yum list gitlab-runner --showduplicates | sort -r
    11. #安装
    12. sudo yum install gitlab-runner-13.11.0-1
    • 注册

    1. #执行注册
    2. 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 即可。
            按照以下步骤操作:

    1. sed -i -e "s|mirrorlist=|#mirrorlist=|g" /etc/yum.repos.d/CentOS-*
    2. 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 密钥。

            按照以下步骤操作:

    1. #从存储库密钥环中删除任何现有密钥
    2. for pubring in /var/cache/dnf/gitlab_gitlab-?e-*/pubring
    3. do
    4. gpg --homedir $pubring --delete-key F6403F6544A38863DAA0B6E03F01618A51312F3F
    5. done
    6. #清理缓存
    7. sudo dnf clean all
    8. #更新
    9. sudo dnf check-update
    • 项目打包

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

    1. stages:
    2. - build
    3. build:
    4. stage: build
    5. script:
    6. - echo "Building WAR file"
    7. - mvn clean package -P prod
    8. artifacts:
    9. paths:
    10. - ep.war
    • 打包时碰到的问题

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

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

    1. stages:
    2. - build
    3. build:
    4. stage: build
    5. script:
    6. - echo "Building WAR file"
    7. - mvn clean package -P prod
    8. tags:
    9. - my-tag #注册时填写的标签
    10. artifacts:
    11. paths:
    12. - ep.war

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

  • 相关阅读:
    【MySQL】什么是索引?如何选择索引类型?
    Studio one 6.5中文直装版最新版,一键安装丨无套路分享丨宿主软件丨机架直播
    使用qt完善对话框功能
    加速可编程创新,2023年英特尔FPGA中国技术日披露全矩阵FPGA产品与应用方案
    《MATLAB 神经网络43个案例分析》:第30章 基于随机森林思想的组合分类器设计——乳腺癌诊断
    【UE5|水文章】在UMG上显示帧率
    CMAKE小知识
    华钜同创:跨境运营培训如何提升亚马逊产品转化率
    JAVA学习笔记(IF判断结构)
    4.3 基于注解的声明式事务和基于XML的声明式事务
  • 原文地址:https://blog.csdn.net/rwzhang/article/details/138563412