gitlab runner的安装与注册

2,154 阅读2分钟

注:此文照搬官方文档,英语还行的可以移步官网

官方文档-安装

官方文档-注册

官方文档-命令

安装

  1. 只需下载系统的其中一个二进制文件即可
 # 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
  1. 赋予执行权限
 chmod +x /usr/local/bin/gitlab-runner
  1. (可选)如果要使用Docker,请使用以下命令安装Docker:(这里不做选择,可以先跳过,我在用docker时遇到了一点问题)
 curl -sSL https://get.docker.com/ | sh
  1. 创建GitLab CI用户:
 useradd --comment 'GitLab Runner' --create-home gitlab-runner --shell /bin/bash
  1. 安装并作为服务运行:
 gitlab-runner install --user=gitlab-runner --working-directory=/home/gitlab-runner
 gitlab-runner start

注册

  1. 运行以下命令:
 gitlab-runner register

  1. 输入您的GitLab实例URL:
 Please enter the gitlab-ci coordinator URL (e.g. https://gitlab.com )
 https://gitlab.com
  1. 输入您获得的令牌以注册Runner:
 Please enter the gitlab-ci token for this runner
 xxx
  1. 输入Runner的描述,您可以稍后在GitLab的UI中更改:
 Please enter the gitlab-ci description for this runner
 [hostame] my-runner
  1. 输入与Runner关联的标签,您可以稍后在GitLab的UI中更改:
 Please enter the gitlab-ci tags for this runner (comma separated):
 my-tag,another-tag
  1. 输入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了

  1. 如果您选择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)