1. 产品简介
  2. 快速开始
  3. 编写构建流程
  4. 配置构建计划
  5. 构建环境依赖包
  6. 构建制品
  7. 构建节点
  8. 管理构建计划
  9. 系统插件
  10. 自定义团队插件
  11. 最佳实践
  12. 常见问题
  13. 词汇表
持续集成 / 常见问题 / 自定义构建节点

自定义构建节点

本文档按照接入自定义构建节点时所使用的客户端,分为在使用 workercci-agent 服务时可能遇见的问题。

Worker

节点状态一直处于准备中如何解决?

  1. 在终端中输入命令 java --version 命令查看版本号是否为 8 或 11。
  2. 检查是否正确安装 Jenkins 服务。

若版本号有差异或漏装上述服务,请阅读环境依赖进行服务重装。

运行 qci_worker remove 命令删除旧有 Worker 服务,参考文档重新接入。

节点一直处于占用状态如何解决?

按照下图提示点击清理环境按钮。

若仍未恢复,运行 qci_worker remove 命令删除旧有 Worker 服务,参考文档重新接入。

节点处于离线状态如何解决?

执行命令 qci_worker up -d。若仍无法解决问题,请尝试删除当前节点后,参考文档重新接入。

如何解决 Jenkins 启动异常?

当构建任务执行失败后出现「Jenkins 启动异常」错误提示符时,可以尝试重新构建。若无法恢复请运行 qci_worker remove 命令删除旧有 Worker 服务,使用一键生成接入命令方式重新接入。

Windows 系统使用一键脚本接入时失败

检查 powershell 版本是否 >= 5.1.17。

提示凭据不存在

若遇到凭据不存在问题,例如错误日志含有类似信息:CredentialId could not be found,请清理 cci-agent 服务进程,同时删除主目录下的 .coding 文件夹。删除后参考文档接入 worker 服务。


cci-agent

如何在自定义构建节点安装插件?

自定义构建节点是以开源软件 Jenkins 为引擎进行构建的,Jenkins 提供了超过 1000 个插件支持构建、部署、自动化。CODING CI 自定义节点默认提供的 Jenkins 仅内置了最常用的部分插件,如果不能满足您项目的需求,您可以自行安装需要的插件。

  1. 首先需要您登陆 Jenkins,详见上一问的答案。

  2. 登录到 Jenkins 后,可以看到 Jenkins 管理界面,依次点击 【系统管理】–> 【插件管理】,即可进入插件管理页面。

  3. 左侧菜单栏中点击【系统管理】。

  1. 下拉页面,点击【插件管理】。

  1. 打开插件管理页面。

  1. 在插件管理页面,找到【可选插件】选项页,搜索并勾选需要安装的插件,点击页面下方的【下载待重启后安装】,在弹出的【更新中心】页面勾选 安装完成后重启 Jenkins,等待 Jenkins 安装完成后自动重启,即可使用。

自定义构建节点配额

  • 接入的自定义节点不会受到 CODING 团队配额限制;
  • 自定义构建节点不计入团队每周构建次数配额限制;
  • 自定义构建节点不受团队并行上限配额限制;
  • 自定义构建节点不受超时配额限制;

如何设置自定义构建节点的缓存?

配置了自定义构建节点池的构建计划将使用构建节点自身的缓存。

使用自定义构建节点执行的构建计划,在每次执行的时候会创建一个独立的 WorkSpace,构建结束后会将其清理。构建过程中产生在工作空间外的文件将会保留(如 maven / npm 等制品库的全局缓存)。

如何重复注册 cci-agent?

默认的情况下,如果在一台机器上重复注册 cci-agent 会提示节点已被注册,并且需要删除注册节点后才能重新注册。

这是因为注册节点需要提供 config 目录(默认为 ~/.config)和端口号(默认为 15740),您只需要手动指定不冲突的 config 目录和端口号即可重复注册节点。

在进行操作之前,请确保您已经在【项目设置】->【开发者选项】->【项目令牌】申请了具备构建节点权限的项目令牌密码。

下面为使用 ~/.coding215741 端口进行重复注册的示例操作。

./cci-agent init --config ~/.coding2 --pt <项目令牌密码>
./cci-agent up --config ~/.coding2 --jport 15741

自定义节点 Jenkins 服务无法启动

如果您的自定义节点 Jenkins 无法启动,如下情况报 Warning 时,可能是由于节点的操作系统为最小化安装的 CentOS (Minimal Install),而 Jenkins 的网页页面依赖一些图形化组件。

解决方案为执行一下命令:

yum install fontconfig

异常状态处理方式

