我們在正式開始使用 Jenkins 之前還要先配置一些憑證,這些憑證的作用主要是用於認證,例如我們要從程式碼倉庫拉取程式碼,就需要用到程式碼倉庫的賬號密碼或者金鑰;我們要登入遠端伺服器也需要使用者名稱密碼或者金鑰檔案;使用一些第三方平臺會用到一些 AppId,AccessKey 之類的用於認證授權的資訊,這些東西都可以統稱為憑證,目前 Jenkins 支援如下型別的憑證:
- Username with password
- GitHub App
- SSH Username with private key
- Secret file
- Secret text
- X.509 Client Certificate
- Certificate
其中 【Username with password】和【SSH Username with private key】是應用最廣泛的。我們在用 Jenkins 構建打包專案時會從程式碼倉庫拉取程式碼,我們先來配置一下程式碼倉庫的賬號和密碼。
去到 Jenkins 的【系統管理】→ 【Manage Credentials】下:
在【全域性憑據】裡面新增新的憑證:
型別選擇【Username with password】,填入正確的使用者名稱、密碼、ID、和描述資訊,ID不填的話會自動生成UUID,這個ID後面在流水線指令碼程式碼裡面會用到,儘量寫得有意義好辨識:
然後我們再新增一個【SSH Username with private key】型別的憑據,還是拿拉取程式碼來舉例,目前主流的程式碼託管平臺都是支援 HTTPS 或者 SSH 方式訪問拉取、提交程式碼,HTTPS 是使用賬號密碼的方式,SSH 是採用金鑰的方式。所以我們這來新增一個【SSH Username with private key】型別的憑據,需要注意的是【SSH Username with private key】憑據不僅僅是適用於拉取程式碼,像之前介紹的還可以用於登入遠端伺服器。
我們這裡新增一個【SSH Username with private key】型別的憑據,用於支援 SSH 方式拉取程式碼:
點選【Add】新增我們之前 maintainer 系統使用者的金鑰檔案內容,也就是 /home/maintainer/.ssh/maintainer
私鑰檔案中的內容,然後將 /home/maintainer/.ssh/maintainer.pub
公鑰檔案的內容新增到程式碼管理平臺中,例如 Gitee 的 【SSH公鑰】中,其他程式碼管理平臺原理一樣。
將 /home/maintainer/.ssh/maintainer
私鑰檔案中的內容配置到 Jenkins 的憑據中:
將 /home/maintainer/.ssh/maintainer.pub
公鑰檔案的內容新增到程式碼管理平臺中:
這樣配置好後,Jenkins 就可以拉取我們 Git倉庫的程式碼了。