1.触发 CI pipeline 的前置条件
- 项目根目录添加
.gitlab-ci.yml文件以定义pipeline(构建任务) - 配置项目所使用的 Runner
2. 安装Gitlab-Runner
本次测试使用的是 centos,安装指令如下:
$ curl -L https://packages.gitlab.com/install/repositories/runner/gitlab-runner/script.rpm.sh | sudo bash
$ sudo yum install gitlab-runner
3. 注册 Runner,和项目绑定
到gitlab的项目的 Settings --> CI/CD --> Runners,获取 URL 和 token,然后可以注册Runner:
$ sudo gitlab-runner register
指令执行过程中会要求输入 URL和token,以及会选择 exector,此处选择 shell,完成后新注册的Runner会显示在Settings --> CI/CD --> Runners中。
在项目根目录添加 .gitlab-ci.yml文件,push到远端,则会自动触发pipeline(可从项目的CI/CD ---> Pipelines查看)。
4. 问题记录
1. Host key verification failed.
问题: 将Runner 安装在服务器 A上,想要使用scp 拷贝文件到 服务器B上,提示上述错误
gitlab-runner 安装过程中会自动创建 gitlab-runner 用户,实际也是使用此用户登录与服务器B通信,所以需要在 /home/gitlab-runner/.ssh/ 中生成密钥对,将公钥放到服务器B的 authorized_keys中。
若还是失败,需要在使用 gitlab-runner用户登录时手动ssh <服务器B用户@服务器B_Ip>,以将服务器B添加到 known_hosts。