GitLab Runner
说明
当前安装环境是centOS 7.7
版本,建议下列教程都在7.6~7.8版本附近内进行.
如果是centOS 6.x版本,建议放弃,直接重新安装7.6以上版本的虚拟机.鄙人实操过,坑太多.
附:常见命令:
# 查看当前系统
cat /etc/redhat-release
工欲善其事,必先利其器,在安装 GitLab Runner之前,我们需要先将前端的基础工具nvm
,nodejs
,docker
都安装好
NVM
自动安装
curl -o- https://raw.githubusercontent.com/nvm-sh/nvm/v0.37.2/install.sh | bash
# 或
wget -qO- https://raw.githubusercontent.com/nvm-sh/nvm/v0.37.2/install.sh | bash
重启bash
根据自己的系统进行选择
# bash: centOS系统,重启bashrc
source ~/.bashrc
# zsh:
source ~/.zshrc
# ksh:
. ~/.profile
安装Nodejs
nvm install lts/erbium
nvm install v12.18.3 # 安装12版本
Git
安装Git
# 安装Git
yum install git
# 查看版本
git --version #可能是1.8.3.1 版本,需要升级
手动升级Git
如果git版本低于2.0,请手动升级git版本
1.安装依赖
# 安装依赖
yum install curl-devel expat-devel gettext-devel openssl-devel zlib-devel
yum install gcc perl-ExtUtils-MakeMaker
2.编译git源码
# 访问src目录
cd /usr/src/
# 下载git文件
wget https://github.com/git/git/archive/v2.25.1.zip
# 解压文件并删除之前文件
unzip v2.25.1.zip && rm v2.25.1.zip
# 访问解压后的文件
cd git-2.25.1
#先编译,看有无报错:
make prefix=/usr/local/git all
#若编译成功,则先卸载旧版本的git,再安装新版本:
rpm -e --nodeps git
make prefix=/usr/local/git install
3. 创建软链接
ln -s /usr/local/git/bin/git /usr/bin/git
#检查版本:
git --version
Docker
1.自动安装
sudo curl -sSL https://get.docker.com/ | sh
GitLab Runner
Linux官网安装教程传送门
1.安装
自动安装 建议使用,避免很多权限问题
curl -L https://packages.gitlab.com/install/repositories/runner/gitlab-runner/script.rpm.sh | sudo bash
yum install 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"
采用手动构建,则需要手动添加权限,例如将/usr/local/bin添加到secure_path
2.授予其执行权限:
sudo chmod +x /usr/local/bin/gitlab-runner
3.创建一个GitLab CI用户:
sudo useradd --comment 'GitLab Runner' --create-home gitlab-runner --shell /bin/bash
4.安装并作为服务运行:
# 安装
sudo gitlab-runner install --user=gitlab-runner --working-directory=/home/gitlab-runner
# --user指定将用于执行构建的用户,官网使用gitlab-runner,这里建议小白设置root,避免很多权限问题
#`--working-directory 指定将使用**Shell** executor 运行构建时所有数据将存储在其中的根目录
# 启动服务
sudo gitlab-runner start
5.注册Gitlab Runner
# 1.注册
sudo gitlab-runner register
# 2.输入 Gitlab 实例的 URL:
https://gitlab.example.com/
# 3.输入用来注册 Runner 的 token:
TokenExample
# 4.输入 Runner 的描述,随后可在 GitLab 界面中修改
fedrunner
# 5.输入与 Runner 绑定的标签(英文逗号隔开)(可修改)
centos7.7,nodejs12,shell
# 6.选择 Runner 的执行方式:建议选择shell
Please enter the executor: docker, parallels, shell, kubernetes, docker-ssh, ssh, virtualbox, docker+machine, docker-ssh+machine:
shell
# 7.如果选择的执行方式是 docker,会要求填写默认的镜像,这个镜像也可以在 .gitlab-ci.yml 中定义:
Please enter the Docker image (eg. ruby:2.1):
alpine:latest
6.更新GitLab Runner
# 停止
sudo gitlab-runner stop
# 更新文件
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
# 启动服务:
sudo gitlab-runner start
# 重新启动
sudo gitlab-runner restart
7.其他语法
# 停止运行并卸载GitLab Runner。
gitlab-runner uninstall
常见权限问题:
1. 添加secure_path权限(手工安装)
vim /etc/sudoers
编辑内容如下:
#Defaults secure_path = /sbin:/bin:/usr/sbin:/usr/bin
# 修改如下:
Defaults secure_path = /sbin:/bin:/usr/sbin:/usr/bin:/usr/local/bin
# 然后强制保存
:qw!
# 设置权限
echo "gitlab-runner ALL=(ALL) NOPASSWD:ALL" >> /etc/sudoers
2. 切换root权限
遇见bash: npm: command not found
构建的环境变量问题都可以通过使用root权限解决.
gitlab-ci的runner默认使用gitlab-runner用户执行操作;
通过指令ps aux|grep gitlab-runner
可以看到:
/usr/local/bin/gitlab-runner run --working-directory /home/gitlab-runner --config /etc/gitlab-runner/config.toml --service gitlab-runner --user gitlab-runner
其中:
- --working-directory:设置工作目录, 默认是/home/{执行user}
- --config:设置配置文件目录,默认是/etc/gitlab-runner/config.toml
- --user:设置执行用户名,默认是gitlab-runner
因此想要更改user为root只需要重新设置--user属性即可,步骤如下:
- 删除gitlab-runner
sudo gitlab-runner uninstall
- 安装并设置--user(例如我想设置为root)
gitlab-runner install --working-directory /home/gitlab-runner --user root
- 重启gitlab-runner
sudo service gitlab-runner restart
验证一下:
再次执行ps aux|grep gitlab-runner
会发现--user的用户名已经更换成root了
/usr/bin/gitlab-ci-multi-runner run --working-directory /home/gitlab-runner --config /etc/gitlab-runner/config.toml --service gitlab-runner --syslog --user root
至此gitlab-runner执行.gitlab-cli.yaml时候便是以root用户去执行操作,再也没有繁琐的权限问题了
3. 删除/注销 Runner
#1. 检测 runner 是否已连接至 gitlab
gitlab-runner verify
# 2. 注册列表中删除
gitlab-runner verify --delete
# 3. 注销已注册的runner
gitlab-runner unregister
#使用令牌注销
gitlab-runner unregister --url http://gitlab.example.com/ --token t0k3n
#使用名称注销(同名删除第一个)
gitlab-runner unregister --name test-runner
#注销所有
gitlab-runner unregister --all-runners
4.CI语法
gitlab-ci.yml官网传送门
gitlab-ci.yml中文文档
常见问题FAQ
- 免费下载或者VIP会员专享资源能否直接商用?
- 本站所有资源版权均属于原作者所有,这里所提供资源均只能用于参考学习用,请勿直接商用。若由于商用引起版权纠纷,一切责任均由使用者承担。更多说明请参考 VIP介绍。
- 提示下载完但解压或打开不了?
- 找不到素材资源介绍文章里的示例图片?
- 模板不会安装或需要功能定制以及二次开发?
发表评论
还没有评论,快来抢沙发吧!