CI-CD之Gitlab-runner配置与服务注册

2,467 阅读1分钟

安装 gitlab-runner

  • 获取二进制文件
# Linux x86-64
$ sudo curl -L --output /usr/local/bin/gitlab-runner https://gitlab-runner-downloads.s3.amazonaws.com/latest/binaries/gitlab-runner-linux-amd64
  • 赋予可执行权限
$ sudo chmod +x /usr/local/bin/gitlab-runner
  • 创建gitlab-runner目录
$ sudo gitlab-runner install --user=gitlab-runner --working-directory=/home/gitlab-runner
# 值得注意的是user这个参数是运行gitlab-runner这个用户,所以需要运行命令时需要注意权限

$ sudo gitlab-runner start
# 启动gitlab-runner

注册 gitlab-runner

$ gitlab-runner register --name my-runner --url http://gitlab.example.com --registration-token my-registration-token
  • --name: 为runer的名字
  • --url: http://gitlab的URI
  • --registration-token: gitlab自动生成的token

此处会交互式的询问gitlab的详细配置信息:

  • name:gitlab-runner的名称标识
  • url:gitlab部署的URI 例:gitlab.luck.com/
  • token:runner里面会有自动生成的Token直接复制就行,但是,这里有个问题: 这个token分为3类:
    • 全局token:即这个使用这个token创建的runner的优先级最高,服务于整个gitlab平台,任何项目和组都可以完全匹配。
    • 组token:即服务于整个组别,只有在这个组里的项目才可以使用这个runner,针对于一个团队(可以共享组里的预定义变量)
    • 项目token:即仅服务于一个项目,无法于其他的项目共享(其实硬要这么来也行)
  • executor:runner执行任务的方式:
    • Shell
    • Docker
    • Kubernetes
    • SSH
    • Virtualbox
    • Parallels
    • Docekr-Machine
  • tag: 此runner的标签,用于区别其他的runner,可以针对变异环境来区别执行的主机,在gitlab-ci中有非常大的用处,会在下一篇幅中讲解。 例: IOS 、JAVA

验证 gitlan-runner

$ gitlab-runner list	//列举gitlab-runner的个数(gitlab支持单台主机上多个runner)

$ gitlab-runner verify	//验证gitlab-runner服务状态及runner-id

取消 gitlab-runner接入

支持的方式:

$ gitlab-runner unregister --url http://gitlab的URI --token 取消接入的runner-id
  • --token //按照runner token的方式
  • --name //按照runner名字的方式
  • --all-runners //全部取消注册 (危险操作)

gitlab-runner支持的其他操作参数

  • gitlab-runner install
  • gitlab-runner uninstal
  • gitlab-runner start
  • gitlab-runner stop
  • gitlab-runner restart
  • gitlab-runner status