jenkins 從git拉取代碼

步驟

jenkins已集成git插件(如無,請自行下載)linux

 

1. 去到源碼管理欄,選中Git:

 

 使用http協議去獲取代碼

 Repository URL填寫http的git地址,此時未選擇相應的Credentials,會有圖中紅色提示git

 HTTP協議的話,須要輸入帳號密碼來驗證,點擊Add,輸入的帳號密碼並保存,記得kind選擇「Username with password」服務器

選後Credentials選中剛剛新增的帳號密碼,紅色提示消失;app

 

使用ssh協議去獲取代碼

 Repository URL填寫ssh的git地址,此時未選擇相應的Credentials,會有圖中紅色提示ssh

 

點擊Add,須要添加ssh的credentials,這裏須要上傳的是私鑰(不是公鑰!!)加密

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

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

 

2. 查看是否成功獲取git代碼

首先能夠查看jenkins的控制檯輸出日誌,是否報錯.net

或者直接去到jenkins的工做目錄插件

/var/lib/jenkins/workspace/

查看代碼是否clone下來3d



疑問點(公鑰和私鑰的理解)

爲何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爲何須要添加私鑰;

相關文章
相關標籤/搜索