GitLab CI学习笔记:环境搭建与Runner配置
1. GitLab安装指南
# 下载地址:https://mirrors.tuna.tsinghua.edu.cn/gitlab-ce/yum/el7/ # 下载并安装GitLab包 wget https://mirrors.tuna.tsinghua.edu.cn/gitlab-ce/yum/el7/gitlab-ce-12.9.0-ce.0.el7.x86_64.rpm rpm -ivh gitlab-ce-12.9.0-ce.0.el7.x86_64.rpm # 配置GitLab域名或IP地址 vim /etc/gitlab/gitlab.rb external_url 'http://your-server-ip' # 替换为实际IP或域名 # 重新加载配置 gitlab-ctl reconfigure # 常用管理命令 gitlab-ctl start # 启动服务 gitlab-ctl stop # 停止服务 gitlab-ctl restart # 重启服务
2. GitLab Runner部署
2.1 通过RPM包安装
# 下载并安装GitLab Runner wget --no-check-certificate https://mirrors.tuna.tsinghua.edu.cn/gitlab-runner/yum/el7/gitlab-runner-12.9.0-1.x86_64.rpm rpm -ivh gitlab-runner-12.9.0-1.x86_64.rpm # 启动并检查状态 systemctl start gitlab-runner systemctl status gitlab-runner
2.2 使用Docker运行
# 拉取镜像并启动容器 docker run -d --name gitlab-runner-agent \ -v /var/run/docker.sock:/var/run/docker.sock \ -v /data/gitlab-runner/config:/etc/gitlab-runner \ gitlab/gitlab-runner:v12.9.0
3. Runner注册与配置
3.1 Runner类型说明
GitLab Runner支持以下几种类型:
- Shared:适用于整个平台的所有项目
- Group:指定项目组内的项目
- Specific:指定特定项目
3.2 Runner状态管理
Runner可处于以下状态:
- Locked:默认状态,无法运行新作业
- Paused:暂时不接受新作业
3.3 注册流程
以Shared类型为例,注册Runner:
# 获取Runner注册Token # 根据Token完成注册 gitlab-runner register --non-interactive \ --executor "docker" \ --url "http://your-gitlab-server" \ --registration-token "your-registration-token" \ --description "your-runner-description" \ --tag-list "build, test" \ --run-untagged="true" \ --locked="false" \ --access-level="not_protected"
3.4 Runner配置示例
若需要支持Tag匹配,需在GitLab中进行额外配置:
# 在项目或组设置中启用Runner的Tag匹配功能
4. GitLab Runner实用命令
4.1 启动与调试
# 使用调试模式启动 gitlab-runner --debug start # 以普通用户模式运行 gitlab-runner run # 以超级用户模式运行 sudo gitlab-runner run
4.2 注册与管理
# 注册新的Runner(非交互模式) gitlab-runner register --non-interactive # 查看已注册Runner列表 gitlab-runner list # 验证Runner连接状态 gitlab-runner verify # 注销指定Runner gitlab-runner unregister --name your-runner-name
4.3 服务管理
# 安装Runner为系统服务 gitlab-runner install --user=gitlab-agent --working-directory=/data/gitlab-runner # 卸载Runner服务 gitlab-runner uninstall # 控制服务运行状态 gitlab-runner start gitlab-runner stop gitlab-runner restart gitlab-runner status