一、简单描述
二、在服务器上安装 node 和 npm
1. 在 node 官网下载 node
1) 通过一下命令查看自己的 Linux 服务器是 64 位还是 32 位(x86_64表示64位系统, i686 i386表示32位系统)1
uname -a
2) 在 node 的官网上找到最新的 node 包,找到最新的稳定版
2. 上传至服务器上
通过 scp
命令上传 node 的安装包至服务器上的 usr/local 目录中1
scp -P your_port /your_dir/node your_user@your_server:/usr/local
3. 解压安装
1 | // 解压 |
4. 建立软连接
1 | ln -s /usr/local/node-vx.x/bin/node /usr/local/bin/ |
三、在服务端安装 gitlab-runner
1. 安装 runner
1 | curl -L https://packages.gitlab.com/install/repositories/runner/gitlab-ci-multi-runner/script.rpm.sh | sudo bash |
2. 在 gitlab 中打开相应项目,查看并复制 url 和 token
3. 用上面复制得到的 url 和 token 在服务器上注册
1 | gitlab-ci-multi-runner register |
Enter your GitLab instance URL:(填写上面截图中步骤3复制的 GitLab 的 URL )
Please enter the gitlab-ci coordinator URL:Enter the token you obtained to register the Runner:(填写上面截图中步骤4复制的 GitLab 的 token 信息)
Please enter the gitlab-ci token for this runner:Enter a description for the Runner, you can change this later in GitLab’s UI:( runner 的描述)
Please enter the gitlab-ci description for this runner:
Enter the tags associated with the Runner, you can change this later in GitLab’s UI:( runner 的标签,用逗号分开,标签要后面的
.gitlab-ci.yml
文件中的tag
一样)
Please enter the gitlab-ci tags for this runner (comma separated):Enter the Runner executor: (runner的执行者)
Please enter the executor: ssh, docker+machine, docker-ssh+machine, kubernetes, docker, parallels, virtualbox, docker-ssh, shell:
4. 注册完成,修改文件权限
注册完成后,将 gitlab-runner 文件夹的用户所属修改为 gitlab-runner ,这样 gitlab-runner 对其才会有执行权限。( gitlab-runner 的文件夹会在 ~/.local/bin 目录下)1
2
3
4
5// 修改所属用户为 gitlab-runner
sudo chown -R gitlab-runner:gitlab-runner /home/gitlab-runner
// 修改读写权限
sudo chmod -R 777 /home/gitlab-runner
注意:
1) 权限不够,会导致 runner 在执行的时候报错 permission denied
。
2) gitlab 上 clone
下来的文件在 Linux 环境中可能也会没有读写权限,进而也会报错 permission denied
,此时就要把 clone
下来的项目的目录进行修改权限。1
sudo chmod -R 777 /projects/project_name
5. 查看 runner 的状态,开启 runner 的 service
注册好之后,如果在 gitlab-ci 的界面上看到的 runner 的旁边不是绿点,而是黑色三角的感叹号,可以使用下面的代码来开启 runner 的 service:1
2
3gitlab-runner start
// 或
gitlab-runner run
启动成功之后如下图:
四、编辑.gitlab-ci.yml
五、注意事项和一些问题
1. npm 报错
注册 runner 之后,会在 Linux 服务器上新建一个名为 gitlab-runner
的用户,此用户默认是没有 npm 的权限的,所以 .gitlab-ci.yml 文件中在执行有 npm 的命令的时候,就会报错 npm command not found
。 所以就要修改 PATH 环境变量。
修改 PATH 环境变量
1) 找到并打开 profile 文件1
vim /etc/profile
2) 找到设置 PATH 的行并添加以下代码1
export PATH=/usr/local/bin:$PATH
3) 使其生效1
2// 重启服务器
reboot
注意:其有效期限为永久有效,对所有用户有效。
2. gitlab-runner 一直处于 pending(等待) 状态
项目触发 runner ,但是一直处于 pending。
可能是 runner 卡住了,也有可能是因为服务器资源不足。
在服务器上执行下面这条命令:1
gitlab-ci-multi-runner list
查看 runner 是否还在,如果在,再执行下面这条命令:1
gitlab-ci-multi-runner verify
如果发现 runner 还活着,但是就是不执行流程。
下面有两种解决方案:
1) 解决方案1:1
2// 这条命令回去执行 runner 服务,但是每次都需要运行次命令才回去执行任务(不推荐使用)
gitlab-ci-multi-runner run
2) 解决方案2:1
2// 重启 runner ,发现会自动去执行触发 runner 任务
gitlab-ci-multi-runner restart