Jenkins中Git Plugin配置的几个小问题

原创 2015年11月23日 10:19:21

  最近持续集成出现了一些问题,翻出来看了一下,发现之前许多配置都有点问题,导致在新环境的配置中屡屡失败,经过一番测试总算配置成功。记录其中几个坑,主要是关于Git的一些配置,供日后查阅。

  CI(Continuous Integration)持续集成其实是由一系列的最佳实践所构成,包括了源代码的版本控制和管理、自动化构建、自动化测试、代码审查、自动发行和部署、持续反馈等等,对于快速迭代的项目非常有效。在CI中比较常用的一个工具是Jenkins(前身是Hudson,由于版权原因更名为Jenkins)。

 持续集成的第一步一般需要将源码从代码托管服务器下载下来,Jenkins默认安装之后并没有支持GIT代码托管工具,需要安装一个对应的插件,可以安装Git Plugin,关于Git Plugin的介绍可以参考:https://wiki.jenkins-ci.org/display/JENKINS/Git+Plugin

安装完成之后,当我们使用Jenkins创建项目之后,在填写好Git仓库地址之后,当执行构建操作的时候,会发现代码根本clone不下来,构建过程一直停在代码下载这一步,下面看一下如何解决这个问题,在此之前先介绍一些关于GIT与SSH等内容。

  • TortoiseGIT

在Windows系统下,使用较多的一个图形界面的GIT工具是TortoiseGIT,在安装它的过程中,一般会出现下面的界面:


安装程序让我们选择使用哪种ssh的客户端,TortoiseGIT默认的客户端是TortoiseGItPlink,如果我们选择这一项,那么当我们使用 Git 命令行 或者 使用TortoiseGit去Clone代码的时候,使用的并不是同一个客户端。如果选择的是下面的选项OpenSSH,那么二者就是相同的,都是OpenSSH客户端。之所以提到这一点是因为这里的选择对后续我们设置ssh key的时候有点影响,当然究竟TortoiseGit使用哪一个ssh客户端,在安装完成之后也可以配置,具体的配置可以在TortoiseGit的settings中找到,如下图所示:



  • SSH Key

SSH 为 Secure Shell 的缩写,由 IETF 的网络工作小组(Network Working Group)所制定;SSH 为建立在应用层和传输层基础上的安全协议。SSH 是目前较可靠,专为远程登录会话和其他网络服务提供安全性的协议。Git代码可以通过SSH协议下载到本地,它提供两种方式:

1. 常规的基于密码的方式
2. 使用密钥的方式

当我们在Jenkins中使用Git Plugin插件的时候,不能使用基于密码的方式,使用这种方式会让代码clone过程一直卡住,实际上是ssh需要我们输入密码以便它能继续,但是在构建过程中根本没办法与它进行交互,输入密码,因此我们只能使用第二种方式

关于 ssh key的产生,可以使用下面的方法:

1. 首先在Git客户端安装目录的bin文件夹中找到 ssh-keygen,这个工具是用来生成ssh的公钥和私钥的,运行下面的命令:
 $ssh-keygen -t rsa -C “youraccount@gmail.com”
之后,设置保存的位置,键入密码(Jenkins使用git plugin密码必须为空,直接回车就可以),之后会生成两个文件 id_rsa和id_rsa.pub



2. 完成之后需要在托管Git 仓库的服务器上添加 公钥,添加一般在登录账户的设置里面。

  • 关于TortoiseGit中TortoiseGitPlink的设置

上面讲的使用ssh-keygen是用来产生OpenSSH客户端的公钥和私钥的,如果我们使用TortoiseGit并配置GitPlink,那么我们需要产生一个putty客户端的key,也就是产生一个ppk的文件,关于这方面的资料很多,可以参考:GitLab 服务器下客户端TortoiseGit配置和使用教程

  • Jenkins Git Plugin For Windows的设置

