成人免费xxxxx在线视频软件_久久精品久久久_亚洲国产精品久久久_天天色天天色_亚洲人成一区_欧美一级欧美三级在线观看

介紹一種新的資源控制管理器:SCM-Manager

譯文
運維 系統運維
本文介紹了一種可用于DevOps CI/CD管道,并能與Git、Subversion 和 Mercurial 存儲庫協同的新工具--SCM-Manager。

[[423856]]

【51CTO.com快譯】如果您和您的團隊正在使用Git或Subversion之類的源代碼控制管理系統(source control management,SCM),您可能會需要一個管理層,以恰當的方式去管理用戶的訪問和存儲庫。目前,GitHub、GitBlit、以及GitLab等都是該領域流行、且強大的管理方案。當然,如果您計劃使用Jenkins之類的自動化服務器,去創建自己的構建和部署管道的話,則還需要托管自己的存儲庫管理器。

當然,客觀而言,GitLab等方案不但管理起來非常復雜,往往需要一定的實踐經驗;而且為了保持良好的運行性能,往往對硬件資源的要求并不低。因此,為了克服這些困難,我們可以考慮引入的工具--SCM-Manager[1]。它不但簡單、可擴展,而且運行起來快速且高效。

SCM-Manager是一款德國制造的工具。由于在MIT的許可下是開源的,因此它允許被用于商業用途,而且其代碼可以在GitHub上獲取到。該項目最初只是被用于研究目的,而在其2.0版本之后,被Cloudogu公司接手管理和開發了其各種代碼庫,以便為各個公司提供專業的企業級支持。

從安裝開始

下面,讓我們來領略一下其簡單的安裝步驟。為了快速獲取結果,您可以使用其官方的Docker容器[2],并輸入如下簡單命令。

  1. docker run --name scm –restart=always \ 
  2. -p 8080 -p 2222 \ 
  3. -v /home/<user>/scmManager:/var/lib/scm \ 
  4. scmmanager/scm-manager:2.22.0 

首先,讓我們基于SCM-Manager的2.22.0鏡像,來創建一個名為scm的容器。然后,我們需要讓容器能夠跟隨著主機操作系統的重新啟動而自動重啟。同時,為了讓它能夠被訪問到,我們需要打開端口2222和8080。最后,我們需要在容器內掛載一個存儲了所有配置數據和存儲庫的目錄。

當然,您也可以參照如下安裝清單,通過使用apt,讓SCM-Manager能夠在Ubuntu之類的Linux服務器上運行起來。

  1. echo 'deb [arch=all] https://packages.scm-manager.org/repository/apt-v2-releases/ stable main' | sudo tee /etc/apt/sources.list.d/scm-manager.list  
  2. sudo apt-key adv --recv-keys --keyserver hkps://keys.openpgp.org 0x975922F193B07D6E  
  3. sudo apt-get update  
  4. sudo apt-get install scm-server 

此外,SCM-Manager也可以被安裝在Windows或Apple等系統上。您可以在對應的下載頁面[3]上,找到與各種系統相對應的安裝信息。如下圖所示,在執行安裝時,您會在控制臺中,看到各種帶有啟動令牌的日志條目。

圖 1:命令行中的啟動令牌

接著,就可以打開瀏覽器,并輸入localhost:8080。您可以在其中通過創建并初始一個管理帳戶,以完成安裝。如圖2所示,您需要從命令行處粘貼啟動令牌,并在提交了初始化表單之后,重定向到登錄頁面上。這些前期準備估計將在5分鐘之內完成。

 

圖 2:初始化頁面

如果您想嘗試完整的、非值守式安裝腳本,可以使用系統屬性scm.initalPassword,繞過初始化表單。它將使用給定的密碼,去創建一個名為scmadmin的用戶。

在舊版本的SCM-Manager中,其默認的管理員登錄帳戶是scmadmin,密碼為scmadmin。從安全角度來說,如果該帳戶不在安裝后手動禁用掉,則會給系統引入較高的風險隱患。不過,值得慶幸的是其2.21及其以后的版本,都改進了該安全漏洞。

插件

SCM-Manager可以通過插件的擴展,來實現最小化安裝,并添加更多的實用功能。值得注意的是,隨著已安裝插件的增多,SCM-Manager需要獲取的資源也會增加。因此,您的開發團隊需要根據實際需求,排定插件的優先級和必要性。

圖 3:已安裝的插件

您可以通過管理(Administration)選項卡,按需進行插件的安裝。如果您看不到該選項的話,則可能是因為您沒有獲取管理權限。在界面的右側菜單中,您可以找到相應的插件入口。該插件菜單分為:已安裝和可用,兩個部分。為了更好地方便瀏覽,各種插件已按照管理(Administration)、授權(Authorization)和工作流(Workflow)等進行了組織與分類。而且,每個插件都配有簡短且精準的描述。其中會包含一些預安裝的插件。例如,在源代碼管理類別中,支持存儲庫類型的Git、Subversion和Mercurial,都是無法被卸載的。

