一、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用戶分別綁定baseRole和role1角色
- jack用戶分別綁定baseRole和role2角色
將 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 服務器上查看