runner安装配置 - 1990bingliu/ubuntu_gitlab GitHub Wiki

如何配置安装gitlab runner

1.安装

curl https://packages.gitlab.com/gpg.key 2> /dev/null | sudo apt-key add - &>/dev/null
# add below to file /etc/apt/sources.list.d/gitlab-ce.list
# deb https://mirrors.tuna.tsinghua.edu.cn/gitlab-runner/ubuntu xenial main
sudo apt-get update
sudo apt-get install gitlab-runner

https://blog.csdn.net/WMSOK/article/details/80017467

默认情况,Runner是通过gitlab-runner的这个用户来执行一系列操作,其工作目录也是在gitlab-runner的用户目录下面。如果使用默认gitlab-runner用户操作一些文件时经常会遇到权限问题,就需要给gitlab-runner赋权。 默认认的gitlab-runner用户目录在 /home/下可以看到,runner时,会自动 fetch文件到工作目录下的builds中

2. 配置与GitLab CI 绑定

sudo gitlab-runner register

输入注册runner的相关信息

gitlab-ci-multi-runner register:执行注册命令
Please enter the gitlab-ci coordinator URL:输入 ci 地址
Please enter the gitlab-ci token for this runner:输入 ci token
Please enter the gitlab-ci description for this runner:输入 runner 名称
Please enter the gitlab-ci tags for this runner:设置 tag
Whether to run untagged builds:这里选择 true ,代码上传后会能够直接执行
Whether to lock Runner to current project:直接回车,不用输入任何口令
Please enter the executor:选择 runner 类型,这里我们选择的是 shell

注意:CI 的地址和令牌,在 项目 --> 设置 --> CI/CD --> Runner 设置 注意: tag需要记好,在创建.gitlab-ci.yml文件时,需要与每个stage下的tags对应,否则该阶段的脚步不会执行(一直显示pending)

注册成功的信息存在 /etc/gitlab-runner/config.toml

# /etc/gitlab-runner/config.toml
concurrent = 1
check_interval = 0

[session_server]
  session_timeout = 1800

[runners](/1990bingliu/ubuntu_gitlab/wiki/runners)
  name = "build-server"
  url = "http://192.168.1.119/"
  token = "EkFD5w_8jfKyni7BBWx9"
  executor = "shell"
  [runners.custom_build_dir]
  [runners.cache]
    [runners.cache.s3]
    [runners.cache.gcs]

3. 创建.gitlab-ci.yml

stages: 
    - build
    - deploy
build:
    stage: build
    script: npm build
deploy:
    stage: deploy
    script:
      - cp -r * /opt/web
    only:
      - dev
    tags:
      - web_dev

3. 启动

sudo gitlab-runner run

runner注册之后是需要启动的,命令sudo gitlab-runner run,否则你的pipeline将一直处于pending状态。

分析

为什么在yml中添加cp -r * /opt/web就可以完成部署了?

在安装Runner时,我们说到工作目录,在工作目录下有一个builds目录,Runner的一切工作都在这个目录下面进行。每次提交代码Runner就会自己fetch下代码,所以Runner默认就在本地代码仓库所在路径下。所以直接执行cp -r * /opt/web就可以把程序都复制过去了。当然,大家可以加上编译的命令,然后再部署。任你发挥。