• 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,这里需要上传的是私钥(不是公钥!!)

    私钥文件存放在~/.ssh/id_rsa 文件中,

    可参考http://blog.csdn.net/gw569453350game/article/details/51911179

    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为什么需要添加私钥;

    作者:jwentest
    虽千万人,吾往矣!文章先发到语雀:https://www.yuque.com/qianwang/testway
  • 相关阅读:
    Palindrome
    Girls' research
    最长回文
    Water Tree
    Alternating Current
    Psychos in a Line
    Feel Good
    Color the Fence
    javaScript内置类Date,Math等
    DOM之兄弟节点
  • 原文地址:https://www.cnblogs.com/jwentest/p/7065783.html
Copyright © 2020-2023  润新知