前言****
華為云 Flexus X 云服務(wù)器攜手 GitLab,為開發(fā)者和企業(yè)帶來了云端部署的全新選擇。Flexus X 實(shí)例以其靈活高效的柔性算力,結(jié)合 GitLab 強(qiáng)大的版本控制、CI/CD 等功能,為企業(yè)打造高效、安全的研發(fā)環(huán)境。正值 828 華為云企業(yè)上云節(jié),我們一同體驗(yàn)這一強(qiáng)強(qiáng)聯(lián)合的云端解決方案。Flexus X 的高性價(jià)比與 GitLab 的先進(jìn)項(xiàng)目管理工具,將助您實(shí)現(xiàn)快速上云、高效開發(fā),推動(dòng)企業(yè)數(shù)字化進(jìn)程加速前行。
鏈接直達(dá):華為云Flexus云服務(wù)器X實(shí)例
gitlab 介紹****
GitLab是一個(gè)開源的一體化 DevOps 平臺(tái),具有代碼托管、代碼審查、持續(xù)集成與持續(xù)部署(CI/CD)、問題跟蹤、Wiki 和文檔管理以及安全與權(quán)限管理等功能。它提供安全可靠的代碼存儲(chǔ)倉庫,支持強(qiáng)大的分支管理和標(biāo)簽功能;允許團(tuán)隊(duì)成員進(jìn)行代碼審查和評(píng)論,跟蹤代碼變更歷史;內(nèi)置 CI/CD 工具,可定義各種任務(wù)階段;用于記錄和跟蹤問題、缺陷和任務(wù),并支持分配、設(shè)置優(yōu)先級(jí)和截止日期等;允許創(chuàng)建和維護(hù)項(xiàng)目文檔和 Wiki 頁面;提供細(xì)粒度的權(quán)限控制和多種身份驗(yàn)證方式,還具有安全審計(jì)功能。總之,GitLab 能幫助團(tuán)隊(duì)提高代碼質(zhì)量,實(shí)現(xiàn)高效的協(xié)作和項(xiàng)目管理。
官方網(wǎng)站:https://about.gitlab.com/
環(huán)境規(guī)劃****
部署流程****
拉取鏡像****
[root@flexusx-251f~]# docker pull gitlab/gitlab-ce
Usingdefault tag: latest
latest:Pulling from gitlab/gitlab-ce
857cc8cb19c0:Pull complete
2abc51628ee2:Pull complete
a098af47633d:Pull complete
79eb1bbe5e7f:Pull complete
45c3937be5ff:Pull complete
052407fbe787:Pull complete
a57c8c923e60:Pull complete
65ef322a34d3:Pull complete
807b20aca09b:Pull complete
Digest:sha256:9e0d464e7c5fc03e29af190802708fd9270136ef0c423dba8ee7ad1f8480ea48
Status:Downloaded newer image for gitlab/gitlab-ce:latest
docker.io/gitlab/gitlab-ce:latest
創(chuàng)建容器****
3001 做管理頁面端口,3002 做 ssh 端口,拉去項(xiàng)目代碼使用
[root@flexusx-251f~]# mkdir -p/gitlab/etc
[root@flexusx-251f~]# mkdir -p/gitlab/opt
[root@flexusx-251f~]# mkdir -p/gitlab/log
[root@flexusx-251f~]# docker run -itd
-p 3001:80
-p 3002:22
-v /gitlab/etc:/etc/gitlab
-v /gitlab/log:/var/log/gitlab
-v /gitlab/opt:/var/opt/gitlab
--restart always
--privileged=true
--name gitlab
gitlab/gitlab-ce:latest
ad00474916beb674b2bd3da2e29018d739247252bd5f1612d94c711a4729f5a1
查看容器運(yùn)行狀態(tài)
[root@flexusx-251f~]# docker ps|grepgit
ad00474916begitlab/gitlab-ce:latest "/assets/wrapper"7 seconds ago Up 6 seconds(health:starting)443/tcp,0.0.0.0:3002->22/tcp, :::3002->22/tcp, 0.0.0.0:3001->80/tcp, :::3001->80/tcp gitlab
修改配置文件****
docker 安裝 gitlab,創(chuàng)建項(xiàng)目時(shí),默認(rèn)項(xiàng)目 URL 訪問地址顯示的是容器主機(jī)地址(容器 id),所以我們需要修改為一個(gè)固定可以外部訪問的地址及宿主機(jī)地址,這樣才可以進(jìn)行 pull/push 代碼
[root@flexusx-251f~]# vim /gitlab/etc/gitlab.rb
# 大概在 32 行,取消 external_url 注釋,地址為宿主機(jī)地址,不需要設(shè)置端口
32 # external_url 'GENERATED_EXTERNAL_URL'
33external_url 'http://123.249.27.118'
# 大概在 69 行,修改為 ssh 主機(jī) ip
67 # gitlab_rails['gitlab_ssh_host'] = 'ssh.host_example.com'
68gitlab_rails['gitlab_ssh_host']= '123.249.27.118'
# 大概在 700 行,修改 ssh 連接端口
700 # gitlab_rails['gitlab_shell_ssh_port'] = 22
701gitlab_rails['gitlab_shell_ssh_port']= 3002
創(chuàng)建項(xiàng)目****
點(diǎn)擊左側(cè)導(dǎo)航欄 projects,點(diǎn)擊 create a project
點(diǎn)擊 create blank project,創(chuàng)建一個(gè)空項(xiàng)目
自定義項(xiàng)目名稱(project name),選擇組或者命名空間,能見度生產(chǎn)環(huán)境一般為私有的,我們?cè)谶@也選擇 private,之后點(diǎn)擊 create project
創(chuàng)建項(xiàng)目成功
創(chuàng)建用戶****
點(diǎn)擊左下角設(shè)置 admin,選擇 new user
輸入用戶名、郵箱信息
創(chuàng)建成功,點(diǎn)擊 edit 進(jìn)行編輯設(shè)置密碼
輸入完成,點(diǎn)擊 save changes
邀請(qǐng)用戶****
將用戶加入到項(xiàng)目中來,進(jìn)入項(xiàng)目,點(diǎn)擊左側(cè)導(dǎo)航欄 Manage,點(diǎn)擊二級(jí)菜單 Members,之后點(diǎn)擊右上角 invite members
選擇用戶,選擇角色,并設(shè)置過期時(shí)間,之后點(diǎn)擊 invite
添加成功
wangwu 用戶登錄進(jìn)行測(cè)試,首次登入需要修改密碼
在該用戶可以看到之前創(chuàng)建的項(xiàng)目,已經(jīng)有了對(duì)應(yīng)的權(quán)限
拉取項(xiàng)目****
配置 git**
在華為云實(shí)例上安裝 git
[root@flexusx-251f~]# yum install -ygit
git 客戶端要連接倉庫,就要先生成 ssh key,ssh key 有公鑰和私鑰,生成后把公鑰填到 git 站點(diǎn)上,現(xiàn)在生成 ssh key
設(shè)置用戶名
?admin01 為自己的用戶名,可以隨便填,注意提交記錄的時(shí)候會(huì)顯示這個(gè)用戶名
[root@flexusx-251f~]# git config --globaluser.name 'admin01'
設(shè)置郵箱
?這個(gè)郵箱也是可以隨便填,一般填員公在公司的郵箱
[root@flexusx-251f~]# git config --globaluser.email 'admin01@qq.com'
生成 ssh key
?輸入命令之后,一直默認(rèn)回車即可
[root@flexusx-251f~]# ssh-keygen -trsa -C"admin01@qq.com"
Generatingpublic/private rsa key pair.
Enterfile in which to save the key(/root/.ssh/id_rsa):
Enterpassphrase(emptyfor no passphrase):
Entersame passphrase again:
Youridentification has been saved in /root/.ssh/id_rsa
Yourpublic key has been saved in /root/.ssh/id_rsa.pub
Thekey fingerprint is:
SHA256:dYROjGaOek4RJcFLmlau+NkmX9MXe7wDUh4QQk2GP1Madmin01@qq.com
Thekey's randomart image is:
+---[RSA 3072]----+
| .o+++o. || =.=o.E |
| * B +.o. |
| + = ..=.o |
| o o .S =.. |
| . o o .. o+ |
| . * o ..o.o |
| + +. . . ... |
| +. .. |
+----[SHA256]-----+
[root@flexusx-251f ~]# cd /root/.ssh/
[root@flexusx-251f .ssh]# ls
authorized_keys id_ed25519 id_ed25519.pub id_rsa id_rsa.pub
把生成的公鑰填寫在 gitlab 的 wangwu 用戶中
查看公鑰并寫入 key 中
[root@flexusx-251f.ssh]# cat id_rsa.pub
ssh-rsaAAAAB3NzaC1yc2EAAAADAQABAAABgQDHHXiSuHbfab8EzQ0B6zTOPNPF5HyISXh8Ldl5u5mNAx17M9ib7C36EHFxNtYnVSNbnn2cIeP6hOXXfNhDmGgg9PGHzAzuXj8rOBegEeY9F1Lg2NF1zbnnmiwzKmgkBukicQuQlqcn1m3L6pA4V9eIj7WDrUt2sHjyhaPLb3AktxYR44PvN2aaOmAZQhv858gePGFJnbmYVVK6nIDa+xEm/kas/wIQoSvYQfeyPTWpCB6M1y6lqpkmdBciv57PYBd9s2vJD/Guf77BSNHM2dFNt/IB/P+bo2pu/r0qoRyb7HtIfM4igUlYuu+G5Q8LshemnSd5kCm9SOKaJJ99ovabwyWSA5PjGFr5guDMRx7UA/+4NKboMjlKbIrhRkkcaINp9UK97s7LBZWs/a+A9GExz9EWtyIIXpzyEquLov1T1LlmYTsaip/c7bIalkfn4Q6sxNk3hSsnujYlS5Q5nAkv06AO9Hu2SNHyLiSGcmWg9yYZOsOHZz/8MCVFIx0Wc2s= admin01@qq.com
克隆項(xiàng)目**
找到項(xiàng)目的 ssh 地址,也可以通過 http 地址
創(chuàng)建文件夾并拉取文件
[root@flexusx-251f~]# mkdir code
[root@flexusx-251f~]# cd code/
[root@flexusx-251fcode]# git clone ssh://git@123.249.27.118:3002/root/my_java_project01.git
Cloninginto 'my_java_project01'...
Theauthenticity of host '[123.249.27.118]:3002 ([123.249.27.118]:3002)'can't be established.
ED25519 key fingerprint is SHA256:L0vK441j2nwCcNuZegnkiAcWe2TIjjGLJrLOE7GzAEQ.
This key is not known by any other names
Are you sure you want to continue connecting (yes/no/[fingerprint])? yes
Warning: Permanently added '[123.249.27.118]:3002' (ED25519) to the list of known hosts.
remote: Enumerating objects: 3, done.
remote: Counting objects: 100% (3/3), done.
remote: Compressing objects: 100% (2/2), done.
remote: Total 3 (delta 0), reused 0 (delta 0), pack-reused 0 (from 0)
Receiving objects: 100% (3/3), done.
克隆成功
[root@flexusx-251f code]# ls
my_java_project01
提交文件**
創(chuàng)建一個(gè)新文件,并寫內(nèi)容
[root@flexusx-251fcode]# cd my_java_project01/
[root@flexusx-251fmy_java_project01]# ls
README.md
[root@flexusx-251fmy_java_project01]# echo 11111 >1.txt
[root@flexusx-251fmy_java_project01]# cat 1.txt
11111
將文件添加到暫存區(qū)
[root@flexusx-251fmy_java_project01]# git add *
[root@flexusx-251fmy_java_project01]# git status
Onbranch main
Yourbranch is up to date with 'origin/main'.
Changesto be committed:
(use"git restore --staged ..."to unstage)
newfile: 1.txt
提交文件到本地倉庫
[root@flexusx-251fmy_java_project01]# git commit -m'提交一個(gè)文檔'
[main6512959] 提交一個(gè)文檔
1file changed, 1 insertion(+)
createmode 100644 1.txt
通過 root 用戶,修改 wangwu 用戶角色,因?yàn)殚_發(fā)人員不可進(jìn)行提交,只能查看 master 分支
推送代碼到項(xiàng)目
[root@flexusx-251fmy_java_project01]# git push
Enumeratingobjects: 4, done.
Countingobjects: 100%(4/4),done.
Deltacompression using up to 4 threads
Compressingobjects: 100%(2/2),done.
Writingobjects: 100%(3/3),290 bytes|290.00KiB/s, done.
Total3(delta0),reused 0(delta0),pack-reused 0
Tossh://123.249.27.118:3002/root/my_java_project01.git
42ac110..6512959main ->main
這里把本地倉庫同步到遠(yuǎn)程倉庫,到遠(yuǎn)程倉庫看一下就能看到提交記錄了
體驗(yàn)和感受****
在追求高效協(xié)作與持續(xù)創(chuàng)新的數(shù)字化時(shí)代,GitLab 作為領(lǐng)先的 DevOps 平臺(tái),為企業(yè)提供了從代碼托管到 CI/CD 的一站式解決方案。而今,華為云 Flexus X 服務(wù)器的出現(xiàn),更是為 GitLab 的云端部署開啟了新篇章。
華為云 Flexus X 實(shí)例以其卓越的算力性能、靈活的擴(kuò)展能力和穩(wěn)定可靠的服務(wù)質(zhì)量,成為了 GitLab 云端部署的理想選擇。它不僅支持高并發(fā)訪問,確保團(tuán)隊(duì)協(xié)作的流暢無阻,還通過智能的資源調(diào)度,幫助企業(yè)優(yōu)化成本結(jié)構(gòu),實(shí)現(xiàn)資源的最大化利用。
在 828 華為云企業(yè)上云節(jié)這個(gè)節(jié)日里,讓我們一起走進(jìn)云端世界,F(xiàn)lexus X 實(shí)例的高可用性和 GitLab 的豐富功能相互補(bǔ)充,將為團(tuán)隊(duì)帶來前所未有的開發(fā)效率和協(xié)作體驗(yàn)。點(diǎn)擊下方鏈接,立即行動(dòng),享受專屬優(yōu)惠,讓 Flexus X 與 GitLab 攜手助力您的企業(yè)數(shù)字化轉(zhuǎn)型之路,這一完美結(jié)合將引領(lǐng)您走向更加輝煌的未來!
產(chǎn)品鏈接:華為云Flexus云服務(wù)器X實(shí)例直播建站服務(wù)器-華為云
審核編輯 黃宇
-
華為云
+關(guān)注
關(guān)注
3文章
2606瀏覽量
17475
發(fā)布評(píng)論請(qǐng)先 登錄
相關(guān)推薦
評(píng)論