一、生成公私钥

建议为持续集成环境单独生成一对公私钥,不建议采用个人本地的公私钥对。因为个人本地的公私钥对权限较高,通常对所有项目可能都具有操作权限。

  1. # ssh-keygen -t rsa -b 4096 -C "deploy@163.com"
  2. Generating public/private rsa key pair.
  3. Enter file in which to save the key (/Users/bgl/.ssh/id_rsa): /Users/bgl/.ssh/deploy
  4. Enter passphrase (empty for no passphrase):
  5. Enter same passphrase again:
  6. Your identification has been saved in /Users/bgl/.ssh/deploy.
  7. Your public key has been saved in /Users/bgl/.ssh/deploy.pub.
  8. The key fingerprint is:
  9. SHA256:dP8YW33Stir5eW1NMKt4e7XRPjQCvgoCOxoRqd41R+M deploy@163.com
  10. The key's randomart image is:
  11. +---[RSA 4096]----+
  12. | |
  13. | . |
  14. | o o. . |
  15. |. . o... o oo |
  16. |.. . o ES . + o+*|
  17. |. o + o . B.**|
  18. | o + . . .=.+=*|
  19. | o . . . .+o ++=|
  20. | . ...+*...|
  21. +----[SHA256]-----+

此处 passphrase 设置为 123456

二、Jenkins 任务配置

2.1 配置 GitLab

2.1.1 配置密钥

管理员账号登录 GitLab,在 Gitlab 上部署密钥(注意是公钥)。
企业微信20200529070002.png

然后回到具体项目仓库,选择要部署的 Deploy Keys,具体操作如下所示:
企业微信20200529070717.png

2.1.2 配置网络请求

配置 GitLab 的网络请求,允许来自 Webhook 对本地网络的请求。
企业微信20200530100606.png

2.2 配置 Jenkins

进入 Jenkins 网站,点击左侧菜单栏下的 凭据 ,选择 系统 ,点击 全局凭据
企业微信20200529064620.png
然后点击 添加凭据 ,将之前生成的私钥添加到凭据中,这样 Jenkins 就可以下载 Gitlab上的仓库代码了。
企业微信20200529065652.png

2.3 配置集成任务

2.3.1 配置源码管理

选择 Git,输入我们的代码仓库地址,但要注意在复制 GitLab 的仓库地址到 Jenkins 中时,要将原先的”git@121.46.135.249:fe-group/debug-jssdk.git” 修改成”ssh://git@121.46.135.249:42022/fe-group/debug-jssdk.git”,否则会找不到我们的代码仓库。
企业微信20200530044830.png

2.3.2 配置构建触发器

配置构建触发器,点击“高级”选项生成 Webhooks 所需的 Secrect Token,具体操作如下:
企业微信20200530050027.png

2.3.3 配置 Webhooks

回到 GitLab 代码仓库,将之前生成的 Secrect Token 配置到 Webhooks 当中。
企业微信20200530051334.png

2.3.4 配置构建操作

配置构建操作,这里输入一段 Shell 脚本进行测试。
企业微信20200530051742.png

2.4 集成任务测试

回到刚才配置 Webhooks 的地方,点击“测试”按钮,模拟一个“Push events” 事件。
企业微信20200530052044.png
不出意外的话,就可以发现 Jenkins 正常工作了。
企业微信20200530052330.png
至此大功告成。