Git Plugin在Windows上的设置需要注意几点:

1. Jenkins安装在Windows上是以服务的方式安装的,并且它安装启动的账户是 Local System ,并非是你当前的账户,假设我当前的用户是frank,Jenkins运行起来的用户其实并不是frank,而是Local System账户,但是这个账户并没有 SSH,所以导致代码在构建过程中clone的时候一直停在那里。

2. 为了解决这个问题第一个方案就是将 用户目录下(也就是 c:\users\frank目录)的 .ssh文件夹拷贝到 Local System的用户目录下,但是这个用户目录在哪儿呢,在我的计算机中(使用的是64位的Win7系统)这个目录位于:C:\Windows\SysWOW64\config\systemprofile,只需要把 .ssh目录拷贝到这个目录就可以了(需要注意的是.ssh目录中包括公钥、私钥和known_hosts文件)

3.这个known_hosts文件在你在网站上添加完公钥之后,使用git clone命令获取一份代码的时候,命令行就会给出提示,当你输入yes 之后自动会生成的。

4. 除了上述方法之外,经过测试发现将.ssh目录中的文件拷贝到git安装目录下的.ssh目录中也是可以的,应该是Local System账户读取了git安装目录中的.ssh。

5. 最后需要注意配置完之后重启一次Jenkins,在Jenkins的首页地址栏后面添加 /restart确认之后就重启了,重启之后当重新构建的时候代码就可以clone下来。


版权声明:本文为博主原创文章,未经博主允许不得转载。

相关文章推荐

jenkins git插件安装

0.前言 环境:linux(mint or others) 目标:自动构建deb包 任务简述: 项目组需要一个可以自动构建的环境。其主要目的是自动生成一个linux下编译环境的...

jenkins credentials & git ssh 认证

在 jenkins 中使用 git 插件从仓库中 pull 代码的时候会要求 jenkins 必须有 pull 权限(尤其是当git开启了ssh认证的时候),在配置 jenkins job 的时候有以...

Jenkins的Git配置

在Jenkins中下载并安装git client和git两个插件,即可使用Jenkins自动下载代码。 在Jenkins中新建一个多配置项目,然后按下图的配置设置好git代码下载路径和用户名密码即可...

[Jenkins 实战]关于Jenkins+Git部署的几点注意事项

这两天在看Jenkins,目的是使用Jenkins用来做Git项目的自动编译。网上有一些有意思的博客: 这个博客的目的是补充了博客之间的不足,如果你是按照Jenkins做程序的集成问题。或者,你是...

linux+jenkins+tomcat+git 安装过程的的一些小问题

linux+jenkins+tomcat+git 安装过程的的一些小问题

有关于git访问bitbacket的ssh key配置以及出现的小问题

首先我的git已经被我安装好了,现在想将bitbacket中的代码同步到本地来。对要对ssh key进行配置: 1.key是保存在 ~/.ssh/下的,里面有两个文件id_rsa和id_rs...

关于多线程的几个小问题

  • 2014-01-23 19:57
  • 6.99MB
  • 下载

Jenkins git plugin SSL验证修复

最近在将Jenkins内部使用的git和git client两个plugin分别升级到2.2(from 1.4), 1.9.1以后,git plugin 用https访问 git repo报错:

git 配置中几个容易忽视的问题

这段时间用gitosis搭建了git server,在使用过程中还有一些问题,这些问题的解决也是来自网络,就在这里整理一下。1 在客户端向服务端去push的时候出现insufficient permi...

jenkins邮件插件Email Extension Plugin的安装与配置

本文主要对 jenkins 的邮件通知进行介绍: jenkins 内置的邮件功能 使用插件扩展的邮件功能 一,首先介绍jenkins自带的邮件功能与配置 首先进入系统管理--系统设置 找...
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:深度学习:神经网络中的前向传播和反向传播算法推导
举报原因:
原因补充:

(最多只允许输入30个字)