Jenkins 的用戶權限和憑證管理


一、Jenkins 的用戶權限管理

我們可以利用Role-based Authorization Strategy 插件來管理Jenkins用戶權限

1、安裝Role-based Authorization Strategy插件

2、開啟權限全局安全配置

授權策略切換為"Role-Based Strategy",保存

3、創建角色

點擊 Manage Jenkins ,找到 Manage and Assign Roles 管理和分配角色選項

 

點擊 Manage Role ,進行管理角色,添加角色,修改角色權限

角色介紹:

Global roles(全局角色):管理員等高級用戶可以創建基於全局的角色

Project roles(項目角色): 針對某個或者某些項目的角色 ,在老版本里,項目角色叫做project roles

Slave roles(奴隸角色):節點相關的權限

我們添加以下三個角色:

baseRole:該角色為全局角色。這個角色需要綁定Overall下面的Read權限,是為了給所有用戶綁定最基本的Jenkins問權限。注意:如果不給后續用戶綁定這個角色,會報錯誤:用戶名 is missing the Overall/Read permission

role1:該角色為項目角色。使用正則表達式綁定"apple.*",意思是只能操作apple開頭的項目。

role2:該角色也為項目角色。綁定"orange.*",意思是只能操作orange開頭的項目。

添加項目角色

 

 

 

添加完角色后,點擊Save保存

4、創建用戶

點擊Manage Jenkins,在系統管理頁面進入 Manage Users

 

分別創建兩個用戶:jack kali

5、給用戶分配角色

系統管理頁面進入Manage and Assign Roles,點擊Assign Roles

綁定規則如下:

 

  • kali用戶分別綁定baseRolerole1角色
  • jack用戶分別綁定baseRolerole2角色

 

將 jack 和 kali 用戶加入到 項目角色分配列表中

為 jack 和 kali 分配項目角色 jack 和Role1 綁定, kali 和 Role2綁定

  • jack 用戶只能查看到 apple 開頭的項目
  • kali 用戶只能查看到orange開頭的項目

 

6、創建項目,測試權限

以管理員賬創建兩個項目,分別為apple01 和orange01

點擊 New Item,新建項目

 

分別使用不同用戶登錄:

  • jack 用戶登錄只能看到 apple01 項目
  • kali 用戶登錄只能看到 orange01 項目

二、Jenkins 憑證管理

Jenkins 是通過本地 git 復制遠程 gitlab 的方式獲取gitlab中的數據,

過程如下:

開發人員將代碼推送到本地git,然后和遠程的 gitlab 服務器復制,這樣遠程的gitlab服務器就獲取到了開發人員本地的git數據

之后Jenkins服務器的本地 git 復制遠程gitlab服務器的數據,通過git 插件推送給 Jenkins 服務

憑據可以用來存儲需要密文保護的數據庫密碼、Gitlab密碼信息、Docker私有倉庫密碼等,以便Jenkins可以和這些第三方的應用進行交互。

1、安裝 Credentials Binding 插件

要在Jenkins使用憑證管理功能,需要安裝Credentials Binding插件

安裝插件后,點擊Manage Jenkins,能夠看到 Manage Credentials 和 憑據配置,如沒有出現,重新安裝插件重啟即可

2、安裝 git 插件和 git 工具

為了讓Jenkins支持從Gitlab拉取源碼,需要安裝Git插件以及在CentOS7上安裝Git工具。

Jenkins 服務器 192.168.10.20 上安裝 git

yum -y install git

git --version   #安裝后查看git版本

3、Jenkins 的5種憑證類型

點擊 Manage Jenkins,進入Manage Credentials

 

 

添加的憑證有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密鑰)

4、創建用戶密碼類型

創建憑證

Jenkins-->Manage Jenkins-->Manage Credentials -->global -->Add Credentials

5、測試憑證是否可用

創建一個 FreeStyle 項目

New Item --->FreeStyle Project--->確定

 

點擊Build Now ,開始構建項目

6、在Jenkins服務器上查看

7、SSH 密鑰類型

SSH免密登錄示意圖

在Jenkins服務器上,使用root 用戶生成密鑰對

ssh-keygen -t rsa
ls /root/.ssh/
#id_rsa:私鑰文件
#id_rsa.pub:公鑰文件

把生成的公鑰放在Gitlab中

以root賬戶登錄gitlab--->點擊頭像--->Settings->SSH Keys

粘貼公鑰到Gitlab上

在Jenkins中添加憑證,配置私鑰

Manage Jenkins ---> Manage Credentails --->global --->Add Credentials

注意 Username 項填寫的是生成密鑰對的用戶

在Jenkins服務器上復制私鑰

測試憑證是否可用

新建"test02"項目->源碼管理->Git,這次要使用Gitlab的SSH連接,並且選擇SSH憑證

 

 在 Jenkins 服務器上查看

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM