日本熟妇hd丰满老熟妇,中文字幕一区二区三区在线不卡 ,亚洲成片在线观看,免费女同在线一区二区

部署GitLab代碼托管平臺

更新時間:
一鍵部署
我的部署

GitLab是一個基于Git的代碼托管和協(xié)作平臺,提供了從代碼管理到持續(xù)集成/持續(xù)部署(CI/CD)的全方位 DevOps功能。本文為您介紹如何在Linux系統(tǒng)的ECS實例上部署GitLab,搭建屬于您自己的代碼托管平臺。

準備工作

請確保您已創(chuàng)建一臺ECS實例,并且ECS實例必須滿足以下條件:

  • 操作系統(tǒng):Linux系統(tǒng)。具體支持的系統(tǒng)說明,請參見Supported OSes

  • 實例已分配公網IP地址或綁定彈性公網IP(EIP)。具體操作,請參見綁定EIP

  • 已在安全組內添加入方向規(guī)則放行80、443、22端口。具體操作,請參見添加安全組規(guī)則。端口說明,請參見常用端口

  • 實例規(guī)格:安裝GitLab所需的實例規(guī)格與項目規(guī)模和團隊規(guī)模有關,建議最小規(guī)格為4 vCPU、8 GiB。更多信息,請參見Installation system requirementsRunning GitLab in a memory-constrained environment

    重要

    低于4 vCPU、8 GiB會因規(guī)格過小,導致長時間處于Installing狀態(tài)或安裝失敗。請升級規(guī)格以后再安裝,升級規(guī)格操作,請參見升降配方式概述

安裝GitLab

GitLab版本包括企業(yè)版(EE)、社區(qū)版(CE)和極狐版(JH)。極狐GitLab(極狐版JH)是在中國大陸和港澳地區(qū)發(fā)行的企業(yè)級GitLab版本,極狐GitLab的服務器都在中國或中國內地,網絡訪問速度更快。極狐版和社區(qū)版的對比和說明請參見is-it-any-goodwhy-jh

方式一:使用安裝包

社區(qū)版本和極狐版本在安裝命令和支持的操作系統(tǒng)上存在差異。

GitLab社區(qū)版

  • Alibaba Cloud Linux 3使用安裝包方式安裝時,僅支持安裝極狐GitLab。如果需要在Alibaba Cloud Linux 3安裝GitLab社區(qū)版,請使用Docker鏡像方式。

CentOS 7.x

  1. 遠程連接需要安裝GitLab的ECS實例。

    具體操作,請參見使用Workbench工具以SSH協(xié)議登錄Linux實例

  2. 添加GitLab包倉庫。

    curl -sS https://packages.gitlab.com/install/repositories/gitlab/gitlab-ce/script.rpm.sh | sudo bash
  3. 安裝GitLab所需的依賴包。

    sudo yum install -y curl python3-policycoreutils openssh-server
  4. 安裝GitLab社區(qū)版。

    sudo EXTERNAL_URL=<GitLab服務器的公網IP地址> sudo yum install -y gitlab-ce

    <GitLab服務器的公網IP地址>請?zhí)鎿Q成安裝GitLab的ECS實例公網IP地址

    重要

    低于4 vCPU、8 GiB會因規(guī)格過小,導致長時間處于Installing狀態(tài)或安裝失敗。請升級規(guī)格以后再安裝,升級規(guī)格操作,請參見升降配方式概述

    當出現(xiàn)類似如下回顯信息,表示GitLab已經安裝成功。

    image

