本文为[原创]文章,转载请标明出处。原文链接:https://weyunx.com/2019/01/23…原文出自微云的技术博客准备工作下载安装包# Linux x86-64sudo wget -O /usr/local/bin/gitlab-runner https://gitlab-runner-downloads.s3.amazonaws.com/latest/binaries/gitlab-runner-linux-amd64# Linux x86sudo wget -O /usr/local/bin/gitlab-runner https://gitlab-runner-downloads.s3.amazonaws.com/latest/binaries/gitlab-runner-linux-386# Linux armsudo wget -O /usr/local/bin/gitlab-runner https://gitlab-runner-downloads.s3.amazonaws.com/latest/binaries/gitlab-runner-linux-arm如果是离线安装的话,可以手工联网下载,然后放到内网中,放到/usr/local/bin目录下,并命名为gitlab-runner# 赋予可执行权限sudo chmod +x /usr/local/bin/gitlab-runner# 创建 GitLab CI 用户sudo useradd –comment ‘GitLab Runner’ –create-home gitlab-runner –shell /bin/bash # 安装sudo gitlab-runner install –user=gitlab-runner –working-directory=/home/gitlab-runner# 运行sudo gitlab-runner start注册 Runner首先需要准备URL和Token,可以在 GitLab 项目的 settings->CI/CD->Runners settings 中找到# 注册sudo gitlab-runner register# 输入本地的 gitlab URLPlease enter the gitlab-ci coordinator URL (e.g. https://gitlab.com )https://gitlab.com# 输入 TokenPlease enter the gitlab-ci token for this runnerxxx# 输入 tag, 注意要跟 job 的 tag 一致,后续详细说明Please enter the gitlab-ci tags for this runner (comma separated):my-tag,another-tag# 选择 executor, Please enter the executor: ssh, docker+machine, docker-ssh+machine, kubernetes, docker, parallels, virtualbox, docker-ssh, shell:docker使用 tagsRunner 默认只会在配置了和自身 tags 一致的项目上运行,是为了防止 Runner 运行在大量项目上出现问题。同时可以在 Runner 中取消该设置,允许 Runner 运行在无 tags 的项目上,配置如下Visit your project’s Settings ➔ CI/CDFind the Runner you wish and make sure it’s enabledClick the pencil buttonCheck the Run untagged jobs optionClick Save changes for the changes to take effectExecutor 比较ExecutorSSHShellVirtualBoxParallelsDockerKubernetesClean build environment for every build✗✗✓✓✓✓Migrate runner machine✗✗partialpartial✓✓Zero-configuration support for concurrent builds✗✗ (1)✓✓✓✓Complicated build environments✗✗ (2)✓ (3)✓ (3)✓✓Debugging build problemseasyeasyhardhardmediummediumIt’s possible, but in most cases it is problematic if the build uses services installed on the build machineIt requires to install all dependencies by handFor example using Vagrant具体详细可参考这里GitLab 中配置 Runner在 GitLab 项目中新增.gitlab-ci.yml ,可以选择预先设置好的模版。未完待续…