1. 持续集成
  2. 词汇表

自定义构建节点常见问题

如何在自定义构建节点中访问本地 Jenkins

步骤一:访问 Jenkins

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

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

  3. 如果无法访问,可以通过命令 cat ~/.coding/cci-agent.yml 查看端口 (publicPort)

  4. 如果您希望在构建节点外部访问 Jenkins,可以在执行 up 命令启动程序时添加 --jserver 0.0.0.0 参数,同时也可以使用 --jport 指定监听端口,假设构建节点 ip 为 NODE_IP,指定的监听端口为 PORT 此时的访问地址为 http://NODE_IP:PORT

步骤二:Jenkins 登录令牌

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

Jenkins 登录用户名和密码分别为 coding11bf48c0403ec88231b530b5f98a113cad,您可以执行 ./cci-agent up -h 命令,在帮助文档中查看更多命令

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

自定义构建节点是以开源软件 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 已被删除,请重新配置 这几种状态的构建任务会立即失败

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

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

您希望我们如何改进?