Ubuntu

  1. 遠程連接需要安裝GitLab的ECS實例。

    具體操作,請參見使用Workbench工具以SSH協(xié)議登錄Linux實例

  2. 安裝GitLab所需的依賴包。

    sudo apt-get update
    sudo apt-get install -y curl openssh-server ca-certificates tzdata perl
  3. 添加GitLab軟件包倉庫。

    sudo curl https://packages.gitlab.com/install/repositories/gitlab/gitlab-ce/script.deb.sh | sudo bash

    說明

    由于網絡原因,可能會出現(xiàn)無法添加GitLab軟件源鏡像的問題,建議您多嘗試幾次。

    當出現(xiàn)類似如下回顯信息,表示GitLab軟件包倉庫已安裝。

    image

  4. 刷新軟件包列表。

    sudo apt-get update
  5. 安裝GitLab。

    sudo EXTERNAL_URL=<GitLab服務器的公網IP地址> apt-get install -y gitlab-ce

    <GitLab服務器的公網IP地址>請?zhí)鎿Q成安裝GitLab的ECS實例更換公網IP地址

    重要

    低于4 vCPU、8 GiB會因規(guī)格過小,導致長時間處于Installing狀態(tài)或安裝失敗。請升級規(guī)格以后再安裝,升級規(guī)格操作,請參見升降配方式概述

    當出現(xiàn)類似如下回顯信息,表示GitLab已經安裝成功。

    image

極狐GitLab

  • 極狐GitLab支持的操作系統(tǒng)參見supported_os

Alibaba Cloud Linux 3/CentOS 7.x

  1. 遠程連接需要安裝GitLab的ECS實例。

    具體操作,請參見使用Workbench工具以SSH協(xié)議登錄Linux實例

  2. 安裝GitLab所需的依賴包。

    sudo yum install -y curl python3-policycoreutils openssh-server
  3. 添加GitLab軟件包倉庫。

    curl -fsSL https://get.gitlab.cn | sudo /bin/bash
    說明

    由于網絡原因,可能會出現(xiàn)無法添加GitLab軟件源鏡像的問題,建議您多嘗試幾次。

    當出現(xiàn)類似如下回顯信息,表示GitLab軟件包倉庫已安裝。

    image.png

  4. 安裝GitLab。

    sudo EXTERNAL_URL=<GitLab服務器的公網IP地址> yum install -y gitlab-jh

    <GitLab服務器的公網IP地址>請?zhí)鎿Q成安裝GitLab的實例公網IP地址。

    重要

    低于4 vCPU、8 GiB會因規(guī)格過小,導致長時間處于Installing狀態(tài)或安裝失敗。請升級規(guī)格以后再安裝,升級規(guī)格操作,請參見升降配方式概述

    當出現(xiàn)類似如下回顯信息,表示GitLab已經安裝成功。

    image.png

Ubuntu

  1. 遠程連接需要安裝GitLab的ECS實例。

    具體操作,請參見使用Workbench工具以SSH協(xié)議登錄Linux實例

  2. 安裝GitLab所需的依賴包。

    sudo apt-get update
    sudo apt-get install -y curl openssh-server ca-certificates tzdata perl
  3. 配置安裝極狐GitLab的軟件源鏡像。

    curl -L get.gitlab.cn | bash

    image

  4. 安裝GitLab。

    sudo EXTERNAL_URL=<GitLab服務器的公網IP地址> apt-get install -y gitlab-jh

    <GitLab服務器的公網IP地址>請?zhí)鎿Q成安裝GitLab的實例公網IP地址,示例命令如下:

    sudo EXTERNAL_URL=101.132.XX.XX apt-get install -y gitlab-jh
    重要

    低于4 vCPU、8 GiB會因規(guī)格過小,導致長時間處于Installing狀態(tài)或安裝失敗。請升級規(guī)格以后再安裝,升級規(guī)格操作,請參見升降配方式概述

    當出現(xiàn)類似如下回顯信息,表示GitLab已經安裝成功。

    image.png

方式二:使用Docker鏡像

