
这篇讲流水线 YAML 写好了、任务却没人执行时怎么把运行器接到构建机上。看完你可以在控制台新增 Runner装在构建机上、替 AngusGit 执行任务的程序生成 1 小时有效的注册令牌按 Docker 或 Zip 把接入命令复制到构建机上执行并确认它心跳上线。流水线和运行器在团队版和企业版中提供社区版没有CI/CD菜单本文的操作不适用。1. 准备一台构建机接入之前先确认网络、容器环境和宿主机环境这三件事。Docker 方式会在这台机器上为每个任务拉起容器按镜像临时启动的隔离环境Zip 方式则让任务直接在宿主机运行器进程所在的那台机器上执行。检查项适用方式要求网络连通全部方式构建机主动连 AngusGitHTTPS / WebSocket 长连接AngusGit 不需要反连构建机容器环境Docker 方式机器装好 Docker当前用户有权限执行docker并挂载/var/run/docker.sock宿主机环境Zip 方式机器装好 JDK 21、curl和unzip当前用户有sudo权限安装到/opt/AngusRunnerAgent在构建机上用curl -I https://你的 AngusGit 地址试一下能返回 HTTP 状态码说明网络是通的。2. 在控制台新增运行器打开接入页侧栏进入CI/CD → 运行器点右上角新增 Runner页面切到接入新 Runner。确认控制面地址控制面地址默认取当前浏览器打开的站点地址。页面提示「若 Runner 所在网络访问不到请改为控制面对外可达的 URL」。例如你在办公网用域名访问 AngusGit而构建机在机房只能用内网 IP 访问这里就要改成构建机能访问的那个地址。填名称和标签Runner 名称可选写清是哪台机器例如build-linux-01。标签可选用逗号分隔例如linux,docker。流水线里的任务会按标签挑运行器这里的标签要和任务里写的对得上。不确定时先留空用每种接入方式的默认标签。最大并发 Job 数是这台机器同时最多跑几个任务Job 就是流水线里的一组步骤默认 4可填 1 到 64按机器的 CPU 和内存决定。生成注册令牌点注册令牌旁的生成令牌。页面提示「已签发短期注册令牌明文仅显示一次」下方显示「令牌有效期至 …」有效期 1 小时。令牌会自动填进下面的命令里。没有令牌时点复制命令会提示「请先生成或粘贴注册令牌后再复制命令」。下面这张是还没点生成令牌时的页面。控制面地址是https://git.anguskit.com名称build-linux-01标签linux,docker最大并发 Job 数 4。黄色提示是「尚未填写令牌」复制命令是灰的。三个页签是Zip 安装、Docker 一键拉起、一键安装脚本默认停在Docker 一键拉起。页签上没有「推荐」两个字推荐用 Docker 是本文的建议。3. 选一种接入方式复制命令三个页签生成的命令都已经带上了你填的地址、名称、标签、并发数和令牌。Docker 一键拉起推荐页签提示「从 AngusRepo 公开仓库拉取 repo.anguskit.com/docker-public/angus-runner-agent」。命令形如dockerrun-d--restartalways--namebuild-linux-01\-v/opt/AngusRunnerAgent/logs:/opt/AngusRunnerAgent/logs\-v/opt/AngusRunnerAgent/data:/opt/AngusRunnerAgent/data\-v/var/run/docker.sock:/var/run/docker.sock\-eRUNNER_SERVER_URLwss://git.anguskit.com/ws/runner\-eRUNNER_REGISTER_TOKEN注册令牌\-eRUNNER_NAMEbuild-linux-01\-eRUNNER_LABELSlinux,docker\-eRUNNER_MAX_CONCURRENCY4\repo.anguskit.com/docker-public/angus-runner-agent:1.0.0几个要点--restartalways让运行器在机器重启后自动恢复挂载/var/run/docker.sock是为了让运行器能在这台机器上为每个任务启动容器标签留空时默认是linux,docker。Zip 安装页签提示「从 AngusRepo 下载 Zip安装到 /opt/AngusRunnerAgent」。命令会依次下载并解压AngusRunnerAgent-1.0.0.zip复制到/opt/AngusRunnerAgent设置RUNNER_SERVER_URL、RUNNER_REGISTER_TOKEN等环境变量然后执行./doctor-native.sh检查本机环境最后执行./startup-agent.sh启动。这种方式下任务直接在宿主机上执行用的是机器上装好的 JDK、Node.js 等工具。页签提示「NATIVE 流水线不要加 docker 标签」带了docker标签的运行器会被当作 Docker 运行器领不到宿主机任务。一键安装脚本命令形如curl-fsSLhttps://git.anguskit.com/runner/install.sh|bash-s--\--urlhttps://git.anguskit.com--token注册令牌\--namebuild-linux-01--labelslinux,docker --max-concurrency4页签提示「从控制面下载 /runner/install.sh在目标机用 Docker 拉起公开镜像」。效果和 Docker 方式相同适合不想手动拼docker run参数的情况。两种 Docker 方式和 Zip 方式分别适合什么任务见文末参考里的「Docker 还是宿主机」一文。4. 在构建机上执行等它上线把复制的命令粘贴到构建机的终端里执行。然后回到控制台点完成并等待上线。页面显示「正在等待 “build-linux-01” 心跳上线…」每隔几秒检查一次。运行器连上之后提示「Runner “build-linux-01” 已上线」列表里出现这台机器状态是在线或空闲。接入成功后可以到 CI/CD → 运行器 对照列表。当前实例已经有两台空闲的运行器dev-1运行模式 NATIVE执行器 SHELL标签linux、native、dev并发 0/2priv-1运行模式 DOCKER执行器 SHELL标签linux、docker并发 0/2。按上面命令接入的build-linux-01也会出现在这张表里状态是空闲最近心跳是「刚刚」。等了 90 秒还没上线页面会提示「等待心跳超时请稍后刷新列表确认」。这不一定是失败运行器可能还在拉镜像。过一两分钟刷新列表仍然没有按第 6 节排查。5. 接好之后上线之后日常只要盯状态、改标签或暂时停用一般不用重装。运行器的状态。列表里有在线、空闲、忙碌、离线、已禁用几种。运行器每 15 秒发一次心跳超过 90 秒没有心跳、连接也断了就会变成离线。改名称、标签和并发。在列表里打开编辑运行器修改不用重新安装。重装或换机器。打开运行器详情的安装运行器页签在安装 / 重装命令里重新生成命令。页面提示「重装到新主机时请重新生成或粘贴注册令牌」因为原来那把注册令牌已经在第一次接入时用掉了。暂时不用这台机器。点禁用它就不再领取新任务要恢复时点启用。私有化部署时运维也可以在服务端配置一把共享注册令牌CICD_RUNNER_REGISTER_TOKEN接入时直接粘贴。这把令牌的默认值是change-me-runner-register-token上线前一定要改掉否则任何知道默认值、又能访问 AngusGit 的机器都能把自己注册成运行器来领取任务。6. 接入失败时你看到的原因怎么处理「等待心跳超时请稍后刷新列表确认」刷新后仍没有构建机访问不到控制面地址或者注册令牌已过期在构建机上curl -I 控制面地址检查网络超过 1 小时的令牌重新生成再复制一次命令Docker 方式执行后容器很快退出令牌不对或者连不上控制面执行docker logs build-linux-01看最后几行报错Docker 方式拉镜像失败构建机访问不到repo.anguskit.com让构建机能访问外网或者把镜像提前导入到内网镜像仓库再把命令里的镜像地址改成内网地址Zip 方式doctor-native.sh报错缺 JDK 21 或其他依赖按它打印的提示补装再执行./startup-agent.sh运行器上线了但任务一直等待中任务要求的执行方式或标签和这台运行器对不上看运行详情里任务的等待原因排查方法见文末参考里的「运行器不接任务」一文运行器进程自己的日志在运行器详情的运行日志页签里能看到页面说明是「Runner 进程日志包含注册、心跳、接单、拉镜像和步骤执行记录」。旧版本运行器不上报这部分日志时显示「暂无进程日志需 Runner 升级到支持上报的版本」这时到构建机上看/opt/AngusRunnerAgent/logs目录。常见问题一台机器能装几个运行器通常一个就够了用最大并发 Job 数控制同时跑几个任务。需要在同一台机器上同时提供 Docker 和宿主机两种执行方式时可以装两个一个用 Docker 方式、带docker标签一个用 Zip 方式、不带docker标签名称要区分开。注册令牌过期了已经接入的运行器会掉线吗不会。控制台生成的注册令牌是一次性的只在第一次接入时使用。接入成功后AngusGit 会给这台运行器下发一把长期身份令牌运行器把它保存在本机以后重启、断线重连都用这把。要再接入一台新机器时重新生成一把注册令牌即可。运行器要开放端口吗不需要。是运行器主动连 AngusGit构建机上不需要对外开放任何端口。小结运行器是装在构建机上、替 AngusGit 执行流水线任务的程序。在CI/CD → 运行器 → 新增 Runner里确认构建机能访问的控制面地址填名称、标签和并发数点生成令牌选一种接入方式复制命令到构建机上执行再点完成并等待上线。有 Docker 的机器优先用 Docker 方式要在宿主机上直接构建就用 Zip 方式并装好 JDK 21。私有化部署时共享注册令牌的默认值必须改掉。结论在CI/CD → 运行器 → 新增 Runner填好构建机可达的控制面地址、标签并点生成令牌复制命令到构建机执行后列表出现在线 / 空闲状态即接入完成。参考文章AngusGit 手册运行器管理AngusGit 手册流水线基础流水线任务在哪跑Docker 容器还是宿主机运行器不接任务标签、在线和并发对不上