在源码管理Repository URL的位置添加 http://gitlab.xxx.com/xxx/xxx.git 的时候,一直报错。
错误一:
Failed to connect to repository : Error performing command: git ls-remote -h git@gitlab.alipay-inc.com:alipayplus_id_release/apbizprod.git HEAD
解决:
1.Jenkins服务器上查看git是否已安装及安装位置
git version
whereis git
(yum install git 安装的Git版本过低,应该用jenkins安装插件或自行安装更高版本)
2. 打开Jenkins的 主页面 > 系统管理 > Global Tool Configuration
可以看到错误提示:There's no such executable git in PATH: /sbin, /usr/sbin, /bin, /usr/bin.
在出错的地方填入: "whereis git"的地址 + "/bin/git" (如上面"whereis git"的地址为"/usr/local/git",则应该填入 "/usr/local/git/bin/git") 并保存。
3. 多刷新几次,在源码管理中添加Git 地址,可以发现已经好了。
错误二:
Failed to connect to repository : Command "git ls-remote -h http://gitlab.alipay-inc.com/ipay-test-plateform/xmock.git HEAD" returned status code 128: stdout: stderr: error: The requested URL returned error: 401 while accessing http://gitlab.alipay-inc.com/ipay-test-plateform/xmock.git/info/refs fatal: HTTP request failed
第一原因是:由于配置的这个Credentials用户没有生成ssh私钥,且没有添加gitlab中。因此导致了如上异常。
第二原因是:在刚安装完的linux服务器上,带的git是1.7.1版本的。这版本不支持username + password的方式去连接gitlab。
解决方式一
1. 登录linux系统
#cd ~/.ssh 查看ssh秘钥。
有 id_rsa 和 id_rsa.pub 这两个文件的话可以不用生成,直接第3步配置。(建议重新生成一遍)
2. 没有秘钥,生成秘钥
git config --global user.name "这里换上你的用户名" git config --global user.email "这里换上你的邮箱"
查看一下
git config --global --list
再执行
ssh-keygen -t rsa -C "这里换上你的邮箱"
执行命令后需要进行3次或4次确认:
- 确认秘钥的保存路径(如果不需要改路径则直接回车);
- 如果上一步置顶的保存路径下已经有秘钥文件,则需要确认是否覆盖(如果之前的秘钥不再需要则敲 y);
- 创建密码(如果不需要密码则直接回车);
- 确认密码(如果不需要密码则直接回车);
这样就的要了 id_rsa 和 id_rsa.pub 的秘钥对。
3. 配置秘钥
到 gitlab 上把 id_rsa.pub 的公钥信息配置上去。
再到jenkins 页面上的去添加一个credentials证书信息,这个时候Kind 要选择SSH。
4. 配置job的configure
这个时候在job的配置页面,Repository URL填写 项目SSH 地址 git@gitlab.xxx.com:xxx/xxx.git 完成。
解决方式二
1. 登录linux系统,升级git
#git --version 确认是低版本的git 1.7.1。
对git进行升级(>=1.9.5)。
(1)执行命令:yum install curl-devel expat-devel gettext-devel openssl-devel zlib-devel gcc perl-ExtUtils-MakeMaker
(2)卸载旧版本git: yum remove git
(3)下载git: wget https://github.com/git/git/archive/v2.9.2.tar.gz
(4)解压:tar zxvf v2.9.2.tar.gz
(5)进入解压后的git安装目录:cd git-2.9.2
(6)编译:make prefix=/usr/local/git all
(7)安装:make prefix=/usr/local/git install
(8)编辑环境变量配置(给到所有用户):vim /etc/profile
(9)profile文件末尾追加:export PATH=$PATH:/usr/local/git/bin
(10)刷新配置:source /etc/profile
(11)查看版本:git --version
2. 配置job的configure
这个时候在job的配置页面,Repository URL填写 项目HTTP 地址 http://gitlab.xxx.com/xxx/xxx.git 完成。