尧图网站设计 尧图网站设计YAOTU DESIGN
ARTICLE DETAIL

资讯详情

深耕网站设计与一线实操的经验洞察。

GitLab Runner 安装与配置全指南

GitLab Runner 安装与配置全指南 1. GitLab Runner 核心概念解析GitLab Runner 是 GitLab CI/CD 生态中的关键组件它负责执行定义在 .gitlab-ci.yml 文件中的自动化任务。当开发者将代码推送到 GitLab 仓库时Runner 会自动触发构建、测试和部署等操作。与常见的 CI/CD 工具不同GitLab Runner 采用去中心化架构可以部署在任何支持 Docker 的环境中。Runner 的核心价值在于它提供了灵活的执行环境选择。你可以根据项目需求选择不同的执行器executorShell直接在 Runner 所在主机上执行命令Docker在隔离的容器环境中运行任务Kubernetes在 K8s 集群中动态创建 Pod 执行任务SSH通过 SSH 连接到远程服务器执行命令重要提示生产环境推荐使用 Docker 或 Kubernetes 执行器它们能提供更好的环境隔离性和可重复性。2. 安装环境准备2.1 系统要求检查在开始安装前需要确认目标系统满足以下要求操作系统支持主流 Linux 发行版Ubuntu/Debian/CentOS/RHEL、macOS 和 Windows内存至少 1GB 可用内存运行 Docker 时需要额外资源磁盘空间至少 500MB 可用空间网络能够访问 GitLab 服务器如果是自托管 GitLab对于 Linux 系统建议运行以下命令检查基础依赖# 检查内核版本建议3.10 uname -r # 检查内存 free -h # 检查磁盘 df -h2.2 权限规划根据安全最佳实践建议创建专用用户和用户组来运行 Runnersudo groupadd gitlab-runner sudo useradd -g gitlab-runner -m -d /home/gitlab-runner -s /bin/bash gitlab-runner如果使用 Docker 执行器需要将用户加入 docker 组sudo usermod -aG docker gitlab-runner配置 sudo 权限仅限 Shell 执行器echo gitlab-runner ALL(ALL) NOPASSWD: ALL | sudo tee /etc/sudoers.d/gitlab-runner3. 多平台安装指南3.1 Linux 系统安装对于基于 Debian 的系统Ubuntu 等# 添加官方仓库 curl -L https://packages.gitlab.com/install/repositories/runner/gitlab-runner/script.deb.sh | sudo bash # 安装特定版本推荐 sudo apt-get install gitlab-runner16.5.0 # 或者安装最新版 sudo apt-get install gitlab-runner对于 RHEL/CentOS 系统# 添加官方仓库 curl -L https://packages.gitlab.com/install/repositories/runner/gitlab-runner/script.rpm.sh | sudo bash # 安装 sudo yum install gitlab-runner-16.5.0-13.2 macOS 安装推荐使用 Homebrew 安装brew install gitlab-runner brew services start gitlab-runner或者手动下载二进制文件# 下载 sudo curl --output /usr/local/bin/gitlab-runner https://gitlab-runner-downloads.s3.amazonaws.com/latest/binaries/gitlab-runner-darwin-amd64 # 设置可执行权限 sudo chmod x /usr/local/bin/gitlab-runner # 启动 gitlab-runner install gitlab-runner start3.3 Windows 安装下载二进制文件Invoke-WebRequest -Uri https://gitlab-runner-downloads.s3.amazonaws.com/latest/binaries/gitlab-runner-windows-amd64.exe -OutFile gitlab-runner.exe以管理员身份运行 CMD 执行gitlab-runner.exe install gitlab-runner.exe start或者使用 Chocolatey 安装choco install gitlab-runner4. Runner 注册与配置4.1 获取注册令牌在 GitLab 项目中获取 Runner 注册令牌进入项目 → 设置 → CI/CD展开 Runners 部分复制 Set up a specific Runner manually 下的注册令牌对于共享 Runner管理员权限进入管理员区域 → CI/CD → Runners复制注册令牌4.2 交互式注册执行注册命令sudo gitlab-runner register按照提示输入GitLab 实例 URL如 https://gitlab.com/注册令牌Runner 描述建议包含环境信息标签用逗号分隔如 docker,production执行器类型推荐 docker如果选择 Docker设置默认镜像如 alpine:latest4.3 高级配置配置文件通常位于Linux/etc/gitlab-runner/config.tomlWindowsC:\GitLab-Runner\config.toml典型 Docker 执行器配置示例[[runners]] name AWS Docker Runner url https://gitlab.com/ token PROJECT_REGISTRATION_TOKEN executor docker [runners.docker] tls_verify false image alpine:latest privileged false disable_entrypoint_overwrite false oom_kill_disable false disable_cache false volumes [/cache, /var/run/docker.sock:/var/run/docker.sock] shm_size 05. 生产环境优化5.1 资源限制在 config.toml 中设置资源限制concurrent 4 # 最大并发作业数 check_interval 3 # 检查新作业间隔秒 [[runners]] [runners.resource] memory 4GB # 内存限制 cpu 2 # CPU核心数5.2 Docker 配置优化使用镜像缓存[runners.docker] pull_policy if-not-present配置私有镜像仓库[runners.docker] allowed_images [my.registry.com/*:*] [runners.docker.auth] server my.registry.com username docker-user password docker-password5.3 日志管理配置日志轮转Linuxsudo nano /etc/logrotate.d/gitlab-runner添加内容/var/log/gitlab-runner/*.log { daily missingok rotate 7 compress delaycompress notifempty copytruncate }6. 常见问题排查6.1 连接问题错误现象Runner 无法连接 GitLab 排查步骤检查网络连通性curl -v https://gitlab.example.com/api/v4/version检查防火墙规则验证 Runner 令牌是否有效6.2 作业卡住错误现象作业长时间处于 pending 状态 解决方案检查 Runner 是否在线sudo gitlab-runner verify检查并发限制sudo gitlab-runner list | grep concurrent检查标签匹配是否正确6.3 Docker 执行器问题错误现象无法拉取镜像或启动容器 排查步骤检查 Docker 服务状态systemctl status docker测试 Docker 命令docker run --rm alpine echo test检查用户权限groups gitlab-runner7. 维护与升级7.1 服务管理命令常用命令# 启动 sudo gitlab-runner start # 停止 sudo gitlab-runner stop # 重启 sudo gitlab-runner restart # 状态检查 sudo gitlab-runner status # 查看运行日志 journalctl -u gitlab-runner -f7.2 版本升级Linux 系统升级# Debian/Ubuntu sudo apt-get update sudo apt-get install gitlab-runner # RHEL/CentOS sudo yum update gitlab-runner验证版本gitlab-runner --version7.3 备份配置重要配置文件/etc/gitlab-runner/config.toml/etc/systemd/system/gitlab-runner.service服务文件备份命令sudo tar czvf gitlab-runner-backup-$(date %F).tar.gz \ /etc/gitlab-runner \ /var/log/gitlab-runner8. 安全最佳实践使用最小权限原则运行 Runner定期轮换 Runner 注册令牌为不同环境使用不同的 Runner开发/测试/生产限制 Docker 执行器的特权模式[runners.docker] privileged false启用 TLS 验证[runners.docker] tls_verify true ca_certificates /etc/gitlab-runner/certs/ca.crt我在生产环境部署 Runner 的经验是为每个项目组单独部署 Runner 实例并使用不同的标签隔离环境。同时建议配置 Prometheus 监控 Runner 的健康状态设置合理的告警阈值确保 CI/CD 管道的稳定性。
返回列表