憑據可以用來存儲需要密文保護的數據庫密碼、Gitlab
密碼信息、Docker
私有倉庫密碼等,以便
Jenkins
可以和這些第三方的應用進行交互。
1. 安裝Credentials Binding
插件
要在Jenkins
使用憑證管理功能,需要安裝Credentials Binding
插件
點擊Manage Jenkins
選擇Manage Plugins
點擊可選插件,待加載完畢后,在過濾框中輸入Credentials Binding
勾選插件,直接安裝
安裝插件后,左邊多了 "憑證"菜單,在這里管理所有憑證
2. 可以添加的5種憑證
-
Username with password
:用戶名和密碼 -
SSH Username with private key
: 使用SSH
用戶和密鑰 -
Secret file
:需要保密的文本文件,使用時Jenkins
會將文件復制到一個臨時目錄中,再將文件路徑設置到一個變量中,等構建結束后,所復制的Secret file
就會被刪除。 -
Secret text
:需要保存的一個加密的文本串,如釘釘機器人或Github
的api token
-
Certificate
:通過上傳證書文件的方式常用的憑證類型有:
Username with password
(用戶密碼)和SSH Username with private key
(SSH
密鑰)
3. 使用Git
工具到Gitlab
拉取項目源碼
演示Jenkins
的如何管理Gitlab
的憑證。
3. 1 安裝Git插件和Git工具
安裝GIT插件
為了讓Jenkins
支持從Gitlab
拉取源碼,需要安裝Git
插件以及在CentOS7
上安裝Git
工具。
點擊Manage Jenkins
選擇Manage Plugins
勾選,直接安裝
安裝Git工具
CentOS7
上安裝Git
工具:
yum -y install git
# 查看git 版本
git --version
3.2 創建用戶密碼類型憑證
Jenkins
->憑證->系統->全局憑證->添加憑證
選擇 "Username with password"
,輸入Gitlab
的用戶名和密碼,點擊"確定"。
3.3 測試用戶密碼憑證是否可用
創建一個FreeStyle
項目:新建Item
->FreeStyle Project
->確定
找到 "源碼管理"->"Git"
,在Repository URL
復制Gitlab
中的項目URL
將地址填入test01
中選擇Git
處
這時會報錯說無法連接倉庫!在 Credentials
選擇剛剛添加的憑證就不報錯了
保存配置后,點擊構建 ”Build Now“
開始構建項目
查看 /var/lib/jenkins/workspace/
目錄可以看到gitlab
中的代碼已經成功被拉取到jenkins
中
3.3 創建SSH類型憑證
生成公鑰和私鑰
- 在
jenkins
服務器上使用root
用戶生成公鑰和私鑰
ssh-keygen -t rsa
在/root/.ssh/
目錄保存了公鑰和使用
id_rsa
:私鑰文件id_rsa.pub
:公鑰文件
- 把生成的公鑰放在
Gitlab
中
# 讀取公鑰內容,復制,並填入gitlab
cat ~/.ssh/id_rsa.pub
以root
賬戶登錄->點擊頭像->Settings
->SSH Keys
復制剛才id_rsa.pub
文件的內容到這里,點擊"Add Key"
- 在
Jenkins
中添加憑證,配置私鑰
在Jenkins
添加一個新的憑證,類型為"SSH Username with private key"
,把剛才生成私有文件內容復
制過來
點擊確定
3.4 測試SSH類型憑證是否可用
新建"test02
"項目->源碼管理->Git
,這次要使用Gitlab
的SSH
連接,並且選擇SSH
憑證
同樣嘗試構建項目
至此,使用用戶密碼憑證和使用SSH憑證從gitlab
拉取代碼成功