使用Docker鏡像方式安裝

  1. 遠程連接需要安裝GitLab的ECS實例。

    具體操作,請參見使用Workbench工具以SSH協(xié)議登錄Linux實例

  2. 安裝Docker。具體操作,請參見安裝Docker

  3. 創(chuàng)建Docker容器的掛載數據目錄,該目錄會作為GitLab配置、日志和數據文件所在的目錄。

    sudo mkdir -p /srv/gitlab 
  4. 設置環(huán)境變量$GITLAB_HOME

    export GITLAB_HOME=/srv/gitlab
  5. 執(zhí)行如下命令,安裝GitLab容器鏡像。

    重要

    由于運營商網絡原因,會導致您拉取Docker Hub鏡像變慢,甚至下載失敗。您可以使用阿里云容器鏡像服務ACR提供的官方鏡像加速器,加速官方鏡像的下載。具體操作,請參見官方鏡像加速

    GitLab社區(qū)版

    sudo docker run --detach \
      --hostname gitlab.example.com \
      --publish 443:443 --publish 80:80 --publish 2222:22 \
      --name gitlab \
      --restart always \
      --volume $GITLAB_HOME/config:/etc/gitlab \
      --volume $GITLAB_HOME/logs:/var/log/gitlab \
      --volume $GITLAB_HOME/data:/var/opt/gitlab \
      --shm-size 256m \
      gitlab/gitlab-ce:latest

    容器參數

    主機參數說明

    hostname

    指定的主機名,建議修改為當前ECS實例的公網IP地址。

    publish 443:443

    將主機的443端口映射到容器的443端口,使用HTTPS訪問需要的端口。如果出現(xiàn)端口被主機端口已經被占用的報錯時,請?zhí)鎿Q為非標準端口,如publish 8443:443

    說明

    如替換成非標端口,需要在安全組中添加開放對應端口的入方向規(guī)則例如8443,請參見添加安全組規(guī)則

    publish 80:80

    將主機的80端口映射到容器的80端口,使用HTTP訪問需要的端口。如果出現(xiàn)端口被主機端口已經被占用的報錯時,請?zhí)鎿Q為非標準端口,例如publish 8080:80

    說明

    如替換成非標端口,需要在安全組中添加開放對應端口的入方向規(guī)則例如8080,請參見添加安全組規(guī)則

    publish 2222:22

    將主機的2222端口映射到容器的22端口,使用Git操作進行代碼克隆、推送和拉取操作,需要使用SSH服務。

    說明

    ECS實例的路徑和容器路徑的對應關系如下:

    ECS路徑

    容器路徑

    說明

    $GITLAB_HOME/data

    /var/opt/gitlab

    存儲應用程序數據。

    $GITLAB_HOME/logs

    /var/log/gitlab

    存儲GitLab配置文件。

    $GITLAB_HOME/config

    /etc/gitlab

    存儲GitLab配置文件。

    極狐GitLab

    sudo docker run --detach \
      --hostname gitlab.example.com \
      --publish 443:443 --publish 80:80 --publish 2222:22 \
      --name gitlab \
      --restart always \
      --volume $GITLAB_HOME/config:/etc/gitlab \
      --volume $GITLAB_HOME/logs:/var/log/gitlab \
      --volume $GITLAB_HOME/data:/var/opt/gitlab \
      --shm-size 256m \
      registry.gitlab.cn/omnibus/gitlab-jh:latest

    容器參數

    主機參數說明

    hostname

    指定的主機名,建議修改為當前ECS實例的公網IP地址。

    publish 443:443

    將主機的443端口映射到容器的443端口,使用HTTPS訪問需要的端口。如果出現(xiàn)端口被主機端口已經被占用的報錯時,請?zhí)鎿Q為非標準端口,如publish 8443:443

    說明

    如替換成非標端口,需要在安全組中添加開放對應端口的入方向規(guī)則例如8443,請參見添加安全組規(guī)則

    publish 80:80

    將主機的80端口映射到容器的80端口,使用HTTP訪問需要的端口。如果出現(xiàn)端口被主機端口已經被占用的報錯時,請?zhí)鎿Q為非標準端口,例如publish 8080:80

    說明

    如替換成非標端口,需要在安全組中添加開放對應端口的入方向規(guī)則例如8080,請參見添加安全組規(guī)則

    publish 2222:22

    將主機的2222端口映射到容器的22端口,使用Git操作進行代碼克隆、推送和拉取操作,需要使用SSH服務。

    說明

    ECS實例的路徑和容器路徑的對應關系如下:

    ECS路徑

    容器路徑

    說明

    $GITLAB_HOME/data

    /var/opt/gitlab

    存儲應用程序數據。

    $GITLAB_HOME/logs

    /var/log/gitlab

    存儲GitLab配置文件。

    $GITLAB_HOME/config

    /etc/gitlab

    存儲GitLab配置文件。

  6. 查看容器狀態(tài)。

    sudo docker ps -a

    當容器狀態(tài)為healthy時,說明GitLab容器已經正常啟動。

    image.png

