注:此文照搬官方文档,英语还行的可以移步官网
安装
- 只需下载系统的其中一个二进制文件即可
# Linux x86-64
wget -O /usr/local/bin/gitlab-runner https://gitlab-runner-downloads.s3.amazonaws.com/latest/binaries/gitlab-runner-linux-amd64
# Linux x86
wget -O /usr/local/bin/gitlab-runner https://gitlab-runner-downloads.s3.amazonaws.com/latest/binaries/gitlab-runner-linux-386
# Linux arm
wget -O /usr/local/bin/gitlab-runner https://gitlab-runner-downloads.s3.amazonaws.com/latest/binaries/gitlab-runner-linux-arm
- 赋予执行权限
chmod +x /usr/local/bin/gitlab-runner
- (可选)如果要使用Docker,请使用以下命令安装Docker:(这里不做选择,可以先跳过,我在用docker时遇到了一点问题)
curl -sSL https://get.docker.com/ | sh
- 创建GitLab CI用户:
useradd --comment 'GitLab Runner' --create-home gitlab-runner --shell /bin/bash
- 安装并作为服务运行:
gitlab-runner install --user=gitlab-runner --working-directory=/home/gitlab-runner
gitlab-runner start
注册
- 运行以下命令:
gitlab-runner register
- 输入您的GitLab实例URL:
Please enter the gitlab-ci coordinator URL (e.g. https://gitlab.com )
https://gitlab.com
- 输入您获得的令牌以注册Runner:
Please enter the gitlab-ci token for this runner
xxx
- 输入Runner的描述,您可以稍后在GitLab的UI中更改:
Please enter the gitlab-ci description for this runner
[hostame] my-runner
- 输入与Runner关联的标签,您可以稍后在GitLab的UI中更改:
Please enter the gitlab-ci tags for this runner (comma separated):
my-tag,another-tag
- 输入Runner执行程序:(我们刚才没使用官方推荐的Docker,所以这里选择shell就可以了)
Please enter the executor: ssh, docker+machine, docker-ssh+machine, kubernetes, docker, parallels, virtualbox, docker-ssh, shell:
shell
走到这里,其实runner已经注册完成了,这个时候可以去gitlab的设置里选择CI/CD就可以看到刚注册的这个runner了
- 如果您选择Docker作为执行程序,则会要求您将默认图像用于未在.gitlab-ci.yml中定义的项目:
Please enter the Docker image (eg. ruby:2.1):
alpine:latest
遇到的问题及其解决方法
后边我要通过ci/cd把打好的包放在/www目录下的,但是ci/cd运行时可能会报cp: cannot create directory ‘/www/xxx/xxx’: Permission denied,这是因为ci/cd运行时的用户是gitlab-runner,而/www目录是属于root用户的,所以我们要把/www目录的权限交给gitlab-runner
chown -hR gitlab-runner:gitlab-runner /www
如果CI/CD一直处于pending状态的话,需要上服务器去重启一下
gitlab-runner restast
如果遇到其他权限问题解决不了,可以尝试修改GitLab Runner的权限跟root保持一致
vim /etc/passwd
打开passwd文件后找到gitlab-runner用户,将
#修改前
gitlab-runner:x:601:601:GitLabRunner:/home/gitlab-runner:/bin/bash 权限组修改为跟root的一致
#修改后
gitlab-runner:x:0:0:GitLabRunner:/home/gitlab-runner:/bin/bash。(root的权限组名为0)