社区高频问题|如何监控极狐GitLab Runner、集成 LDAP 报错?

问题预览

功能使用

  • 如何按分支触发 Pipeline 中不同的 Job?
  • Maven 官方仓库在境外,在内地拉取依赖包很慢,如何实现企业级加速?
  • 如何监控极狐GitLab Runner?
  • 请问有什么好用的极狐GitLab 命令行工具推荐吗?
  • 请问是否有 API 能获取指定 Commit 的文件变更列表和文件变更行数?
  • 请问极狐GitLab 创建项目仓库怎么修改默认的分支名称?

安装配置

  • 如何安装极狐GitLab 到其他分区?
  • 极狐GitLab CI/CD 使用 Vault 由 CI_JOB_JWT 转换为 id_tokens 时出错?
  • 开启双重认证后丢失设备怎么恢复认证码?

生态集成

  • 极狐GitLab 集成 LDAP 后登录提示 Access denied for your LDAP account;
  • 极狐GitLab + Jenkins 搭建自动部署提交代码无法触发自动构建。

问题一 :极狐GitLab + Jenkins 搭建自动部署提交代码无法触发自动构建

➤ 问题描述

手动点击对应的 webhook 测试是可以成功的,提交代码无法自动触发,请问是怎么回事?

➤ 问题解答

官方更建议直接集成 Jenkins 的方式,而不是使用 webhook,详见:

Jenkins | GitLab

也可以参考公众号文章极狐 GitLab 与 Jenkins 集成的 N 种方式

原帖链接:gitlab + Jenkins搭建自动部署提交代码无法触发自动构建

问题二:请问极狐GitLab 创建项目仓库怎么修改默认的分支名称?

➤ 问题描述

现在创建一个仓库默认创建的分支是 main,我习惯使用 master,我想把默认的改成 master。

➤ 问题解答

自助管理实例的管理员可以为该实例上托管的项目自定义初始分支。单个群组和子组可以为其项目覆盖此实例范围的设置。

  1. 在顶部栏上,选择 主菜单 → 管理员
  2. 在左侧边栏上,选择 设置 → 仓库
  3. 展开 默认初始分支名称
  4. 将默认初始分支更改为您选择的自定义名称。
  5. 选择 保存更改

更改设置后在此实例上创建的项目使用自定义分支名称,除非群组级别或子组级别配置覆盖它。

参考文档:默认分支

默认分支 | 极狐GitLab

原帖链接:请问极狐gitlab创建项目仓库怎么修改默认的分支名称

问题三:极狐GitLab CI/CD 使用 Vault 由 CI_JOB_JWT 转换为 id_tokens 时出错?

➤ 问题描述

在极狐GitLab CI/CD 中使用外部密码器 vault,当切换到 id_tokens 时出现如下认证错误:
image

➤ 问题解答

id_tokens 用法发布之前,在极狐GitLab CI/CD 中使用外部的密码器 vault,都是使用 CI_JOB_JWT 的验证方式,出现以上问题,我们可以通过 pyjwt 的命令解密 CI_JOB_JWT 或者 VAULT_ID_TOKEN 来查看二者的差异。

结合官方文档 (RFC 7519: JSON Web Token (JWT)) 可以看出,两种使用方式的 issuer claims 是不一致的,在旧的使用方式中仅使用域名即可,但是新的方式中需要使用 url 的方式。因此切换使用方法时需要修改 vault 的 auth/jwt/config.bound_issuer 才可以,不过官方文档并没有针对此改变进行补充说明,在实际使用过程中需要注意,此外为了预防 CI_JOB_JWT 在 16.x 版本后过期,请及时更新使用 id_tokens。

原帖链接:[分享] GitLab CI/CD 使用 Vault 由 CI_JOB_JWT 转换为 id_tokens 时的注意事项

问题四:如何按分支触发 Pipeline 中不同的 Job?

➤ 问题描述

在实际的生产环境中可能存在多个分支,经常遇到分支中的代码需要测试不同的功能或者需要部署到不同的环境的场景。则需要在 pipeline 中定义在不同的分支上面做不同的事。

➤ 问题解答

可以借助极狐GitLab-ci 的关键字 rules:if 来实现,实现详情见下方原贴。

原帖链接:安装gitlab到其他分区

问题五 :请问如何监控极狐GitLab Runner?

➤ 问题解答

关于如何使用 Grafana + Prometheus 来监控极狐GitLab Runner,可以查看公众号文章让你的 Runner 可视化,使用 Prometheus + Grafana 实现极狐GitLab Runner 可视化

原帖地址:[分享] 如何监控GitLab Runner

问题六 :开启双重认证后丢失设备怎么恢复认证码?

