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就可以把程序都复制过去了。当然,大家可以加上编译的命令,然后再部署。任你发挥。