說說興趣 ‧ 說說科技 ‧ 東說西說 ‧ 就是要說  

利用容器安裝 gitlab 與設置 insecure gitlab container registry

沒有留言

        本篇文章主要是說明如何利用Gitlab的Docker映象檔來建立自己的Gitlab主機,另外,Gitlab在8.8版後,也開始提供與container registry的整合功能。由於目前網路上的資源大多以secure container registry為主的Gitlab設置方法。本篇文章特別以insecure container registry來說明如何在Gitlab上設置insecure container registry,供內部私用的Gitlab主機免去處理簽證的設置。


Step 1. 安裝 Docker 運行的環境

          基本上只要參考Docker官網(https://docs.docker.com/install/)的安裝守則,大都能夠簡單地完成安裝的流程,有個比較需要注意的是,記得將自身的使用者帳號加入docker的群組內,避免每次都非得使用sudo來進行相關的操作。

sudo usermod -aG docker $USER ---將自身帳號加入docker群組

Step 2. 下載 Gitlab 最新映像檔

          首先先造訪一下Docker Hub官網了解一下目前Gitlab的釋出狀態。



        從Docker Hub的Gitlab專案頁可以知道目前最新的版本為10.2.8-ce.0, 這邊我們採用Community Edition作為我們的安裝的目標。在下載映像檔時,我偏好採取明確版號方式來指定要下載的版本,作為日後確認版本時的依據。請執行下述指令來下載映像檔
             
docker pull gitlab/gitlab-ce:10.2.8-ce.0

Step 3. 運行吧! Gitlab

             

        如上圖所示,先準備一個放置gitlab所有資料與組態的位置,按照上圖,gitlab相關的資料將置放於/srv/gitlab/server之下。待資料夾創建完畢後,便可以下達運行gitlab的指令。相關的執行設定,可以參考gitlab的官方說明(這裡)。 比較需要說明一下的便是ssh port的指定,很多時候虛擬機器的埠號22,常是被佔住的,因此這邊特地使用2022作為替代。 執行過程中,可以利用docker ps來觀察gitlab是否已經順利運行。以下為運行後,gitlab網站的樣貌與相關設定。

          一開始登入時,會被要求針對root帳號,進行密碼的設定。

          待設定完畢後,便可以利用root帳號與方才設定的密碼登入系統。以下我們便趕緊建立一個新專案來看看。


          利用右上的 + 號圖示,選擇 "New project" 開啟新專案,並輸入相關專案訊息後,點擊"Create project"來建立新專案。接著來看看新專案頁面上有什麼資訊。


        可以發現三件事,(一) 網誌名為127.0.0.1,當然這並不意外,因為gitlab運行在本地端;(二) 專案的連結為亂碼;(三) 並未有任何跟registry有關的資訊於左側的控制sidebar。 


Step 4. 有關再組態Gitlab的二三事

        以下將針對步驟三發現的問題hostname問題與存取位置亂碼來進行處理。 首先我們得先找到gitlab的設定檔案:gitlab.rb ,這個檔案會放置在掛載點有關config的地方,以這例子來說便是在 "/srv/gitlab/server/config 裡面,如下圖


         打開該設定檔,並且針對 "external_url" 與 "gitlab_shell_ssh_port"進行設定,如下圖 


         設定完後,重新啟動gitlab便能讓設定生效。在這之前,讓我們先針對container registry進行啟用設定。

Step 5. 啟動Gitlab Container Registry

        如步驟四所提,相關的registry設定也是在gitlab.rb檔案內進行。主要是針對下圖提及的五個參數進行設定:

  • registry_external_url : 主要是來設定gitlab內部的nginx有關映像庫的網路位址
  • registry_enabled: 用來告訴gitlab啟用registry
  • registry_path: 用來指定映像檔的存放位置
  • gitlab_default_projects_features_container_registry: 是否預設建立專案的所屬映像庫
  • lfs_enabled: 讓gitlab支援大檔案
          設定完成後,重啟gitlab讓一切設定生效。

       

          在等待gitlab重啟時,來設定一下hostname,以便讓系統能夠符合方才有關網路位置的設定。 開啟/etc/hosts,並且進行以下設定。(主要是在127.0.0.1後面加入方才定義到的網路位置)

         

Step 6. 查看結果

          打開系統的瀏覽器,並且利用方才設定的網路位置(augu.gitlab)進行存取。不僅git的存取連結正確反應設定,專案的registry也顯示出來了。


沒有留言 :

張貼留言