在实际生产中,接入自定义构建节点可能会存在如客户端的网络环境,配置环境缺失等诸多不稳定因素,下面将罗列出已知异常状态的处理方式。

删除构建节点池
相关位置 构建记录错误提示 处理方式
配置构建计划 - 构建计划节点池配置中不会出现已经被删除的构建节点池
已配置构建计划 配置页面上会提示构建节点池已被删除 在构建计划中已配置的构建节点池被删除,需要用户手动重新配置
触发构建任务 该构建计划配置的构建节点池 my-pool 已被删除,请重新配置 允许触发,但构建任务会立即失败
队列中、初始化、准备构建、构建中 该构建计划配置的构建节点池 my-pool 已被删除,请重新配置 这几种状态的构建任务会立即失败
删除处于”占用”状态的构建节点
相关位置 构建记录错误提示 处理方式
队列中的构建任务 - 不受到影响,队列中的构建任务尚未分配具体的构建节点,在寻找到有效构建节点之前会一直处于队列中的状态
初始化、准备构建、构建中 构建节点 xxx 已离线 这几种状态的构建任务会立即失败
处于“占用”状态的构建节点掉线

由于客户端网络环境不稳定,构建节点可能会存在掉线的情况

掉线后客户端(构建节点)会尝试进行重试,服务端会尝试等待客户端重新连接

  • 等待超时( 3 分钟)则会判断构建节点离线,并将构建任务标记为失败
  • 若重连成功,客户端将继续上报构建的内容
相关位置 构建记录错误提示 处理方式
队列中的构建任务 - 不受到影响,队列中的构建任务尚未分配具体的构建节点,在寻找到有效构建节点之前会一直处于队列中的状态
初始化、准备构建、构建中 构建节点 xxx 已离线 这几种状态的构建任务会立即失败
配置的构建节点池没有接入节点
相关位置 构建记录错误提示 处理方式
配置构建计划 - 因为构建计划并不会直接关联构建节点,所以不影响构建计划对配置,若节点池内不存在构建节点 ,配置页面中会给出相应的警告。
已配置构建计划 - 因为构建计划并不会直接关联构建节点,所以不影响构建计划对配置,若节点池内不存在构建节点 ,配置页面中会给出相应的警告。
初始化、准备构建、构建中 该构建计划配置的构建节点池 my-pool 已被删除,请重新配置 这几种状态的构建任务会立即失败
取消构建计划授权
相关位置 构建记录错误提示 处理方式
配置构建计划 会给出相对应的提示信息 不允许用户选中未授权的构建计划
已配置构建计划 - 构建记录列表页面和构建配置页面会给出未授权的提示信息,用户需要手动调整节点池配置
触发构建任务 该构建计划没有获得构建节点池 default 的授权,请授权 允许触发,但构建任务会立即失败
初始化、准备构建、构建中 该构建计划配置的构建节点池 my-pool 已被删除,请重新配置 这几种状态的构建任务会立即失败

如何获取登录密码?

在 agent 目录执行 ./cci-agent -up -h 命令可以看到 Jenkins 的用户名密码和端口。

自定义节点离线了怎么办?

你可以按照以下思路进行排查:

  1. 机器是否设置了休眠;
  2. ps -ef | grep cci-agent 看看进程是否存在;
  3. 可以删除节点,重新接入,或者 kill -9 进程 ID 杀掉进程,重新启动;
  4. 检查机器是否配置代理或者 VPN;
  5. 如果还是出现频繁掉线可以将 ~./coding/log 目录下的 log 文件打包提交工单咨询一下技术支持。

如何访问本地 Jenkins?

步骤一:访问 Jenkins

  1. 首先需要将您的设备作为自定义构建节点接入,具体操作步骤可以点击查看

  2. 为了避免对外暴露端口,CODING CI 自定义节点默认启动的 Jenkins 只会监听本地回环地址(127.0.0.1),默认的监听端口为 15740,此时,您只能在构建节点机器通过 localhost 或者 127.0.0.1 进行访问,具体的访问地址为 http://localhost:15740

步骤二:Jenkins 登录令牌

在浏览器中输入 Jenkins 访问地址,会看到登录页面。

在 agent 目录执行 ./cci-agent -up -h 可以看到 Jenkins 的用户名密码和端口。

如何访问其他服务器上的 Jenkins?

在装有 Jenkins 服务的自定义节点中运行以下命令:

qci_worker stop
qci_worker config JENKINS_HOST=0.0.0.0
qci_worker up -d

在浏览器中访问以下网址:

http://目标服务器 IP:15740

上一篇构建任务运行失败
最近更新
感谢反馈有用
感谢反馈没用

在阅读中是否遇到以下问题?

您希望我们如何改进?

工单咨询