方式三:使用ECS擴展程序

ECS擴展程序是用于增強和擴展ECS實例功能的插件。Alibaba Cloud Linux 3系統(tǒng)會安裝極狐GitLab,其他系統(tǒng)會安裝GitLab社區(qū)版。

ECS擴展程序

擴展程序的安裝步驟請參見OOS擴展程序,支持的系統(tǒng)版本請參見控制臺界面。Alibaba Cloud Linux 3系統(tǒng)會安裝極狐GitLab,其他系統(tǒng)會安裝GitLab社區(qū)版。

image

進入GitLab管理頁面

  1. 在瀏覽器輸入網址。訪問網址:http://${ECS的公網IP}

    重要

    如果使用Docker鏡像方式安裝,并將HTTP的默認端口80映射成非標準端口,請在訪問鏈接后添加該端口號。

  2. 首次登錄使用用戶名root,通過如下方式獲取密碼。

    獲取GitLab的登錄密碼。在ECS實例執(zhí)行以下命令:

    • Linux安裝包方式:sudo cat /etc/gitlab/initial_root_password

    • Docker安裝方式:sudo docker exec -it gitlab grep 'Password:' /etc/gitlab/initial_root_password

    回顯信息類似如下所示,您可以在Password后獲取GitLab的初始登錄密碼。

    image.png

    重要

    出于安全原因,24小時后該文件會被自動刪除。建議您安裝成功首次登錄之后,修改GitLab的初始密碼,操作步驟參見reset_user_password

    asda5

  3. 進入Admin頁面。

    image

  4. Users>Pending approval頁面審批新用戶的申請。其他操作例如管理項目、管理用戶等,請參見admin_area

    image

說明

本示例介紹將文件上傳到GitLab倉庫的步驟。如果您想了解更多的GitLab操作,例如GitLab常用命令、數據備份、配置選項、用戶管理、與其他服務集成、故障排除等,請參見極狐GitLabGitLab社區(qū)版

