我們在正式開始使用 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倉庫的代碼了。