jenkins从git拉取代码
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
jenkins从git拉取代码
步骤
jenkins已集成git插件(如⽆,请⾃⾏下载)
1. 去到源码管理栏,选中Git:
使⽤http协议去获取代码
Repository URL填写http的git地址,此时未选择相应的Credentials,会有图中红⾊提⽰
HTTP协议的话,需要输⼊账号密码来验证,点击Add,输⼊的账号密码并保存,记得kind选择“Username with password”
选后Credentials选中刚刚新增的账号密码,红⾊提⽰消失;
使⽤ssh协议去获取代码
Repository URL填写ssh的git地址,此时未选择相应的Credentials,会有图中红⾊提⽰
点击Add,需要添加ssh的credentials,这⾥需要上传的是私钥(不是公钥!!)
2. 查看是否成功获取git代码
⾸先可以查看jenkins的控制台输出⽇志,是否报错
或者直接去到jenkins的⼯作⽬录
/var/lib/jenkins/workspace/
查看代码是否clone下来
疑问点(公钥和私钥的理解)
为什么linux上直接可以git clone成功,⽽⽤jenkins去执⾏不成功呢,然后jenkins为什么不⽤公钥⽽要密钥呢
个⼈理解:ssh⽣成的公钥和私钥是⼀对的,我们在linux上通过ssh协议获取git代码,也是先在linux⽣成公钥+私钥,然后把公钥上传到git服务端,然后获取代码的流程是:
a. linux把公钥上传到git服务器;
b. git服务器使⽤公钥加密信息(这⾥指代码),把信息传回给linux;
c. linux拿到信息后,通过本地的私钥解密信息,得到代码;
⽽公钥私钥存放在~/.ssh下,每个⽤户都不⼀样
⽽jenkins的执⾏是⽤jenkins⽤户去执⾏的,当git服务把信息给到jenkins的时候,jenkins在他的~/.ssh下没有对应的私钥,因此需要将私钥告诉jenkins,这就是jenkins为什么需要添加私钥;。