注冊用戶并設置免密訪問

  1. 訪問GitLab頁面。單擊Sign in按鈕下的Register now,創(chuàng)建一個新用戶。等待GitLab管理員通過申請后,使用新創(chuàng)建的用戶登錄GitLab。

  2. 在本地生成密鑰對文件。

    ssh-keygen

    生成密鑰對的過程中,系統(tǒng)會提示輸入密鑰對存放目錄(默認為當前用戶目錄下的.ssh/id_rsa,例如/home/test/.ssh/id_rsa)和密鑰對密碼,您可以手動輸入,也可以按Enter保持默認。

    回顯信息類似如下所示。

    image.png

  3. 查看并復制公鑰文件id_rsa.pub中的內容,便于后續(xù)步驟使用。

    cat ~/.ssh/id_rsa.pub

    回顯信息類似如下所示。

    ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQDQVwWjF3KXmI549jDI0fuCgl+syJjjn55iMUDRRiCd/B+9TwUda3l9WXH5i7RU53QGRCsDVFZxixLOlmXr9E3VSqkf8xXBnHs/5E2z5PIOCN0nxfB9xeA1db/QxPwK4gkHisep+eNHRn9x+DpCYDoSoYQN0nBg+H3uqfOqL42mJ+tqSfkyqbhjBf1kjtDTlBfVCWtI0siu7owm+c65+8KNyPlj5/0AyJ4Aqk1OX2jv+YE4nTipucn7rHwWuowasPU86l+uBsLNwOSb+H7loJvQyhEINX2FS1KnpRU+ld20t07n+N3ErfX5xBAGfxXpoN9BKKSP+RT7rvTeXTVE**** test@iZuf63zs0dn0qccsisy****
  4. 添加SSH key。將獲取的公鑰添加了GitLab賬戶中,以便進行免密碼的身份驗證。

    1. 單擊頁面右上角的頭像,然后單擊Edit profile

      image

    2. 在左側導航欄,單擊SSH Keys。將公鑰文件id_rsa.pub中的內容粘貼到Key所在的文本框中,然后單擊Add key

      image

    3. SSH Key添加完成后,如下圖所示。sda

創(chuàng)建項目并托管代碼

創(chuàng)建新項目

  1. 在GitLab的主頁中,單擊頁面右側的New Project按鈕,然后單擊Create blank project

    ada55

  2. 單擊Create blank project,設置Project nameProject URL,然后單擊頁面底部的Create project。本文以mywork項目為例進行說明。

    image

  3. 回到項目頁面,復制SSH克隆地址,該地址在進行克隆操作時需要使用。

    image

克隆遠程倉庫

  1. 在本地安裝Git

    sudo yum install git
  2. 在本地配置使用Git倉庫的人員信息。

    1. 配置使用Git倉庫的用戶名。

      git config --global user.name "testname" 
    2. 配置使用Git倉庫的人員郵箱。

      git config --global user.email "abc@example.com" 
  3. 克隆已創(chuàng)建的項目到本地。

    1. 輸入git clone并粘貼SSH克隆地址,Git會自動創(chuàng)建一個以倉庫名稱命名的文件夾并下載文件。

      git clone ${SSH URL}

      如果使用Docker鏡像安裝,需要在鏈接中添加ssh://和docker run命令中的映射端口,例如:

      重要

      如果不想修改SSH鏈接,需要修改gitlab_rails['gitlab_shell_ssh_port'] 參數,以便在GitLab頁面中正確顯示,請參見使用Docker方式啟動時,提示22端口被占用

      git clone ssh://git@{IP域名}:{SSH端口}/root/mywork

      簡單配置

    2. 進入到項目目錄。

      cd mywork/ 
    3. 查看當前分支的名稱,默認為主分支main

      git branch

新建分支并進行更改

在本地創(chuàng)建新的分支,便于更改文件。

  1. 新建一個分支example

     git checkout -b example     
  2. 新建需要上傳到GitLab中的目標文件test.txt,并寫入內容Hello world!

    echo "Hello world!" > test.txt

提交并推送更改

將新分支example推送到遠程倉庫進行保存。

  1. test.txt文件添加到暫存區(qū)。

    git add test.txt
  2. 確認變更的文件。

    git status

    獲得以下輸出:

    On branch example
    Changes to be committed:
      (use "git restore --staged <file>..." to unstage)
            modified:   test.txt
  3. 提交暫存文件test.txt

    git commit -m "測試用"
  4. example分支目前只在本地可用。將分支推送到GitLab倉庫,便于其他人訪問。

    git push origin example
  5. 推送到GitLab倉庫后,其他用戶也可以查看新建的分支。

    image

合并更改

