GitLab企業級代碼管理倉庫


GitLab服務器

前面我們已經知道Git人人都是中心,那他們怎么交互數據呢? 
使用GitHub或者碼雲等公共代碼倉庫 
使用GitLab私有倉庫

 

GitLab是什么?

是一個用於倉庫管理系統的開源項目,使用Git作為代碼管理工具,並在此基礎上搭建起來的web服務。基礎功能免費,高級功能收費。

 

為什么要使用GitLab?

基礎功能開源,可自行搭建  
可以進行權限控制,使得代碼對部分人可見  
gitlab使用方便

 

GitLab搭建過程

主機名 IP 備注 特殊要求
GitA 192.168.200.70 Git客戶端
GitB 192.168.200.90 GitLab服務器端 內存2G

官方安裝文檔:https://about.gitlab.com/installation/#centos-7

GitLab國內源下載地址:https://mirrors.tuna.tsinghua.edu.cn/gitlab-ce/yum/el7/

 

初始環境

cat /etc/redhat-release

uname -r

echo "gitb 127.0.0.1" >> /etc/hosts

tail -1 /etc/hosts

ls

image_1cutskbqjoc31nfp1m1uoh21u47m.png-31kB

 

GitLab軟件包下載

鏈接:https://pan.baidu.com/s/1TYJnh6M01MAVhLRXr-qfLw 
提取碼:mqxp

 

在GitB上安裝GitLab

ls

yum localinstall gitlab-ce-11.2.3-ce.0.el7.x86_64.rpm -y

yum localinstall -y代表利用yum安裝本地指定的rpm包,好處是自動解決依賴問題

image_1cutt51616nt1n511mkphmtos713.png-190.1kB


image_1cutt765jj0b1c891768118hh6t1g.png-44.3kB

 

初始化GitLab,只需要執行一次

gitlab-ctl reconfigure

image_1cutt8n351gf1a7b32hv0g1ci21t.png-8.5kB

 

查看gitlab啟動狀態

gitlab-ctl status

image_1cuttntcv19mc1qlb1hasv445bi2a.png-58.7kB

 

查看gitlab版本號

cat /opt/gitlab/embedded/service/gitlab-rails/VERSION

image_1cutto65c62b5cd1lq5osjdj32n.png-10.9kB

 

在宿主機輸入網址進行就可以訪問了

http://192.168.200.88

linyaonie

接下來設置管理員初始密碼,最少8位

image_1cuttotn2fdka2t1lnf1hq1h0d34.png-99.9kB

 

登陸管理員賬號:root,密碼:linyaonie

image_1cuttpr8m1cvprm11l6u1429tis3h.png-94kB

 

登陸后,我們就可以選擇如下功能使用了

image_1cutuadqkuru1609ci418bp1j1v3u.png-110.5kB

 

GitLab中文社區版補丁包安裝

GitLab中文社區:https://gitlab.com/xhang/gitlab/tree/11-2-stable-zh

 

解壓GitLab中文版補丁包

ls

tar xf gitlab-11-2-stable-zh.tar.gz

image_1cutubl1no9q1po2c09mbbcv4b.png-25.6kB

 

查看系統已經安裝的GitLab版本號

cat /opt/gitlab/embedded/service/gitlab-rails/VERSION

image_1cutuc59bhii1brj1q61ft0lm94o.png-10.6kB

 

查看解壓后的補丁版本號

cat gitlab-11-2-stable-zh/VERSION

特別提示:補丁包版本號和安裝的GitLab版本號需要一致

image_1cutucpslicvljc1fl8ej418rb55.png-20.1kB

 

備份英文版GitLab

cp -r /opt/gitlab/embedded/service/gitlab-rails{,.bak}

image_1cutuf9b5slmejtrq51fdskui5i.png-20.7kB

 

將中文補丁包的內容覆蓋英文版