而在授權部分中,路徑寫保護(Path Write Protection)、分支寫保護(Branch Write Protection)、以及標簽保護(Tag Protection),都是對于構建和配置管理器非常實用和易于安裝的插件。

特殊權限

讓我們假設有一個Java/Maven項目。其規則是,只允許特定的人員去更改pom.xml的內容,并構建相應的邏輯。對此,我們可以通過路徑寫保護插件來實現。具體而言,在完成安裝之后,請導航到代碼存儲庫,并在界面的右側菜單中選擇設置(Settings),然后單擊選項路徑權限(Path Permissions),以啟用該復選框。

圖 4:配置路徑權限

如上圖所示,我創建了一條規則:只有用戶Elmar Dott才能修改pom.xml。而且,該權限涵蓋了所有的現有分支。由于其反向權限是排他的,因此如果文件或路徑表達式不存在的話,該規則將無法被創建。為了便于管理,我們會將現有的用戶進行分組。

據此,當您的團隊使用大量分支或git-flow分支模型時,您可以通過該選項,保護各個分支免受不必要的更改。同時,那些擁有開發者分支的個人開發者,將僅有寫入權限;而配置管理團隊成員,則擁有運行CI/CD管道的發布分支權限。

拉取請求

讓我們來討論另一個實用的功能—審查插件(review plugin)。該插件能夠為您的存儲庫啟用拉取請求。完成了審查插件的安裝之后,在您的存儲庫菜單中,會出現一個名為Pull Requests[4]的新的項目符號。

最初,拉取請求是為了讓開源項目保證代碼質量而設計的。這種范式的另一個名稱叫做獨斷工作流(dictatorship workflow)[5]。每個開發人員都可以將各自的更改提交到存儲庫處,而存儲庫的所有者將會決定把哪個修訂版整合到代碼庫中。

讓我們假設一個場景:如果你在GitHub上托管了自己的項目源,其他人想參與到您的項目中。那么,他們必須先將存儲庫分叉到他們自己的GitHub空間里。而在他們對該分叉存儲庫提交了某些修訂后,就需要創建針對原始存儲庫的拉取請求。同時,作為存儲庫的所有者,您需要判定是否接受此類拉取請求。可見,拉取請求的方式可以被用作代碼審查工具,進而真正地提高項目中的代碼質量。

存儲庫管理

SCM-Manager結合了三種不同的源代碼控制管理存儲庫--Git、Subversion(SVN)和Mercurial。雖然Subversion已顯得有些過時,但是許多公司仍然必須使用SVN,去管理各種遺留的項目。畢竟將這些項目遷移到其他技術棧,所導致的風險或成本可能是高昂的。因此,我們需要擁有一個可以管理多個存儲庫類型的解決方案。

如果您正在使用SVN,那么請留意Subversion在其目錄中是如何組織分支和標簽的。通常,SVN存儲庫會使用如下文件夾進行初始化:

  • 主干——類似Git中的主(master)分支。
  • 分支——指向主干中已被分叉(forked)的修訂,那些更改的代碼可以被提交。
  • 標簽——類似沒有新代碼修訂的分支。

而在Git中,您并不需要此類文件夾結構,畢竟分支的組織方式是完全不同的。與Subversion相比,Git(和Mercurial)是一個分布式的源代碼控制管理系統,其分支失去了耦合。因此,它們一旦“過時”,則會被直接刪除掉。

Readme

如果readme.md文件位于項目的根文件夾中,readme插件就會被激活。您在導航到存儲庫后,readme.md文件將以HTML的格式呈現出來。

圖 5:存儲庫的readme.md呈現

如果您希望存儲庫的各項活動既可讀、又可視化的話,則需要用到活動插件。它會在標題菜單中創建一個名為活動(Activity)的導航入口。在此,您既能夠看到所有提交的日志條目,又可以進入已選修訂的詳細視圖。

圖 6:活動視圖

類似TortoiseGit的客戶端,此類視圖也會包含一個比較和歷史瀏覽器。而存儲庫管理器(Repository Manager)還會包含更多日常運作的細節。其中會有一個代碼編輯器,能夠允許您直接在SCM-Manger的用戶界面中,對各種文件進行修改。

用戶和組的管理

在SCM-Manager中,創建新用戶其實非常簡單。您只需切換到“用戶(Users)”選項卡,然后按下“創建用戶(create user)”按鈕即可。一旦您填寫了表單,并完成保存之后,將可以看到用戶的相關概覽。

圖 7:創建一個新用戶

