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下编译环境的...
  • lixuezhi86
  • lixuezhi86
  • 2015年11月02日 21:44
  • 5053

用git做持续集成

先mark一下,准备研究这个。慢慢写。。。。。 基本的WOW: 1)有可供CI Server使用的repo; 2) 开发push特定的branch到report,通常是master 3)CI Se...
  • carolzhang8406
  • carolzhang8406
  • 2015年03月02日 16:23
  • 5136

在Linux搭建jenkins+git环境

1、下载tomcat 2、下载jenkins:http://updates.jenkins-ci.org/download/war/ 3、unzip tomcat 4、将jenkins.war放...
  • songjiaping
  • songjiaping
  • 2016年08月02日 17:21
  • 6320

jenkins使用之git插件

1、插件安装 jenkins——系统管理——管理插件——可选插件——过滤(git)——勾选(git plugin和 gitlab plugin) 2、git源码管理 当Repository UR...
  • yushuanggui
  • yushuanggui
  • 2016年02月02日 10:20
  • 283

使用Jenkins配置Git+Maven的自动化构建

Jenkins,Git、Maven、jenkins的安装与使用,Git的安装与使用,Maven的安装与使用,安装Jenkins插件...
  • u010870518
  • u010870518
  • 2015年12月22日 10:20
  • 88710

Jenkins的Git配置

在Jenkins中下载并安装git client和git两个插件,即可使用Jenkins自动下载代码。 在Jenkins中新建一个多配置项目,然后按下图的配置设置好git代码下载路径和用户名密码即可...
  • zzpzheng
  • zzpzheng
  • 2016年07月24日 12:11
  • 8514

Jenkins+git+fir搭建持续集成环境(超详细搭建教程)

Jenkins+git+fir搭建持续集成环境(详) Jenkins 是一个可扩展的持续集成引擎 ,主要用于持续、自动构建测试项目和监控一些定时执行任务。一句话简单说就是:程序员修改好了代码提交上...
  • kiss881101
  • kiss881101
  • 2016年03月20日 15:57
  • 2379

windows 下搭建持续集成环境jenkins+git

windows 下搭建持续集成环境jenkins+git 从jenkins 官网http://jenkins-ci.org/ 上下载windows 下的zip文件。本文下载了稳定版的1.609.1.z...
  • aaashen
  • aaashen
  • 2015年06月19日 14:49
  • 3111

Jenkins:使用Git Parameter插件实现tag或分支的选择性构建

Jenkins如何选择任意一个tag来构建代码 Jenkins如何选择任意一个branch(分支)来构建代码 苦恼了一段时间后,发现Git Parameter插件实现可以帮助我们来实现。 下面来介绍...
  • hwhua1986
  • hwhua1986
  • 2016年12月23日 17:05
  • 9608

Jenkins Git Parameter 插件配置过程

使用Git parameter能够实现选择指定分支进行构建的功能,在需要手动选择标签打包的场景中非常方便。 首先是安装Jenkins插件,进入系统管理->插件管理,在可选插件中选择Git Param...
  • jackyzheng
  • jackyzheng
  • 2017年12月08日 11:56
  • 131
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:Jenkins中Git Plugin配置的几个小问题
举报原因:
原因补充:

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