/bin/cp -rf gitlab-11-2-stable-zh/* /opt/gitlab/embedded/service/gitlab-rails/

特別提示:報錯不需要管,因為已經設置過root密碼,登陸過,所以會報錯

image_1cutuvred1aa6dcr169b1pt6nf49.png-34.3kB

 

重新配置GitLab

gitlab-ctl reconfigure

image_1cutv34271tj63ne1ggdegv1a5k2s.png-8kB

 

重新啟動GitLab

gitlab-ctl restart

image_1cutv8l5i103l133bdv85jhei39.png-43.2kB

 

重新刷新瀏覽器訪問GitLab(中途掉線了,IP地址變了)

http://192.168.200.90

image_1cutvjvb44ui9kv5u6pdk1sf13m.png-103.2kB

 

使用GitLab

 

創建一個新項目

image_1cutvktk11465bdu1grn1mh43tc43.png-91.9kB


image_1cutvp5f09t71ekleqs1n6spaa4g.png-139.3kB


image_1cutvu1t566qmod1umpvlo20j4t.png-148.2kB

 

修改GitLab配置文件/etc/gitlab/gitlab.rb

我們需要修改GitLab的默認域名(因為我們是在內網搭建的GitLab) 
GitLab默認的監聽端口為80,但是在企業中,這個端口經常被別的服務占用,所以我們還需要更換端口號

cp /etc/gitlab/gitlab.rb{,.bak}

cat -n /etc/gitlab/gitlab.rb.bak | sed -n '13p;943p'

vim /etc/gitlab/gitlab.rb

 
  1. 13 external_url 'http://192.168.200.90:8888'
  2. 943 nginx['listen_port'] = 8888

cat -n /etc/gitlab/gitlab.rb | sed -n '13p;943p'

image_1cuu0g8627hs1753bm9erl1ncj5a.png-31.1kB

 

重新配置GitLab

gitlab-ctl reconfigure

image_1cuu0i2941kon11k47mb1ohr19hv5n.png-8.1kB

 

重新啟動GitLab

gitlab-ctl restart

image_1cuu0ure01c3is2tb7f1hsrub364.png-44.3kB

 

重新訪問瀏覽器

http://192.168.200.90:8888

image_1cuu15trmql9buqi8411721u9h6h.png-67.8kB


image_1cuu174l4ege1smk19bu1knh1vc26u.png-138.1kB

 

嘗試將本地倉庫代碼推送到私有GitLab

 

在GitA客戶端上

cd /mycode

ls

git branch

image_1cuu2645c19qek5pss45qr2n29.png-13.3kB

 

添加遠程GitLab倉庫管理

git remote add origin http://192.168.200.90:8888/root/yunjisuan.git

git remote -v

image_1cuu27hti1d901q0d1eun1l71ebfm.png-30kB

 

推送本地倉庫master分支到遠程倉庫GitLab上

git push origin master

輸入賬號root和密碼linyaonie

image_1cuu2jlj6m8s9d1pupevtunc2j.png-35.1kB

 

推送本地倉庫linux分支到遠程倉庫GitLab上

git branch

git checkout linux

git push origin linux

輸入賬號root和密碼linyaonie

image_1cuu37f7u1m821raud45c3j162b4a.png-66.9kB

 

在推送本地倉庫標簽v1.0到遠程倉庫GitLab上

git tag

git push origin v1.0

輸入賬號root和密碼linyaonie

image_1cuu2m9006721fgs19ad13uh7q73g.png-27.3kB

 

重新刷新網頁並查看

image_1cuu399hc1f285sa38pv9o8da6q.png-145.7kB

 

嘗試在本地倉庫克隆GitLab的項目Linux分支到本地倉庫

 

在GitA上創建Git工作目錄

mkdir /test

cd /test

image_1cuu3gui01m5r1ehb1v0p18j37f477.png-9.9kB

 

克隆遠程倉庫GitLab的Linux分支

git clone -b linux http://192.168.200.90:8888/root/yunjisuan.git 
重要提醒:-b是指定分支,不寫默認克隆master主分支

輸入賬號root和密碼linyaonie

ls

cd yunjisuan

git branch

image_1cuu3ics71o761qrdup31euermh7k.png-56.2kB

 

配置GitLab的SSH密鑰連接方式

 

在GitA客戶端生成密鑰對

ssh-keygen -t rsa -C '1123400300@qq.com' 
全部回車

cd /root/.ssh

ls

cat id_rsa.pub --->公鑰內容,復制到GitLab上

 
  1. ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQC3TJUkCCeQErxymS7o3QGAtlH00qyISMLUSLeIqEwtRrLi2MX5+mfg53sxcmuH78zazWO59c2q0+ocSK/VFuXbV2SToNVStCPwKA+UCafYkG3KxIznPlztb4rnKxuOYMDAVlM3JSlaLDCT2QUEZvp4YMsYZ3BIOMV09UQRYjVsX4Psq8hRNaTsWyM2ufIXaaS61lX3zWzx/98FuFPkJhnH0sgCdV5uE5KBiek02Gt97h8wgRZoIxFYbstklw86pVZnosaLoTACGIDU7Kvzn+UYZQy66AJuGbKj+47S2sxwvK4v5wzLEIWryHLpAeOyoQ8Giv166Ezl/ouJybZ6RCLN 1123400300@qq.com

image_1cuu4elkfso817d9mlg12bdehm8e.png-105.8kB

 

在瀏覽器打開GitLab

image_1cuu46hei1h2g1h5c1io1vvb109681.png-88.6kB


image_1cuu4g455etj16gb12ck1fvo1e6m8r.png-143.7kB


image_1cuu4h47do1c1a2ura7136k169898.png-116.1kB


image_1cuu4ignbgjo10j95ul17r71bmg9l.png-155.8kB

 

在GitA客戶端重新進行克隆測試

mkdir /miyao

cd /miyao

git clone -b linux git@192.168.200.90:root/yunjisuan.git --->第一次需要記錄主機所以需要輸入yes

image_1cuu4mdrs1c04ega1n5ovbk8nvbe.png-83.4kB

 

在GitB上配置GitLab郵件服務

配置郵箱服務的用途

  • 有合並請求時間,郵件通知

  • 賬號注冊時,郵件驗證

  • 修改密碼時,通過郵件修改

配置步驟

  • 開啟QQ郵箱的smtp服務

  • 修改gitlab配置

  • 測試郵件服務是否正常

 

開啟GitLab服務postfix服務並開啟QQ郵箱的smtp服務

systemctl start postfix

systemctl enable postfix

systemctl status postfix

image_1cuu5knpg1t5n1erfrbj1b7r4vmd2.png-135.8kB


image_1cuu53o3o1ehe1lrkvogd151rq8br.png-231.9kB


jbcgbxbsatwzhegi

image_1cuu55fg21omf391b8g4vcho5c8.png-45.4kB

 

修改GitLab配置文件/etc/gitlab/gitlab.rb

cat -n /etc/gitlab/gitlab.rb.bak | sed -n '53p;472,480p;618p'

vim /etc/gitlab/gitlab.rb

cat -n /etc/gitlab/gitlab.rb | sed -n '53p;472,480p;618p'

 
  1. 53 gitlab_rails['gitlab_email_from'] = '1123400300@qq.com' --->GitLab默認郵箱
  2. 472 gitlab_rails['smtp_enable'] = true --->開啟功能
  3. 473 gitlab_rails['smtp_address'] = "smtp.qq.com" --->QQsmtp服務
  4. 474 gitlab_rails['smtp_port'] = 465
  5. 475 gitlab_rails['smtp_user_name'] = "1123400300@qq.com" --->smtp用戶郵箱
  6. 476 gitlab_rails['smtp_password'] = "jbcgbxbsatwzhegi" --->開通QQsmtp時返回的字符串
  7. 477 gitlab_rails['smtp_domain'] = "qq.com" --->smtp域名
  8. 478 gitlab_rails['smtp_authentication'] = "login"
  9. 479 gitlab_rails['smtp_enable_starttls_auto'] = true
  10. 480 gitlab_rails['smtp_tls'] = true
  11. 618 user['git_user_email'] = "1123400300@qq.com" --->git用戶郵箱

image_1cuu5v3qo2bo7bb1q4k1dgsrjhdf.png-94.2kB

 

重新加載GitLab配置文件

gitlab-ctl reconfigure

image_1cuu0i2941kon11k47mb1ohr19hv5n.png-8.1kB

 

重新啟動GitLab服務

gitlab-ctl restart

image_1cuu7vat24t1150k7ftvv1107dds.png-47.6kB

 

進入GitLab控制台進行郵件發送測試

gitlab-rails console --->開啟GitLab控制台

Notify.test_email('1123400300@qq.com','ceshi','hello').deliver_now

特別說明:Notify.test_email('收件人郵箱','郵件標題','郵件內容')

image_1cuu8c03i1uhf1a5b102e18va1l26e9.png-122.8kB

 

進入QQ郵箱並查看

image_1cuu8d7vu1lfk3tt1b0j9jubbrg6.png-182.3kB

 

GitLab的賬號注冊及分組

 

賬戶注冊測試

http://192.168.200.90:8888/users/sign_in

image_1cuu8n73i1k4i1p0m11a31ks91hfkh3.png-108.4kB


image_1cuu8uant1b9trmj1hm0irb1o57hg.png-97.8kB

我們在注冊的時候,用的是亂寫的郵箱都能注冊並登陸 
顯然這在企業里是絕對不允許的

 

開啟GitLab郵箱驗證功能

重新登陸管理員用戶:root,密碼:linyaonie,我們在進行如下操作

image_1cuu97rm7105k1i0218231b1u8lrht.png-69.3kB

退出時,別忘了保存修改

image_1cuu9cqs81fh31bfbttm1ajqu9ia.png-118.8kB

 

然后我們退出管理員進行重新注冊

image_1cuuanccu1b6a1j6s193v187dps4in.png-107.9kB


image_1cuuao0lo1gpk12od1idn8qh12icj4.png-57kB


image_1cuuapcvq5alr5q1o1o1hfop5djh.png-234.6kB


image_1cuub3dnv1bv4lp7j9618ie9ltju.png-98.6kB


image_1cuub3qrup5s7e62mbbbb1i7ikb.png-97.9kB

 

創建一個項目組

image_1cuubcj731e1b3a11ako9r3bbpko.png-68.1kB


image_1cuubdpop1lhuv6dbrl114r1c0ml5.png-108.4kB


image_1cuubjhurf1u70l1nso1sbm1254li.png-120.9kB

 

給組添加成員並授權

image_1cuubogig1a4opuv1ihjdnb4krmf.png-72kB


image_1cuucg4711kq1tkn11ov4sn1mgems.png-131.3kB


image_1cuucj1b3bic1t7vklre1f57ln9.png-150.6kB

Guest訪客 --->只能發表評論,不能讀寫項目庫

Reporter報告者 --->只能克隆代碼(讀),不能提交代碼(修改)(產品測試)

Deveioper開發人員 --->可以進行代碼的讀寫,不能分支合並但可以提交請求(普通程序員)

Master主程序員 --->可以添加項目成員,添加標簽,創建和保護分支(產品經理)

Owner所有者 --->擁有所有權限(一般不用此權限)

 

添加權限成功后,GitLab會自動郵件通知這個用戶

image_1cuucmq5bund1cm11v9ci43fvhnm.png-195.1kB

 

給項目組創建一個新項目

image_1cuucp81t1j461oca8vua9h8nko3.png-134.4kB


image_1cuucs8il1itobjo1vsr12egndip0.png-178.3kB


image_1cuuctubct7cjam9cd1hetva9pd.png-163.2kB

 

在GitA主機上創建環境並測試

mkdir /benet

cd /benet

touch {1..5}

git init

git remote add test http://192.168.200.90:8888/dev/benet.git

git remote -v

git add *

git commit -m "主程序員測試一下"

git push -u test master

輸入賬號:1123400300@qq.com,密碼:linyaonie

image_1cuudcvd91ddr1cah126d1mu1j86pq.png-101.2kB

 

在網頁上刷新並查看測試結果

image_1cuudeobn1n1vch11j65bmu3tqq7.png-149.5kB


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM