Ubuntu16.04安装gitlab runner并配置CI

Ubuntu16.04安装gitlab runner并配置CI

持续集成

GitLab-CI

GitLab-CI就是一套配合GitLab使用的持续集成系统(当然,还有其它的持续集成系统,同样可以配合GitLab使用,比如Jenkins)。而且GitLab8.0以后的版本是默认集成了GitLab-CI并且默认启用的。.gitlab-ci.yml的脚本解析就由它来负责。

GitLab-Runner

GitLab-Runner是配合GitLab-CI进行使用的。一般地,GitLab里面的每一个工程都会定义一个属于这个工程的软件集成脚本,用来自动化地完成一些软件集成工作。当这个工程的仓库代码发生变动时,比如有人push了代码,GitLab就会将这个变动通知GitLab-CI。这时GitLab-CI会找出与这个工程相关联的Runner,并通知这些Runner把代码更新到本地(服务器)并执行预定义好的执行脚本。

在项目根目录创建.gitlab-ci.yml

当有新内容push到仓库后,GitLab会查找是否有.gitlab-ci.yml文件,如果文件存在, Runners 将会根据该文件的内容开始build 本次commit。
.gitlab-ci.yml 使用YAML语法, 你需要格外注意缩进格式,要用空格来缩进,不能用tabs来缩进。

基本的.gitlab-ci.yml结构如下:

stages:
  - build
  - test
  - deploy

before_script:
  - echo "Restoring Packages..."

build_job:
  stage: build
  script:
  - echo "Release build..."
  except:
  - tags

test_job:
  stage: test
  script:
  - echo "Tests run..."
  - cd cds.ci.test
  - gradle test
  tags:
     - wikirunner

最上面的stages配置意思是,先构建阶段为build的job,然后再构建阶段为test的job,下面build_job和test_job都是job,如果不配置stages,默认顺序为build - test - deploy。

话不多说,接下来安装Gitlab Runner

在需要持续集成的项目所在主机安装gitlab-runner。

Gitlab Runner目前支持package安装了,具体可以查看官网

安装过程

# For Debian/Ubuntu/Mint
curl -L https://packages.gitlab.com/install/repositories/runner/gitlab-runner/script.deb.sh | sudo bash
sudo apt-get install gitlab-runner
# To install a specific version of GitLab Runner:
# for DEB based systems
apt-cache madison gitlab-runner
sudo apt-get install gitlab-runner=10.0.0
# 启用命令启动Runner
sudo gitlab-runner run
# For RHEL/CentOS/Fedora
curl -L https://packages.gitlab.com/install/repositories/runner/gitlab-runner/script.rpm.sh | sudo bash
sudo yum install gitlab-runner
# To install a specific version of GitLab Runner:
# for RPM based systems
yum list gitlab-runner --showduplicates | sort -r
sudo yum install gitlab-runner-10.0.0-1
sudo gitlab-runner run

在gitlab代码库中注册gitlab-runner

首先打开代码库

进入仓库->settings->CI/CD Pipelines,看到如下页面
gitlabrunner

在安装有gitlab-runner的主机上运行

sudo gitlab-runner register
# 会要求填入url和token,就是上图中遮起来的1和2.
sudo gitlab-runner start
# 此时gitlab-runner就配置完成了,代码库中有push就会触发持续集成

遇到的问题

push之后一直显示pending,点进去之后报错,没有分配的runner。

这个可能是gitlab-runner register的时候配置了tags,而.gitlab-ci.yml中没有设置tags,导致没有分配的runner。可以点击runner(上图中绿点后面被遮住的部分)查看runner的tags并在.gitlab-ci.yml中进行相应配置。或者点击runner(上图中绿点后面被遮住的部分)后面的编辑图标然后勾选Indicates whether this runner can pick jobs without tags

runner运行过程中报错没有权限

CI 默认执行用户为 gitlab-runner,可以通过以下命令查看。

$ ps aux | grep gitlab

/usr/bin/gitlab-ci-multi-runner run --working-directory /home/gitlab-runner --config /etc/gitlab-runner/config.toml --service gitlab-runner --syslog --user gitlab-runner
# --user后面的就是gitlab-runner的用户

可以为gitlab-runner用户添加sudo权限。

# 切换到root账号下
$ su
# 添加sudo文件的写权限
$ chmod u+w /etc/sudoers
# 编辑sudoers文件
$ vi /etc/sudoers
# 添加如下内容 允许用户gitlab-runner执行sudo命令,并且在执行的时候不输入密码
gitlab-runner ALL=(ALL) NOPASSWD: ALL
# 撤销sudo文件写权限
$ chmod u-w /etc/sudoers

或者修改执行gitlab-runner的用户
修改 /etc/systemd/system/gitlab-runner.service--user之后的gitlab-runner为拥有权限的用户。
重新加载配置文件,并启动

sudo systemctl daemon-reload
sudo systemctl restart gitlab-runner

参考博客

https://blog.csdn.net/ligang2585116/article/details/105316087/
https://www.jianshu.com/p/39881f224077
https://blog.csdn.net/qq_27520051/article/details/80552220

展开阅读全文

Windows版YOLOv4目标检测实战:训练自己的数据集

04-26
©️2020 CSDN 皮肤主题: 大白 设计师: CSDN官方博客 返回首页
实付0元
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、C币套餐、付费专栏及课程。

余额充值