目录

一、前言

二、Jenkins创建Item连接Gitlab

三、常见错误(包括 returned status code 128报错)


一、前言

        近期学习Jenkins过程中遇到的问题,希望能帮助到大家,如只为解决 returned status code 128问题,可以直接跳到最后查看本文。

二、Jenkins创建Item连接Gitlab

使用jenkins创建item,配置连接git仓库(这里使用的是gitlab本地仓库,如使用的是互联网仓库替换仓库地址即可)

准备两台机器
1. gitlab
2. jenkins

分别启动好,gitlab和jenkins

从gitlab获取仓库地址(ssh)
git@192.168.142.133:cmdb_dev/learn_gitlab.git

整体流程:用户访问jenkins  —> jenkins配置iteml(自动拉去gitlab代码)  —> jenkins从gitlab拉去代码到本地工作区

1. 进入jenkins,选择Item,进入配置页面,配置如下信息(这里使用ssh的方式),选择ADD添加凭证

2. 添加jenkins私钥

  ssh-keygen -t rsa  # jenkins服务器生成公私钥,配置到添加的凭证中

3. 使用上一步jenkins服务器生成的公钥配置到gilab中

4. 确认 Item配置的GIt配置无误后,点击保存

5. 点击开始构建,查看控制台输出信息

三、常见错误(包括 returned status code 128报错)

1.  jenkins服务器没有安装git工具

解决办法如下

jenkins服务器安装git工具
yum install -y git

2. 权限问题,没有ssh免密登录

解决办法如下

1. 将jenkins服务器生成的公钥,配置到gilab服务器

ssh-keygen -t rsa  # jenkins服务器生成公私钥
ll ~/.ssh/id_rsa.pub # 将当前用户下,这个文件内容配置到gitlab的ssh密钥中

到了这里可能其他版本用户就已经解决了,但是我当前使用的版本它还是报错,所以接着往下走。

2. 发现还是报错,而且是相同的错(这里怀疑可能是版本原因,我的jenkins版本是jenkins-2.387.2-1.1.noarch)

执行如下命令解决,主要是将gitlab服务器的公钥拷贝至jenkins服务器中

ssh-keyscan -t ecdsa 192.168.142.133 >> ~/.ssh/known_hosts

它用于获取远程主机的公钥并将其添加到本地的 `known_hosts` 文件中。

- `t ecdsa` 参数指定了使用 ECDSA(椭圆曲线数字签名算法)类型的密钥来获取远程主机的公钥。ECDSA 是一种公钥加密算法,用于生成和验证数字签名,它提供了与其他加密算法相比较小的密钥尺寸和较快的性能。

2.3. 最后需要使用重启大法,重启下jenkins

systemctl restart jenkins
Logo

腾讯云面向开发者汇聚海量精品云计算使用和开发经验,营造开放的云计算技术生态圈。

更多推荐