至此,您已經可以看到新創建的用戶了。接著,您需要管理用戶的權限。目前新用戶并無任何權限。若要更改,您只需單擊新創建的用戶名稱,在用戶的詳細信息頁面上右擊,在菜單項上依次選擇設置(Settings)->權限(Permissions)即可。您可以在此為用戶選擇恰當的權限,并在完成后保存更改。接著,您可以試著注銷,并以該用戶的身份重新登錄,以確認其權限。

如果您需要管理大量的用戶,則最好將其分組。我們可以通過標題導航中的組(Group)菜單項,來管理組的權限。您可以創建一個新的組,并從其右側的菜單中,選擇相應的權限。其具體配置形式,與用戶管理的配置十分相似。如果您希望將現有的用戶添加到特定組中,請切換到通用(General)標簽,在其成員(Members)的字段中,搜索到該用戶,進而使用添加成員(Add Member)按鈕進行添加。最后,請記得提交表單,并保存所有的權限更改。

為了體現靈活性,SCM-Manager也允許同一個用戶被添加到多個組(或角色)中。注意,請不要輕易將用戶歸并到過多的組中,以免用戶繼承了不該授予的權限。目前,SCM-Manager尚無法通過簡要的概述,列舉并查看哪些用戶在哪些組中,繼承了何種權限。希望其將來的版本會有所改進。

此外,除了SCM-Manager提供的內部用戶管理,您還可通過插件,將應用程序與LDAP相連接。

小結

除了上面提到的SCM-Manager的基本功能,我們既能夠使用其API去創建各種可執行的腳本,又可以讓Jira、Timescale、以及Prometheus等基礎設施工具與SCM-Manager相集成。此外,SCM-Manager還提供了Jenkins自動化服務器的插件。總之,如果您有興趣的話,不妨試用一下這款全新的資源控制管理器。

文中參考

[1] https://www.scm-manager.org

[2] https://hub.docker.com/r/scmmanager/scm-manager

[3] https://www.scm-manager.org/download/

[4] https://docs.github.com/en/github/collaborating-with-pull-requests/proposing-changes-to-your-work-with-pull-requests/about-pull-requests

[5] https://git-scm.com/book/en/v2/Distributed-Git-Distributed-Workflows

原文標題:Tooltime: SCM-Manager,作者:Elmar Dott

【51CTO譯稿,合作站點轉載請注明原文譯者和出處為51CTO.com】

 

責任編輯:華軒 來源: 51CTO
相關推薦

2017-06-20 11:28:16

2018-12-14 14:30:12

安全檢測布式系測試

2011-07-04 17:53:48

快速測試

2020-12-21 07:05:41

Windows10操作系統Windows10X

2009-11-27 09:25:50

Cisco路由器備份

2010-03-10 09:44:51

Linux啟動引導加密

2022-08-08 08:22:22

量子計算

2019-09-20 17:50:36

虛擬機管理器virt-manageLinux

2010-11-05 10:15:42

云計算

2011-09-05 19:03:47

UbuntuNautilus

2010-04-09 17:27:47

2017-08-24 15:02:01

前端增量式更新

2011-12-28 21:18:18

App

2013-04-01 13:55:35

Android開發Android資源管理

2017-02-20 09:00:49

2019-11-22 09:21:17

技術研發數據

2020-12-16 10:12:52

大數據小數據人工智能

2023-12-04 08:21:18

虛擬線程Tomcat

2022-04-06 12:00:46

HEAT安全架構新威脅

2022-07-28 11:29:23

數據安全數據令牌化
點贊
收藏

51CTO技術棧公眾號

主站蜘蛛池模板: 精品国产免费一区二区三区五区 | 九九色综合| 久久久久久亚洲精品 | 九九热在线免费视频 | 在线观看中文字幕 | a级性视频| 国产精品亚洲精品日韩已方 | 黄色日本片 | 国产高清在线观看 | 岛国毛片在线观看 | 中文字幕一区二区三区在线乱码 | 蜜臀久久 | 精品视频 免费 | 99爱在线视频 | 麻豆国产精品777777在线 | 日本激情视频网 | 国产精品视频一区二区三区 | 91av视频 | 特级黄一级播放 | 亚洲福利网 | 黄色片视频免费 | 欧美人妖网站 | 亚洲五码在线 | 一本大道久久a久久精二百 欧洲一区二区三区 | 一区二区三区国产在线观看 | 一区二区三区回区在观看免费视频 | 亚洲美女网站 | 欧美日韩三级在线观看 | 国产一区二区三区久久 | 天天拍夜夜爽 | 国产中文字幕在线 | 精品一区二区久久久久久久网站 | 国内av在线| 亚洲电影中文字幕 | 日韩视频在线免费观看 | 亚洲电影成人 | 国产一级片免费视频 | 91视频免费 | 久久久久久久久久久丰满 | 中文一区二区 | 欧美激情国产精品 |