ldap配置系列二:jenkins集成ldap
ldap配置系列二:jenkins集成ldap
jenkins簡介
jenkins是一個獨立的、開放源碼的自動化服務器,它可以用于自動化與構建、測試、交付或部署軟件相關的各種任務。
jenkins官方文檔:?https://jenkins.io/doc/
jenkins安裝
jenkins下載地址:?https://jenkins.io/download/
# jdk1.8下載 [root@VM_0_15_centos local]# wget http://download.linuxpanda.tech/java/jdk-8u172-linux-x64.tar.gz [root@VM_0_15_centos local]# tar xf jdk-8u172-linux-x64.tar.gz [root@VM_0_15_centos local]# cd jdk1.8.0_172/# jenkins安裝 [root@VM_0_15_centos local]# yum install https://pkg.jenkins.io/redhat/jenkins-2.141-1.1.noarch.rpm # 配置修改 [root@VM_0_15_centos ~]# vim /etc/sysconfig/jenkins JENKINS_JAVA_CMD="/usr/local/jdk1.8.0_172/bin/java" # 防火墻放行 [root@VM_0_15_centos ~]# firewall-cmd --permanent --add-port=8080/tcp [root@VM_0_15_centos ~]# firewall-cmd --reload # 重啟jenkins [root@VM_0_15_centos ~]# systemctl restart jenkins [root@VM_0_15_centos ~]# systemctl status jenkins [root@VM_0_15_centos ~]# netstat -tunlp |grep 8080# 訪問對應的外網 # jenkins.linuxpanda.tech:8080 安裝必要的插件。?注意: 我在我的centos7服務器上面直接yum install jenkins是有問題,訪問不了,yum install 特定的rpm包就可以了。 暫時不知道哪里的情況。
安裝完畢后的主頁為 :
?ldap準備
如果沒有ldap服務器,可以參考?https://www.cnblogs.com/zhaojiedi1992/p/zhaojiedi_liunx_52_ldap.html?, 這里我使用ldapadmin.exe?這個小軟件去管理ldap。
添加jenkins相關的測試賬戶和組
最終的組織圖如下:?
?
jenkins集成ldap的配置
選擇【jenkins】 -> 【系統管理】-> 【全局安全設置】
配置ldap為如下
?注意: 我上面的密碼admin測試使用的密碼為oracle。
關于ldap查詢使用
# 查詢所有用戶 [root@VM_0_15_centos ~]# ldapsearch -LLL -w oracle -x -H ldap://ldap.linuxpanda.tech:389 -D"cn=admin,dc=linuxpanda,dc=tech" -b "ou=people,dc=linuxpanda,dc=tech" # 查詢特定用戶 [root@VM_0_15_centos ~]# ldapsearch -LLL -w oracle -x -H ldap://ldap.linuxpanda.tech:389 -D"cn=admin,dc=linuxpanda,dc=tech" -b "ou=people,dc=linuxpanda,dc=tech" "uid=test01" dn: uid=test01,ou=people,dc=linuxpanda,dc=tech objectClass: posixAccount objectClass: top objectClass: inetOrgPerson gidNumber: 0 givenName: test01 sn: test01 displayName:: 5rWL6K+VMQ== uid: test01 homeDirectory: /home/test01 loginShell: /bin/bash mail: test01@linuxpanda.tech cn:: 5rWL6K+VMQ== uidNumber: 55545 userPassword:: e1NIQX1ReE5rdGtVUHhIek52Mm9pQmQvYkc2NjNsQkk9# 組查詢 [root@VM_0_15_centos ~]# ldapsearch -LLL -w oracle -x -H ldap://ldap.linuxpanda.tech:389 -D"cn=admin,dc=linuxpanda,dc=tech" -b "ou=jenkins,ou=group,dc=linuxpanda,dc=tech" # 獲取對應的組 [root@VM_0_15_centos ~]# ldapsearch -LLL -w oracle -x -H ldap://ldap.linuxpanda.tech:389 -D"cn=admin,dc=linuxpanda,dc=tech" -b "ou=jenkins,ou=group,dc=linuxpanda,dc=tech" "(& (cn=jenkins-admins) (| (objectclass=groupOfNames) (objectclass=groupOfUniqueNames) (objectclass=posixGroup)))" dn: cn=jenkins-admins,ou=jenkins,ou=group,dc=linuxpanda,dc=tech objectClass: posixGroup objectClass: top cn: jenkins-admins memberUid: test01 memberUid: admin gidNumber: 40109ldap配置完畢了, 還是在說說ldap配合jenkins里面的用戶權限和權限分配的事情吧, 不然只是ldap集成到jenkins也沒有啥用啊,哈哈。
jenkins和ldap如何解決用戶權限和授權問題
這個采用全局項目安全矩陣+項目安全矩陣+ldap認證組合來實現復雜的權限管理。
jenkins里面安裝完畢默認推薦的插件后,提供有5種類授權策略:
我們選擇項目矩陣授權策略,具體操作步驟: 選擇【jenkins】 -> 【系統管理】-> 【全局安全設置 】,選擇項目矩陣授權策略。
然后在全局的安全設置頁面給我們的三個組添加進去,并配置下各個組的權限。
配置如下圖的權限設置
這是一個全局的配置,特定組只能按照最小的權限授權,額外的權限可以在具體的項目權限矩陣里面在添加。?
如果用戶在ldap里面添加到jenkins-admins這個組,就是擁有所有的權限了,這個組一般只能運維人員和部門老大加入。
如果用戶在ldap里面添加到了jenkins-editors這個組,就擁有上圖勾選的權限,這個組的成員可以完成jenkins配置項的修改。這個組一般不對任何人開放,可能給前段或者后端的開發老大開下。
如果用戶在ldap里面添加到了jenkins-users這個組,就擁有了read權限,這個read是jenkins里面的很基礎的權限,沒有這個權限就登不進jenkins的,這個組一般是開發人員加入。?
?
上面只是一個全局層面的一個權限設置, 對于一個開發人員來說, 他能發布的項目只能是他負責的項目的,這個時候還是需要在具體的jenkins項目配置里面開啟項目安全這個選項,并添加特定的具體的開發到這個列表里面,并授予權限。
?
?
這樣就可以詳細給用戶授權了。
?
總結
以上是生活随笔為你收集整理的ldap配置系列二:jenkins集成ldap的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: time、random以及序列化模块
- 下一篇: 如何利用Python自动生成PPT