局域网 Ubuntu GPU 机器安装 GitLab Runner 完整教程:GitLab 在 192.168.1.42,Runner 在 192.168.1.41把里面的glrt-xxxxxxxx替换成你在 GitLab 页面拿到的 Runner Token 即可。一、本文场景本文假设局域网里有两台机器:机器IP作用GitLab 服务器192.168.1.42已安装 GitLab,代码仓库在这里GPU Ubuntu 服务器192.168.1.41安装 GitLab Runner,负责跑 CI/CD 任务和 GPU 任务GitLab 官方建议 Runner 安装在不同于 GitLab 服务端的机器上,这样安全性和性能都更好。GitLab Runner 的作用是接收 GitLab CI/CD 任务并执行。(docs.gitlab.com)本文采用:GitLab 地址:http://192.168.1.42 Runner 机器:192.168.1.41 Runner 类型:Docker executor GPU 类型:NVIDIA GPUDocker executor 配合 NVIDIA Container Toolkit,可以让 CI 任务在 Docker 容器里调用 GPU。GitLab 官方文档说明,Docker executor 使用 GPU 需要安装 NVIDIA Driver 和 NVIDIA Container Toolkit,并在config.toml的[runners.docker]下配置gpus = "all"。(docs.gitlab.com)二、整体流程我们要做 6 件事:1. 确认 192.168.1.41 能访问 192.168.1.42 2. 在 192.168.1.41 安装 NVIDIA 驱动 3. 在 192.168.1.41 安装 Docker 4. 在 192.168.1.41 安装 NVIDIA Container Toolkit 5. 在 192.168.1.41 安装 GitLab Runner 6. 在 GitLab 页面创建 Runner,并把 Runner 注册到 192.168.1.41三、在 GPU 机器上检查网络以下命令都在 GPU 机器192.168.1.41上执行。ping-c4192.168.1.42如果 GitLab 是 HTTP 访问:curl-Ihttp://192.168.1.42正常情况下能看到类似:HTTP/1.1 302 Found或者:HTTP/1.1 200 OK如果访问失败,先检查:ipaddriproute确认两台机器在同一个局域网,并且 GitLab 服务器防火墙没有拦截 80 或 443 端口。四、确认 GitLab 的访问地址在浏览器打开:http://192.168.1.42能打开 GitLab 登录页即可。如果你的 GitLab 是 Omnibus 方式安装的,并且 Runner 注册时报错找不到 GitLab 地址,可以在 GitLab 服务器192.168.1.42上检查:sudogrep"^external_url"/etc/gitlab/gitlab.rb建议配置成:external_url'http://192.168.1.42'修改方式:sudocp/etc/gitlab/gitlab.rb /etc/gitlab/gitlab.rb.bak.$(date+%F)sudosed-i"s|^external_url.*|external_url 'http://192.168.1.42'|"/etc/gitlab/gitlab.rbsudogitlab-ctl reconfigure然后再次访问:http://192.168.1.42五、在 GPU 机器安装 NVIDIA 驱动先检查 GPU 是否已经可用:nvidia-smi如果能看到显卡信息,说明驱动已经安装好了,可以跳过本节。如果提示:command not found或者无法识别 GPU,可以安装推荐驱动:sudoaptupdatesudoaptinstall-yubuntu-drivers-common ubuntu-drivers devicessudoubuntu-drivers autoinstallsudoreboot重启后再次执行:nvidia-smi能看到显卡信息即可继续。六、在 GPU 机器安装 DockerGitLab Runner 的 Docker executor 需要 Docker。Docker 官方推荐通过 Docker 的 apt 仓库安装 Docker Engine。(Docker Documentation)在192.168.1.41执行:sudo