2017年9月4日 星期一

Jenkins: CI/CD with ssh user to pulling github private project

Jenkins 執行 Private Project 時,不採用 Username/Password 的方法。

Generate SSH Keys

首先,需要取得一個 ssh key 來新增一個 deploy key 在 github:

ssh-keygen -t rsa -C "{email}"

然後輸入 passphrases 後把 xxx / xxx.pub 檔案拿出來存好。

Github Deploy Keys

先到 Github Project 的 Settings 裡面,新增一個 Deploy Keys ,然後把 xxx.pub 的公鑰輸入。

Jenkins Setup Jobs

到 Jenkins 裡面,新增 Freestyle 的任務或是從現有專案的組態去更改,不過你要先確定 Jenkins 已經有安裝 Github Plugin 了。

設定好前面,到原始碼管理新增 repo ,這裡用的 URL 要是 ssh 的地址,請參考下一張圖。


從這裡可以複製 SSH 地址 (按下 Use SSH):


接著,在 Jenkins 新增 (Add) 一個 credentials ,並選擇 ssh user name with private key:



  • Username 可以隨意使用,建議使用 jenkins 作為 user 就可以了。
  • Private Key 可以直接貼上剛才產生 private key 檔案。
  • passphrase 要填入產生 rsa 時所用的密文。
如此就可以正常訪問建置。

SSH 訪問成功,建置失敗

如果換 SSH 建置後,突然一值狂失敗,可以看一下 log 是不是在 fetch 那邊就掛掉了,如果是,以下步驟應該可以幫到你:

1. 先去升級 jenkins 以及 plugin:

2. 升級後沒有用,就直接新增一個新的任務建置,並捨棄舊有的任務。


Reference:

沒有留言:

張貼留言

© ERIC RILEY , 自由無須告知轉貼
Background Japanese Sayagata by Olga Libby