前言
隨著云計算技術(shù)的不斷進(jìn)步,華為云 Flexus 云服務(wù)器 X 實例憑借其專為中小企業(yè)和開發(fā)者定制的柔性算力特性,在眾多云服務(wù)產(chǎn)品中嶄露頭角,以強(qiáng)勁的性能和出色的性價比贏得了市場的青睞。GitLab 作為一款基于 Git 的開源代碼托管平臺,提供了版本控制、代碼審查、問題跟蹤及 CI/CD 等一系列項目管理工具,極大地提升了開發(fā)團(tuán)隊的工作效率。本文將指導(dǎo)讀者如何在運(yùn)行 openEuler 系統(tǒng)的華為云 Flexus 云服務(wù)器 X 實例上部署 GitLab,通過整合兩者的優(yōu)勢,實現(xiàn)服務(wù)器管理的現(xiàn)代化轉(zhuǎn)型。無論是初創(chuàng)企業(yè)還是成熟團(tuán)隊,都能借助這一部署方案,充分發(fā)揮華為云的強(qiáng)大算力與 GitLab 的先進(jìn)功能,推動項目的快速發(fā)展。通過本文的詳盡步驟,讀者將能夠順利完成 GitLab 的部署,并進(jìn)一步探索其在實際應(yīng)用中的潛力。
一、Flexus 云服務(wù)器 X 實例介紹
1.1 Flexus 云服務(wù)器 X 實例簡介
·官網(wǎng)地址:華為云Flexus云服務(wù)器X實例
華為云 Flexus 云服務(wù)器 X 實例是新一代面向中小企業(yè)和開發(fā)者的柔性算力云服務(wù)器。它能夠智能感知業(yè)務(wù)負(fù)載的變化,自動調(diào)整資源配置。這款服務(wù)器特別適用于中低負(fù)載的應(yīng)用場景,例如電商直播、企業(yè)網(wǎng)站建設(shè)、開發(fā)測試環(huán)境、游戲服務(wù)器以及音視頻服務(wù)等。X 實例的設(shè)計理念旨在為用戶提供更加靈活和高效的計算資源管理方式。通過智能調(diào)整,它可以更好地滿足不同業(yè)務(wù)的需求,提高資源利用率。
1.2 Flexus 云服務(wù)器 X 實例特點
·提供豐富的公共鏡像:Flexus 云服務(wù)器 X 實例提供多種公共鏡像供用戶選擇,方便快速部署各種應(yīng)用和服務(wù)。
·可靈活自定義 vCPU 內(nèi)存配比:用戶可以根據(jù)自己的需要靈活調(diào)整虛擬 CPU 和內(nèi)存的配比,以滿足不同場景的需求。
·智能感知業(yè)務(wù)動態(tài)升降配:Flexus 云服務(wù)器 X 實例能夠智能感知業(yè)務(wù)的負(fù)載情況,并根據(jù)需要自動升降配,以滿足業(yè)務(wù)的需求,提高系統(tǒng)的穩(wěn)定性和性能。
·負(fù)載范圍更高:相對于 Flexus 應(yīng)用服務(wù)器 L 實例,F(xiàn)lexus 云服務(wù)器 X 實例能夠處理更高的負(fù)載,適用于更復(fù)雜和繁忙的場景。
1.3 Flexus 云服務(wù)器 X 實例使用場景
Flexus 云服務(wù)器 X 實例針對不同的使用場景展現(xiàn)出其獨(dú)特的優(yōu)勢:
1.電商直播:利用 X 實例搭建電商交易平臺,可以有效應(yīng)對電商市場的瞬息萬變,從容處理業(yè)務(wù)壓力波動,確保交易過程順暢無阻。
2.企業(yè)建站:面向博客、論壇和企業(yè)門戶等應(yīng)用場景,X 實例幫助企業(yè)高效傳播價值信息,促進(jìn)信息共享與交流,支持構(gòu)建多功能傳播和交互平臺。
3.個人開發(fā)測試:開發(fā)者在開發(fā)和測試過程中所需的環(huán)境資源可以通過 X 實例便捷獲取,不僅提高了搭建效率,而且降低了成本。
4.游戲服務(wù)器:適用于搭建游戲后臺服務(wù)器,強(qiáng)大的計算能力可以輕松應(yīng)對大量玩家同時在線的情況,同時支持平滑擴(kuò)容,快速應(yīng)對玩家數(shù)量增長的需求,以及提供出色的網(wǎng)絡(luò)加速能力以提升用戶體驗。
二、GitLab 介紹
2.1 GitLab 簡介
GitLab是一個基于 Git 的在線代碼倉庫管理平臺,提供了代碼托管、版本控制、持續(xù)集成和部署等一系列功能。使用 GitLab 可以輕松管理團(tuán)隊中的開發(fā)者,進(jìn)行代碼的協(xié)作開發(fā)和管理。GitLab 也提供了豐富的項目集成和 API,可以讓開發(fā)者更快地進(jìn)行集成和部署。
2.2 GitLab 主要特點
·版本控制與代碼托管:GitLab 提供了一個基于 Git 的版本控制系統(tǒng),支持多倉庫管理,使得代碼的版本控制變得更加高效和可靠。用戶可以輕松創(chuàng)建、克隆、分支和合并代碼倉庫。
·代碼審查與協(xié)作:GitLab 支持合并請求(Merge Requests)機(jī)制,允許團(tuán)隊成員在代碼合并之前進(jìn)行代碼審查,確保代碼質(zhì)量,并促進(jìn)團(tuán)隊間的協(xié)作。
·問題與項目管理:內(nèi)置的問題跟蹤系統(tǒng)(Issues)和項目管理面板(Boards),幫助團(tuán)隊跟蹤缺陷、任務(wù)和特性請求,有效地組織和管理項目進(jìn)度。
·持續(xù)集成與持續(xù)部署(CI/CD):GitLab 內(nèi)置了 CI/CD 功能,通過 .gitlab-ci.yml文件定義構(gòu)建、測試和部署流程,支持自動化測試、部署和監(jiān)控,加速軟件交付周期。
·安全性與合規(guī)性:提供了一系列的安全工具,如靜態(tài)應(yīng)用安全測試(SAST)、依賴性檢查(Dependency Scanning)、容器鏡像掃描(Container Scanning)等,幫助開發(fā)者識別潛在的安全漏洞,確保應(yīng)用程序的安全性。
·可擴(kuò)展性與高可用性:GitLab 可以從小型項目擴(kuò)展到大型企業(yè)級應(yīng)用,支持水平擴(kuò)展,即通過增加節(jié)點來提高處理能力。同時,它也支持高可用性部署,確保服務(wù)的連續(xù)性和可靠性。
·集成與插件支持:GitLab 支持與各種第三方工具和服務(wù)集成,如 Slack、Jira、Docker 等,通過插件和 API 接口增強(qiáng)其功能性和靈活性,使開發(fā)者能夠在一個平臺上完成幾乎所有 DevOps 相關(guān)的任務(wù)。
·用戶界面與體驗:GitLab 提供了直觀且用戶友好的圖形界面,使得即便是非技術(shù)背景的團(tuán)隊成員也能輕松使用其各項功能。
·開源與企業(yè)版:GitLab 有免費(fèi)的社區(qū)版(Community Edition, CE)和付費(fèi)的企業(yè)版(Enterprise Edition, EE)。企業(yè)版提供了更多的高級特性和支持服務(wù),適用于需要更高安全性和定制化功能的大規(guī)模企業(yè)。
三、本次實踐介紹
3.1 本次實踐簡介
1.本次實踐為個人測試學(xué)習(xí)環(huán)境,旨在快速部署應(yīng)用,生產(chǎn)環(huán)境請謹(jǐn)慎;2.本次實踐環(huán)境為云華為云 Flexus 云服務(wù)器 X 實例,使用的操作系統(tǒng)為 openEuler 22.03 LTS;3.本次實踐在 Docker 環(huán)境下部署 GitLab 服務(wù)器。
3.2 本次環(huán)境規(guī)劃
四、遠(yuǎn)程連接華為云 Flexus 云服務(wù)器 X 實例
4.1 購買 Flexus 云服務(wù)器 X 實例
進(jìn)入華為云官網(wǎng):https://activity.huaweicloud.com/,登錄自己的華為云賬號,進(jìn)入華為云首頁。
·可參考以下基礎(chǔ)配置,進(jìn)行購買:
1.計費(fèi)模式:包年/包月,這里選擇此模式;2.區(qū)域:華北—北京四,可用區(qū):隨機(jī)即可;3.實例規(guī)格:關(guān)閉性能模式,選擇自定義,4vCPUs | 12GiB;4.鏡像:公共鏡像,Huawei Cloud EulerOS,版本,Huawei Cloud EulerOS 2.0 Standard 64 bit(10GiB);5.應(yīng)用加速:這里選擇不加速,可根據(jù)需要自行選擇;6.存儲:系統(tǒng)盤,通用型 SSD100G;7.網(wǎng)絡(luò):選擇默認(rèn)即可;8.安全組:選擇默認(rèn)即可;9.彈性公網(wǎng) IP:選擇“現(xiàn)在購買”,全動態(tài) BGP,帶寬 3Mbit/s;10.云服務(wù)器名稱:可自定義設(shè)置,這里選擇默認(rèn)的名稱;11.登錄憑證:自定義設(shè)置密碼;12.云備份:暫不購買;其余配置默認(rèn)即可。
·確認(rèn)配置及購買
在確認(rèn)配置頁面,檢查 Flexus 云服務(wù)器 X 實例的各項配置是否正確。檢查完畢后,點擊“立即購買”。付款完畢后,華為云 Flexus 云服務(wù)器 X 實例購買成功。
4.2 查看 Flexus 云服務(wù)器 X 實例狀態(tài)
進(jìn)入華為云 Flexus 云服務(wù)的控制臺,選擇 Flexus 云服務(wù)器 X 實例,可以看到已經(jīng)正在運(yùn)行的 Flexus 云服務(wù)器 X 實例。
4.3 使用 Xshell 遠(yuǎn)程連接
·復(fù)制 Flexus 云服務(wù)器 X 實例的彈性公網(wǎng) IP 地址
·主要填寫 Flexus 云服務(wù)器 X 實例的彈性公網(wǎng) IP 地址,輸入其登錄用戶和密碼,連接即可。
五、檢查 Flexus 云服務(wù)器 X 實例系統(tǒng)環(huán)境
5.1 檢查操作系統(tǒng)版本
檢查 Flexus 云服務(wù)器 X 實例的操作系統(tǒng)版本,本次實踐選擇的版本為 openEuler 22.03 LTS
[root@flexusx-51a1 ~]# cat /etc/os-releaseNAME="openEuler"VERSION="22.03 LTS"ID="openEuler"VERSION_ID="22.03"PRETTY_NAME="openEuler 22.03 LTS"ANSI_COLOR="0;31"
5.2 檢查內(nèi)核版本
檢查當(dāng)前操作系統(tǒng)的內(nèi)核版本,當(dāng)前內(nèi)核版本為 5.10.0-60.109.0.136.oe2203.x86_64。
[root@flexusx-51a1 ~]# uname -r5.10.0-60.109.0.136.oe2203.x86_64
5.3 檢查 Docker 版本
部署該項目需要提前安裝 Docker 環(huán)境,檢查 Docker 版本,當(dāng)前安裝的 Docker 版本為26.1.3。
[root@flexusx-51a1 ~]# docker -vDocker version 26.1.3, build b72abbb
5.4 檢查 Docker 服務(wù)狀態(tài)
檢查 Docker 服務(wù)狀態(tài),確保 Docker 服務(wù)正常。
[root@flexusx-51a1 ~]# systemctl status docker●docker.service - Docker Application Container EngineLoaded: loaded (/usr/lib/systemd/system/docker.service; enabled; vendor preset: disabled)Active: active (running) since Wed 2024-09-04 21:23:44 CST; 15min agoTriggeredBy:●docker.socketDocs: https://docs.docker.comMain PID: 10018 (dockerd)Tasks: 10Memory: 196.3MCGroup: /system.slice/docker.service└─10018 /usr/bin/dockerd -H fd:// --containerd=/run/containerd/containerd.sock
5.5 檢查 Docker compose 版本
檢查 docker compose 版本,當(dāng)前默認(rèn)安裝版本為 v2.29.1。
[root@flexusx-51a1 ~]# docker compose versionDocker Compose version v2.27.0
六、部署 GitLab 服務(wù)器
6.1 下載 GitLab 鏡像
執(zhí)行以下命令,下載 GitLab 鏡像。
docker pull gitlab/gitlab-ce:latest
如果拉取過慢,也可以拉取本人的鏡像倉庫中 GitLab 鏡像:
docker pull registry.cn-hangzhou.aliyuncs.com/jeson/gitlab-ce
6.2 創(chuàng)建部署目錄
執(zhí)行以下命令,創(chuàng)建項目部署目錄/data/gitlab/。
mkdir -p /data/gitlab/{data,logs,config} && cd /data/gitlab/
6.3 編輯 docker-compose.yaml 文件
本次使用使用 docker compose 方式部署,需要新建及編輯 docker-compose.yaml 文件,內(nèi)容如下。注意修改部署文件中的 hostname 地址為自己服務(wù)器的內(nèi)網(wǎng) IP 地址, 其余映射宿主機(jī)端口可自行定義設(shè)置,注意防止端口沖突。
vim docker-compose.yaml
version: "3"services:gitlab:container_name: gitlabimage: registry.cn-hangzhou.aliyuncs.com/jeson/gitlab-cehostname: '192.168.0.169'restart: alwaysports:- 8011:8011- 8443:443- 2222:22/tcpvolumes:- /etc/localtime:/etc/localtime- /data/gitlab/data:/var/opt/gitlab- /data/gitlab/config:/etc/gitlab- /data/gitlab/logs:/var/log/gitlabenvironment:GITLAB_OMNIBUS_CONFIG: |external_url 'http://192.168.0.169:8011'gitlab_rails['gitlab_shell_ssh_port'] = 2222deploy:resources:limits:memory: 6Greservations:memory: 1G
相關(guān)說明:
·container_name: 定義了容器的名稱,這里設(shè)置為 gitlab。
·image: 指定了要使用的 Docker 鏡像,這里是 GitLab 社區(qū)版(CE)的最新版本。
·hostname: 設(shè)定為服務(wù)器的內(nèi)網(wǎng) IP 地址 192.168.0.169。
·restart: 設(shè)置容器的重啟策略,always 表示無論容器是否退出,都會重新啟動。
·ports: 將容器內(nèi)的端口映射到宿主機(jī)的端口,例如 HTTP 服務(wù)映射到 8011 端口,HTTPS 映射到 8443 端口,SSH 服務(wù)映射到 2222 端口。
·volumes: 將宿主機(jī)上的目錄掛載到容器內(nèi),確保數(shù)據(jù)持久化,例如 /data/gitlab/data 掛載到容器內(nèi)的 /var/opt/gitlab 目錄。
·environment: 設(shè)置容器內(nèi)的環(huán)境變量,這里定義了 GitLab 的外部 URL 和 SSH 端口號。
·deploy: 定義了容器的部署配置,特別是資源限制,例如內(nèi)存限制為 4GB,預(yù)留內(nèi)存為 1GB。
6.4 創(chuàng)建 GitLab 容器
執(zhí)行以下命令,快速創(chuàng)建 GitLab 容器。
[root@flexusx-51a1 gitlab]# docker compose up -dWARN[0000] /data/gitlab/docker-compose.yaml: `version` is obsolete[+] Running 2/2?Network gitlab_default Created 0.0s?Container gitlab Started 0.2s
6.5 查看 GitLab 容器狀態(tài)
檢查 GitLab 容器狀態(tài),確保 GitLab 容器正常啟動。
[root@flexusx-51a1 gitlab]# docker compose psWARN[0000] /data/gitlab/docker-compose.yaml: `version` is obsoleteNAME IMAGE COMMAND SERVICE CREATED STATUS PORTSgitlab registry.cn-hangzhou.aliyuncs.com/jeson/gitlab-ce "/assets/wrapper" gitlab 38 seconds ago Up 38 seconds (health: starting) 80/tcp, 0.0.0.0:8011->8011/tcp, :::8011->8011/tcp, 0.0.0.0:2222->22/tcp, :::2222->22/tcp, 0.0.0.0:8443->443/tcp, :::8443->443/tcp
6.6 查看 GitLab 容器日志
檢查 GitLab 容器日志,確保 GitLab 服務(wù)正常運(yùn)行。
[root@flexusx-51a1 gitlab]# docker compose logs |grep 8011WARN[0000] /data/gitlab/docker-compose.yaml: `version` is obsoletegitlab | + address: http://192.168.0.169:8011gitlab | + listen *:8011;gitlab | + set $http_host_with_default "192.168.0.169:8011";gitlab | +url='http://localhost:8011/help'gitlab | {"content_type":"text/html; charset=utf-8","correlation_id":"01J70HQS3MQGGWK6RR21XWYZ3K","duration_ms":329,"host":"localhost:8011","level":"info","method":"GET","msg":"access","proto":"HTTP/1.1","referrer":"","remote_addr":"127.0.0.1:0","remote_ip":"127.0.0.1","route":"","status":200,"system":"http","time":"2024-09-05T15:35:16+08:00","ttfb_ms":329,"uri":"/help","user_agent":"curl/8.6.0-DEV","written_bytes":27808}gitlab | {"content_type":"text/html; charset=utf-8","correlation_id":"01J70HSM1Z4DYGMN4028NPH9NF","duration_ms":273,"host":"localhost:8011","level":"info","method":"GET","msg":"access","proto":"HTTP/1.1","referrer":"","remote_addr":"127.0.0.1:0","remote_ip":"127.0.0.1","route":"","status":200,"system":"http","time":"2024-09-05T15:36:16+08:00","ttfb_ms":273,"uri":"/help","user_agent":"curl/8.6.0-DEV","written_bytes":27808}
6.7 查看資源使用情況
檢查 GitLab 的資源占用情況,發(fā)現(xiàn) GitLab 還是比較占用系統(tǒng)資源的。本次實踐購買的華為云 Flexus 云服務(wù)器 X 實例配置為 4vCPUs | 12GiB,輕松可以滿足資源要求。
docker stats gitlab
七、訪問前準(zhǔn)備工作
7.1 關(guān)閉防火墻
·執(zhí)行以下命令,停止防火墻。
systemctl stop firewalld
·關(guān)閉 selinux
setenforce 0sed -i 's/SELINUX=enforcing/SELINUX=disabled/' /etc/selinux/config
7.2 Flexus 云服務(wù)器 X 實例安全組配置
進(jìn)入 Flexus 云服務(wù)器 X 實例控制臺,進(jìn)行安全組規(guī)則配置。在安全組入方向規(guī)則上,放行 8011/2222/8443 端口。
八、訪問 GitLab 首頁
8.1 訪問 GitLab 登錄頁
瀏覽器訪問地址:http://彈性公網(wǎng) IP 地址:8011,將 IP 替換為自己服務(wù)器 IP 地址。瀏覽器打開后,進(jìn)入 GitLab 登錄頁。
8.2 重置登錄密碼
·進(jìn)入 GitLab 容器內(nèi)部
[root@flexusx-51a1 gitlab]# docker exec -it gitlab /bin/bashroot@192:/#
·進(jìn)入控制臺
gitlab-rails console -e production
·查詢超級管理用戶
user = User.where(id:1).first
·修改登錄密碼,自定義設(shè)置即可。
user.password='admin36987'
·保存于退出
# 保存 user.save!# 退出 exit
8.3 訪問 GitLab 首頁
瀏覽器訪問地址:https://彈性公網(wǎng) IP 地址:8011,將 IP 替換為自己服務(wù)器 IP 地址。瀏覽器打開后,進(jìn)入 GitLabt 登錄頁。輸入剛才的查詢的賬號及修改密碼,登錄 GitLab。
8.4 設(shè)置中文語言
點擊賬號——Preferences 選項,找到“Localization”區(qū)域,將“Language”選項修改為“簡體中文”。
更改中文語言后,查看 GitLab 首頁效果。
九、使用體驗與總結(jié)
在本次實踐中,我們成功地在華為云 Flexus 云服務(wù)器 X 實例上部署了 GitLab 系統(tǒng),整個部署過程及后續(xù)使用體驗極為順暢。華為云 Flexus X 實例憑借卓越的性價比、強(qiáng)大的計算性能、可靠的穩(wěn)定性和高標(biāo)準(zhǔn)的安全保障,在眾多選項中脫穎而出。其網(wǎng)絡(luò)連接始終保持穩(wěn)定,操作過程毫無延遲或卡頓,確保了高效的用戶體驗。GitLab 作為一個基于 Git 的在線代碼倉庫管理平臺,提供了代碼托管、版本控制、持續(xù)集成和部署等一系列功能。此次部署不僅彰顯了華為云 Flexus X 實例作為云服務(wù)器基礎(chǔ)的強(qiáng)大優(yōu)勢,還驗證了當(dāng)高質(zhì)量云服務(wù)與高效工具相結(jié)合時,能夠顯著提升工作效率。這種組合值得每一個尋求可靠云解決方案的專業(yè)人士嘗試。
趁著華為云 828 B2B 企業(yè)節(jié)的熱潮,快來探索 Flexus X 實例的超值優(yōu)惠,感受技術(shù)與創(chuàng)新的完美融合;從高性能計算到智能監(jiān)控,每一個細(xì)節(jié)都彰顯出華為云對品質(zhì)的堅持與追求;加入華為云大家庭,不僅是一次技術(shù)升級,更是向未來邁出的堅實一步;讓我們攜手并進(jìn),共創(chuàng)云端新輝煌!
-
云計算
+關(guān)注
關(guān)注
39文章
7835瀏覽量
137482 -
云服務(wù)器
+關(guān)注
關(guān)注
0文章
639瀏覽量
13369 -
openEuler
+關(guān)注
關(guān)注
2文章
316瀏覽量
5904
發(fā)布評論請先 登錄
相關(guān)推薦
評論