大家好,我是藍胖子,前面幾節我講述了jenkins的語法以及我是如何使用jenkins對測試和正式環境進行釋出的。但正式環境使用jenkins還有一點很重要,那就是許可權管理。正式環境的許可權往往不能對所有人開放,以及要做到每次釋出都是誰在操作 都有跡可循,這樣才能方便以後排查問題。所以,今天我們就來看看jenkins的許可權管理應該如何來做。
安裝Role-based Authorization Strategy 外掛
我們採用RBAC 基於角色的方式進行授權,需要在jenkins上安裝外掛,在Jenkins的Manage Jenkins→Plugins→Available Plugins 中安裝
之後在Jenkins的Manage Jenkins→Security 中開啟基於角色的許可權策略。
然後在jenkins的配置欄裡就能看到多出來的角色許可權配置了。
配置角色
緊接著,我們可以配置相關的角色並且為角色分配對應模組的許可權。角色分為3種型別,Global roles,Item roles(專案角色),Agent roles(和節點操作許可權相關的角色),其中Global roles擁有最高的許可權,如果為它分配job的讀寫許可權,那麼使用者如果繫結了這個角色,將會允許讀取所有的job,不管使用者是不是擁有的專案角色的許可權。
溫馨提示: job 和item在jenkins中的概念,都可以看成是jenkins的建立的編譯部署專案。
如下圖所示,擁有一個admin角色,擁有jenkins的所有許可權,我們還建立了一個dev角色,擁有對jenkins介面的讀許可權(可能說法不太準確,但事實是如果普通角色的使用者沒有overall的讀許可權,那麼他進去jenkins後將什麼也不不能看,並且提示其許可權不足)
接著,我們再分配兩個針對具體構建專案的角色,develop和prodev,如下圖所示,分別是針對測試環境和正式環境的專案建立的角色,其中,pattern能夠用正規表示式匹配具體構建的專案名。對job的許可權勾選了build,cancel,read,所以這兩個角色都能夠對他們看到的具體專案擁有構建,取消構建和讀許可權。
分配角色
接著,我們再把配置好的角色分配給具體的使用者,如下圖所示,使用者同時擁有dev,develop和prodev3個角色。
之後,用該使用者登入jenkins可以看到正確的專案構建頁面,同時擁有生產環境和測試環境的構建許可權。效果如下,
這裡我是對使用者同時分配了對正式環境和測試環境有構建許可權的角色給一個使用者,真實開發中,可以對少部分人開啟這個權利,畢竟知道正式環境配置的人越少,系統越安全。