將本地example 分支的更改合并到主分支 main,然后將合并后的主分支 main推送到遠程倉庫。

  1. 切換到主分支main

    git checkout main
  2. 將新建分支example 合并到主分支main

    git merge example
  3. 將合并后的主分支推送到GitLab倉庫。

    git push
  4. 變更已同步到GitLab倉庫的主分支main中。

    image

    image

后續(xù)步驟

配置郵件通知

GitLab需要一個郵件傳輸代理來發(fā)送電子郵件通知,例如項目更新、密碼重置等。SMTP服務通常使用服務器的25端口發(fā)送郵件,但基于安全考慮,ECS實例25端口默認受限,建議您使用SSL加密端口(通常是465端口)來對外發(fā)送郵件,常用端口的說明請參見常用端口。配置SMTP的步驟:

  1. 配置外部 SMTP 服務器

  2. 驗證SMTP配置效果。

    1. 執(zhí)行gitlab-rails console命令進入Rails控制臺。

    2. 輸入以下命令,發(fā)送測試電子郵件:

      Notify.test_email('destination_email@address.com', 'Message Subject', 'Message Body').deliver_now
    3. 在目標郵箱中查看測試郵件,或者在ECS實例中執(zhí)行sudo tail -f /var/log/mail.log查看郵件的日志。

備份GitLab倉庫的數據

解析GitLab網站域名

通過實例公網IP地址直接訪問您的GitLab網站會降低服務端的安全性。如果您已有域名或者想為GitLab網站注冊一個域名,可以參考以下步驟。

  1. 注冊域名。

    具體操作,參見通用域名注冊基本流程如何注冊阿里云域名

  2. 備案域名。

    如果您的域名指向的網站托管在阿里云中國內地節(jié)點服務器,您需要進行備案。首次備案,請參見ICP備案流程,其他情況請參見ICP備案流程

  3. 解析域名。設置域名解析后,外部用戶可通過域名訪問GitLab網站。

    域名解析是使用域名訪問您的網站的必備環(huán)節(jié)。具體操作,請參見新手引導

  4. 開啟HTTPS加密訪問。使用免費服務例如使用Let’s Encrypt免費的自動HTTPS,或者付費服務SSL證書快速上手

  5. 添加安全組規(guī)則:在ECS的安全組內,添加一條入方向規(guī)則,為了安全起見,建議只對授權的IP地址開放端口。

    • 安裝包或擴展程序方式:443(HTTPS)端口。

    • Docker Engine方式:對應于docker run命令中設置的主機HTTPS端口。

  6. 修改gitlab.rb中的external_url參數,配置完成后如下圖所示。

常見問題

服務器卡頓、無法遠程連接

  • 低于4 vCPU、8 GiB會因規(guī)格過小,導致長時間處于Installing狀態(tài)或安裝失敗。請升級規(guī)格以后再安裝,升級規(guī)格操作,請參見升降配方式概述

  • 如果無法遠程連接服務器,可以使用VNC登錄實例,然后進行配置SWAP、優(yōu)化Sidekiq等操作,具體步驟參見memory_constrained_envs

  • 監(jiān)控ECS實例的vCPU使用率、網絡流量和磁盤I/O的操作步驟,請參見查看實例監(jiān)控信息

使用Docker方式啟動時,提示22端口被占用

ECS實例默認啟動SSH服務,會占用22(SSH)端口。使用Docker鏡像方式安裝時,需要將主機的22端口映射成其他端口,并修改gitlab_rails['gitlab_shell_ssh_port'] 參數:

  1. 在啟動Docker時指定非標端口,例如publish 2222:22

  2. 編輯GitLab配置文件。

    1. 執(zhí)行sudo docker exec -it gitlab /bin/bash,進入會話。

    2. 編輯文件/etc/gitlab/gitlab.rb

    3. 設置gitlab_rails['gitlab_shell_ssh_port'] = 2222

    4. 執(zhí)行gitlab-ctl reconfigure,重新配置GitLab。

  3. 打開項目頁面,驗證配置效果。

    image