前言****
華為云 Flexus X 云服務器攜手 GitLab,為開發者和企業帶來了云端部署的全新選擇。Flexus X 實例以其靈活高效的柔性算力,結合 GitLab 強大的版本控制、CI/CD 等功能,為企業打造高效、安全的研發環境。正值 828 華為云企業上云節,我們一同體驗這一強強聯合的云端解決方案。Flexus X 的高性價比與 GitLab 的先進項目管理工具,將助您實現快速上云、高效開發,推動企業數字化進程加速前行。
鏈接直達:華為云Flexus云服務器X實例
gitlab 介紹****
GitLab是一個開源的一體化 DevOps 平臺,具有代碼托管、代碼審查、持續集成與持續部署(CI/CD)、問題跟蹤、Wiki 和文檔管理以及安全與權限管理等功能。它提供安全可靠的代碼存儲倉庫,支持強大的分支管理和標簽功能;允許團隊成員進行代碼審查和評論,跟蹤代碼變更歷史;內置 CI/CD 工具,可定義各種任務階段;用于記錄和跟蹤問題、缺陷和任務,并支持分配、設置優先級和截止日期等;允許創建和維護項目文檔和 Wiki 頁面;提供細粒度的權限控制和多種身份驗證方式,還具有安全審計功能。總之,GitLab 能幫助團隊提高代碼質量,實現高效的協作和項目管理。
官方網站:https://about.gitlab.com/
環境規劃****
部署流程****
拉取鏡像****
[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
創建容器****
3001 做管理頁面端口,3002 做 ssh 端口,拉去項目代碼使用
[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
查看容器運行狀態
[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,創建項目時,默認項目 URL 訪問地址顯示的是容器主機地址(容器 id),所以我們需要修改為一個固定可以外部訪問的地址及宿主機地址,這樣才可以進行 pull/push 代碼
[root@flexusx-251f~]# vim /gitlab/etc/gitlab.rb
# 大概在 32 行,取消 external_url 注釋,地址為宿主機地址,不需要設置端口
32 # external_url 'GENERATED_EXTERNAL_URL'
33external_url 'http://123.249.27.118'
# 大概在 69 行,修改為 ssh 主機 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
創建項目****
點擊左側導航欄 projects,點擊 create a project
點擊 create blank project,創建一個空項目
自定義項目名稱(project name),選擇組或者命名空間,能見度生產環境一般為私有的,我們在這也選擇 private,之后點擊 create project
創建項目成功
創建用戶****
點擊左下角設置 admin,選擇 new user
輸入用戶名、郵箱信息
創建成功,點擊 edit 進行編輯設置密碼
輸入完成,點擊 save changes
邀請用戶****
將用戶加入到項目中來,進入項目,點擊左側導航欄 Manage,點擊二級菜單 Members,之后點擊右上角 invite members
選擇用戶,選擇角色,并設置過期時間,之后點擊 invite
添加成功
wangwu 用戶登錄進行測試,首次登入需要修改密碼
在該用戶可以看到之前創建的項目,已經有了對應的權限
拉取項目****
配置 git**
在華為云實例上安裝 git
[root@flexusx-251f~]# yum install -ygit
git 客戶端要連接倉庫,就要先生成 ssh key,ssh key 有公鑰和私鑰,生成后把公鑰填到 git 站點上,現在生成 ssh key
設置用戶名
?admin01 為自己的用戶名,可以隨便填,注意提交記錄的時候會顯示這個用戶名
[root@flexusx-251f~]# git config --globaluser.name 'admin01'
設置郵箱
?這個郵箱也是可以隨便填,一般填員公在公司的郵箱
[root@flexusx-251f~]# git config --globaluser.email 'admin01@qq.com'
生成 ssh key
?輸入命令之后,一直默認回車即可
[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
克隆項目**
找到項目的 ssh 地址,也可以通過 http 地址
創建文件夾并拉取文件
[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
提交文件**
創建一個新文件,并寫內容
[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
將文件添加到暫存區
[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'提交一個文檔'
[main6512959] 提交一個文檔
1file changed, 1 insertion(+)
createmode 100644 1.txt
通過 root 用戶,修改 wangwu 用戶角色,因為開發人員不可進行提交,只能查看 master 分支
推送代碼到項目
[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
這里把本地倉庫同步到遠程倉庫,到遠程倉庫看一下就能看到提交記錄了
體驗和感受****
在追求高效協作與持續創新的數字化時代,GitLab 作為領先的 DevOps 平臺,為企業提供了從代碼托管到 CI/CD 的一站式解決方案。而今,華為云 Flexus X 服務器的出現,更是為 GitLab 的云端部署開啟了新篇章。
華為云 Flexus X 實例以其卓越的算力性能、靈活的擴展能力和穩定可靠的服務質量,成為了 GitLab 云端部署的理想選擇。它不僅支持高并發訪問,確保團隊協作的流暢無阻,還通過智能的資源調度,幫助企業優化成本結構,實現資源的最大化利用。
在 828 華為云企業上云節這個節日里,讓我們一起走進云端世界,Flexus X 實例的高可用性和 GitLab 的豐富功能相互補充,將為團隊帶來前所未有的開發效率和協作體驗。點擊下方鏈接,立即行動,享受專屬優惠,讓 Flexus X 與 GitLab 攜手助力您的企業數字化轉型之路,這一完美結合將引領您走向更加輝煌的未來!
產品鏈接:華為云Flexus云服務器X實例直播建站服務器-華為云
審核編輯 黃宇
-
華為云
+關注
關注
3文章
2605瀏覽量
17475
發布評論請先 登錄
相關推薦
評論