➤ 问题描述

1 年前在极狐GitLab 登录时开启了双重认证,1 年后手机和电脑都换成新的再次登录时,无法获取到正确的验证码,请问怎么恢复验证码呢?

➤ 问题解答

请参考文档 Two-factor authentication:Two-factor authentication | GitLab

如果有当时的 recovery code的话,在登录验证码那里直接粘贴 recovery code。

如果 recovery code 也丢了的话,有 ssh key 的话可以重新生成 recovery code。

可以尝试使用 SSH 生成新恢复码,参考文档双重验证:双重验证 | 极狐GitLab

原帖地址:Terraform backend

问题七 :如何安装极狐GitLab 到其他分区?

问题描述

  • 系统:centos7.9;
  • 原因:系统盘太小(物理分区);
  • 尝试:EXTERNAL_URL=“192.168.1.1:8080” yum -c /etc/yum.conf --installroot=/data/gitlab --releasever=/ install -y gitlab-jh;
  • 结果:没有环境变量,无法使用;
  • 需求:yum install gitlab-jh 到其他分区。

➤ 问题解答

用软连接,将其他分区的目录软链接成为 /var/opt/gitlab 目录,确保目录不变就行。

原帖地址:安装gitlab到其他分区

问题八:Maven 官方仓库在境外,在内地拉取依赖包很慢,如何实现企业级加速?

➤ 问题描述

目前业界的公益加速不承诺 SLA、不回源、更新不及时导致编译失败,如何实现企业级加速?

➤ 问题解答

maven_central_request_forwarding 功能可以在项目首次下载依赖包时把依赖包缓存到极狐GitLab 本地仓库,以后再次下载时可以直接从极狐GitLab 下载,节约编译时间。如何开启 maven_central_request_forwarding 功能,见下方原帖。

原帖链接:Maven Mirror 企业级代理加速

问题九:极狐GitLab 集成 LDAP 后登录提示 Access denied for your LDAP account

➤ 问题描述

我按照官方的免费版安装指导说明安装了 15.11.3 版本的 gitlab-jh。后续配置完成 LDAP,reconfigure 成功后重启,并且做了 ldap:check 提示是 Success。但是在登录页面用 LDAP 的账户登录时始终提示 “Access denied for your LDAP account”。

想请教一下:

  1. 我还可以使用什么方式查看到具体的报错信息?
  2. 同样的配置在 11.5.1 的 gitlab-jh 上可以正常登录,是否因为新版本有新特性导致的?

LDAP 的配置内容如下:

gitlab_rails[‘ldap_enabled’] = truegitlab_rails[‘prevent_ldap_sign_in’] = falsegitlab_rails[‘ldap_servers’] = YAML.load <<-‘EOS’main:label: ‘my.LDAP’host: ‘172.16.9.23’port: 389uid: ‘uid’bind_dn: ‘’password: ‘*’encryption: ‘plain’base: '’EOS

➤ 问题解答

可以使用这个 ldapsearch *(Troubleshooting LDAP | GitLab

另外,可以试试加上 attributes 相关的配置。

     attributes:       username: ['uid', 'userid', 'sAMAccountName']       email:    ['mail', 'email', 'userPrincipalName']       name:       'cn'       first_name: 'givenName'       last_name:  'sn'

还可以试试把 uid 的值改成 cn。

原帖链接:【求助】gitlab集成ldap后登录提示Access denied for your LDAP account

问题十:请问有什么好用的极狐GitLab 命令行工具推荐吗?

➤ 问题解答

推荐 GitLab CLI - glab

GLab 是一个开源的 GitLab CLI 工具。它将 GitLab 带到您的终端:在您已经使用 Git 和您的代码的地方旁边,无需在窗口和浏览器选项卡之间切换,即可完成操作请求。例如:创建 issue,查看 issue board,创建 mr 等众多操作。

工具安装: GitLab CLI - `glab` | GitLab

详细介绍见原帖:[分享] GitLab 命令行工具 glab 推荐

问题十一:请问是否有 API 能获取指定 Commit 的文件变更列表和文件变更行数?

➤ 问题描述

尝试了 v4 的 commit.diff(),在有文件超大时,diff 键不会给出变更记录,无法通过手动处理,请教下是否有 api 直接提供此能力?

➤ 问题解答

可以试试这个 API:Merge requests API | GitLab

原帖链接:Maven Mirror 企业级代理加速


如果您有使用的问题,或想查询极狐GitLab 相关配置,可以在docs.gitlab.cn中搜索关键词,就可以快速定位。

欢迎加入极狐GitLab 技术交流群,与社区用户、行业专家进行深入探讨,请扫描下图二维码,添加小助手微信。