主頁 > 知識庫 > CentOS8.1搭建Gitlab服務(wù)器詳細教程

CentOS8.1搭建Gitlab服務(wù)器詳細教程

熱門標簽:鶴壁電銷外呼系統(tǒng)怎么安裝 企業(yè)400電話辦理哪正規(guī) 繽客網(wǎng)注冊時地圖標注出不來 重慶營銷外呼系統(tǒng)排名 地圖標注企業(yè)名稱侵權(quán)案件 工廠位置地圖標注 地圖標注需要現(xiàn)場嗎 400電話辦理哪家好廠商 網(wǎng)站上插入地圖標注內(nèi)容

  Gitlab和Github的區(qū)別就不多說了,一句話來概括就是:Gitlab是給企業(yè)私有化部署的Git服務(wù)器,Github是互聯(lián)網(wǎng)在線版的Git服務(wù)器!

  Github對于開源項目建倉是免費使用的,那么Gitlab收不收費呢?分布式版本控制方面的功能Gitlab也是免費使用的,提供了社區(qū)版(Gitlab CE)給大家!Gitlab現(xiàn)在可強大了(2020年),已經(jīng)有自己成套的DevOps落地解決方案(提高生產(chǎn)力的利器),但是這部分功能是在收費的旗艦版/企業(yè)版(Gitlab EE)上提供的!就像Github建私有化倉庫的功能也是收費的一樣,很正常!

  本文內(nèi)容簡單輕松,車速也不快,各位同學不用坐太好也不用扶太穩(wěn)!現(xiàn)在來正式從“零”開始搭建Gitlab服務(wù)器:

  首先,百度里找到Giblab官網(wǎng),先進去首頁!不要太深入!(未來各位同學看到的界面可能會不一樣,時代在進步,網(wǎng)站也在持續(xù)更新嘛!我這里的一系列截圖是2020.06的)

  看看這首屏的廣告和設(shè)計,多么科技和魅力→DevOps、CI、CD,一個個的關(guān)鍵字都是當前中國各類互聯(lián)網(wǎng)公司研發(fā)體系正在努力改造的方向(2020年)!看到那個大大的騷黃色寫著“Try Gitlab fro FREE”的按鈕沒有→“免費試用Gitlab”的意思,也就是試用完后要收費的旗艦版GitlabEE的入口。在首頁看了一圈也沒看到傳說中的免費的社區(qū)版GitlabCE的入口,咱到頂部導(dǎo)航菜單項"Install Gitlab"里看看:

  還是30天試用期的旗艦版(企業(yè)版)的入口和安裝說明!不過這里有個重要的信息要留意下“recommend at least 4GB of free RAMto run GitLab”,官方建議使用至少4GB的可用內(nèi)存來運行Gitlab,那我們一會安裝虛擬機或選用服務(wù)器時就要注意了,至少要4GB以上,最好是6GB以上,因為還要留些空間給操作系統(tǒng)用!我們再點進CentOS 8的Gitlab安裝說明里,看看有沒有咱想要的社區(qū)版(GitlabCE):

  乍一看好像還是沒有的樣子,只是展開了在CentOS 8下的安裝步驟和方法!那就看看CentOS 8中怎么裝吧,看著看著,在最后發(fā)現(xiàn)了些什么:

  在安裝步驟的最后,有一個短短的鏈接,寫著"CE or EE",似乎有個CE版的入口,點進去:

  新頁面前面的好幾段依然在講使用旗艦版(企業(yè)版Gitlab EE)有多少好處....直到最后才放了一個免費社區(qū)版(GitlabCE)的鏈接“Install GitLab Community Edition”,藏得這么深,這是怕別人知道啊!續(xù)繼點進去:

  終于到了,現(xiàn)在瀏覽地址欄和頁面中的安裝說明的內(nèi)容都已變成CE版的(將來看到這文章的同學,那時可能Gitlab官網(wǎng)已經(jīng)改版了,社區(qū)版(GitlabCE)的入口位置和地址也可能換了,但只要Gitlab還有免費版,就肯定會在官網(wǎng)某個地方有個入口的!)。

  找到了Gitlab CE版的安裝說明,我們老樣子,準備好新的CentOS 8.1虛擬機,根據(jù)官方建議,這臺虛擬機內(nèi)存和硬盤都設(shè)置大一點:

  虛擬機準備好后,按著官方GitlabCE版的安裝說明進行安裝即可,其實很簡單,認真算起來只有三步(由于我是root身份,所以不用sudo):

  第一步:安裝和啟用policycoreutils、openssh-server和openssh-clients組件,并將它們開放防火墻(不要忘了reload防火墻):

# dnf install -y curl policycoreutils openssh-server openssh-clients
# systemctl enable sshd
# systemctl start sshd
# firewall-cmd --permanent --add-service=http
# firewall-cmd --permanent --add-service=https
# systemctl reload firewalld

  與郵件通知相關(guān)的Postfix組件其實可以暫時不用安裝和配置,這個可以放到后面再來配置一個外部的SMTP服務(wù)器:

# dnf install postfix
# systemctl enable postfix
# systemctl start postfix

  第二步:使用curl工具下載并配置GitlabCE版RPM安裝包的倉庫配置腳本(請確認你的虛擬機能聯(lián)接網(wǎng)絡(luò),注意這只是RPM安裝包的倉庫配置腳本,并不是真正的安裝包)

# curl -sS https://packages.gitlab.com/install/repositories/gitlab/gitlab-ce/script.rpm.sh | bash

  第三步:安裝GitlabCE版并指定外部訪問的URL地址,這里注意一下:外部訪問URL地址使用一個自定義的域名,即使該域名實際上沒有也沒關(guān)系!另外如果你的服務(wù)器沒有https相關(guān)的證書,那就不要用https,直接用http協(xié)議!客戶端使用時你可以在HOST里做一下映射的,當然,有真實可以的域名就最好了!為什么要用域名來指定外部訪問URL地址呢?因為后面你使和Gitlab時會發(fā)現(xiàn)這是一個明智的選擇!

# EXTERNAL_URL="http://gitlab.xgclassroom.com" dnf install -y gitlab-ce

  到這里你會發(fā)現(xiàn)要從第二步中配置的國外站下載多達700M的gitlab-ce包是有多么的艱難,預(yù)計耗時估計要10幾個鐘,驚不驚喜,意不意外!當然,如果你有國際網(wǎng)絡(luò)VPN就當我沒說?。?!

  第三步的蝸牛速度是無法忍受的,Ctrl+C 掐斷下載過程吧,換其它方法:

自己先從其他地方下載到gitlab-ce的rmp包,再上傳到服務(wù)器進行安裝;使用一個國內(nèi)鏡像地址進行在線安裝;

  這里我們講一下第二種辦法,使用國內(nèi)鏡像地址進行在線安裝,這里我們選擇清華大學提供的鏡像服務(wù)器,因為它提供了比較全面的使用說明(https://mirror.tuna.tsinghua.edu.cn/help/gitlab-ce/),現(xiàn)在我們按說明來安裝一下GitlabCE版(以下步驟是從承接上面的第二步開始的):

  新的第二步:使用vi或vim新建并編輯yum源配置文件/etc/yum.repos.d/gitlab-ce.repo

# vim /etc/yum.repos.d/gitlab-ce.repo

  填入以下yum源配置信息:

[gitlab-ce]
name=Gitlab CE Repository
baseurl=https://mirrors.tuna.tsinghua.edu.cn/gitlab-ce/yum/el$releasever/
gpgcheck=0
enabled=1

  新的第三步:使用yum包管理器安裝GitlabCE版

# yum makecache
# yum -y install gitlab-ce

  有沒有發(fā)現(xiàn),在“新的第三步”里比原來的第三步少了個東西,啥東西呢?細心的同學肯定發(fā)現(xiàn)了,沒有配置Gitlab服務(wù)器的外部訪問地址(EXTERNAL_URL)!不要急,等待Gitlab裝完后我們再去配一下就好了!國內(nèi)鏡像還是比較快的,幾分鐘就下載并裝好了,出現(xiàn)騷氣的狐貍頭圖標!

  好了,現(xiàn)在該來補上“新的第三步”里缺失的Gitlab服務(wù)器的外部訪問地址(EXTERNAL_URL),在哪里配置呢?熟悉Linux服務(wù)器各目錄作的人應(yīng)該都能猜到:Gitlab這么全球通用的版本控制軟件,配置文件應(yīng)該會也按照Linux約定放在 /etc 目錄中吧!使用cd到/etc目錄看一看或用 ls /etc/gitl再tab一下就知道了!

# ls /etc/gitlab/
gitlab.rb

  果然是有一個Gitlab的配置文件!使用cat命令查看一下發(fā)現(xiàn)內(nèi)容不是一般的多,眼睛都會看瞎!那么我們用grep命令先過濾出包含外部訪問地址(EXTERNAL_URL)配置內(nèi)容先:

# grep -i 'EXTERNAL_URL' /etc/gitlab/gitlab.rb 
##! For more details on configuring external_url see:
##! EXTERNAL_URL will be used to populate/replace this value.
external_url 'http://gitlab.example.com'
# registry_external_url 'https://registry.example.com'
# pages_external_url "http://pages.example.com/"
# gitlab_pages['artifacts_server_url'] = nil # Defaults to external_url + '/api/v4'
# gitlab_pages['auth_redirect_uri'] = nil # Defaults to projects subdomain of pages_external_url and + '/auth'
# gitlab_pages['gitlab_server'] = nil # Defaults to external_url
# mattermost_external_url 'http://mattermost.example.com'
# When the registry is automatically enabled using the same domain as `external_url`,
# For example, if external_url is the same for two secondaries, you must specify
# If it is blank, it defaults to external_url.

  很好,現(xiàn)在確認與外部訪問地址(EXTERNAL_URL)相關(guān)的內(nèi)容就這么多,動手前先用cp命令備份一下/etc/gitlab/gitlab.rb文件,因為后面我們要做字符串直接替換這種高險操作!有備無患!

# cp /etc/gitlab/gitlab.rb /etc/gitlab/gitlab.rb.bak
# ls /etc/gitlab/
gitlab.rb gitlab.rb.bak

  最后 ls確認備份成功后就可以動手了!

  現(xiàn)在使用sed命令替換/etc/gitlab/gitlab.rb文件中的 http://gitlab.example.com 為http://gitlab.xgclassroom.com

  sed命令字符串替換格式: sed -i "s$要查找的字段$替換成的字段&g" 文件名 ,-i表示是in place edit的意思,即就地編輯更改;參數(shù)里開頭的s是search的意思,可以換成d表示delete,最后的g是global的意思,即全文搜索;

# sed -i "s#http://gitlab.example.com#http://gitlab.xgclassroom.com#g" /etc/gitlab/gitlab.rb

  完了后,我們再用grep命令先篩選一下與外部訪問地址(EXTERNAL_URL)相關(guān)的內(nèi)容:

# grep -i 'EXTERNAL_URL' gitlab.rb 
##! For more details on configuring external_url see:
##! EXTERNAL_URL will be used to populate/replace this value.
external_url 'http://gitlab.xgclassroom.com'
# registry_external_url 'https://registry.example.com'
# pages_external_url "http://pages.example.com/"
# gitlab_pages['artifacts_server_url'] = nil # Defaults to external_url + '/api/v4'
# gitlab_pages['auth_redirect_uri'] = nil # Defaults to projects subdomain of pages_external_url and + '/auth'
# gitlab_pages['gitlab_server'] = nil # Defaults to external_url
# mattermost_external_url 'http://mattermost.example.com'
# When the registry is automatically enabled using the same domain as `external_url`,
# For example, if external_url is the same for two secondaries, you must specify
# If it is blank, it defaults to external_url.

  發(fā)現(xiàn)替換成功了!但是不要太激動,還要使用gitlab-ctl工具根據(jù)修改后的配置文件重新配置gitlab服務(wù)實例使配置生效:

# gitlab-ctl reconfigure
...
由于gitlab體系龐大,這將是一個要點時間的過程,等吧!
...

  gitlab服務(wù)實例重新配置完成后,可以使用gitlab-ctl工具查看一下gitblab的服務(wù)狀態(tài):

# gitlab-ctl status
run: alertmanager: (pid 32119) 292s; run: log: (pid 31878) 325s
run: gitaly: (pid 32004) 294s; run: log: (pid 31180) 401s
run: gitlab-exporter: (pid 32013) 293s; run: log: (pid 31778) 342s
run: gitlab-workhorse: (pid 31980) 294s; run: log: (pid 31506) 366s
run: grafana: (pid 32136) 291s; run: log: (pid 31951) 302s
run: logrotate: (pid 31615) 357s; run: log: (pid 31703) 354s
run: nginx: (pid 31548) 363s; run: log: (pid 31568) 360s
run: node-exporter: (pid 31998) 294s; run: log: (pid 31729) 347s
run: postgres-exporter: (pid 32129) 291s; run: log: (pid 31905) 321s
run: postgresql: (pid 31219) 398s; run: log: (pid 31326) 397s
run: prometheus: (pid 32103) 293s; run: log: (pid 31843) 331s
run: puma: (pid 31412) 377s; run: log: (pid 31433) 376s
run: redis: (pid 30999) 410s; run: log: (pid 31038) 407s
run: redis-exporter: (pid 32017) 293s; run: log: (pid 31807) 337s
run: sidekiq: (pid 31436) 375s; run: log: (pid 31454) 371s

  還可以使用以下命令查看一下操作系統(tǒng)內(nèi)存的使用情況,看看內(nèi)存是否夠gitlab用:

# free -m
       total    used    free   shared buff/cache  available
Mem:      3757    2063     394     82    1299    1376
Swap:     8191     12    8179

  如果上述的結(jié)果中Swap分區(qū)使用得不是很多,那基本上表示內(nèi)存是夠gitlab服務(wù)用的,如果Swap分區(qū)占用了很多,那就要考慮給機器增加內(nèi)存了,虛擬機增加內(nèi)存很簡單就不多說了!

  最后從虛擬機的宿主機瀏覽器上用IP地址或域名(用域名的話需要先在宿主機的C:\Windows\System32\drivers\etc\hosts配置域名與IP地址映射,所以實際上還是IP)訪問一下gitlab服務(wù):

  如上述截圖,可以看到能正常訪問我自己的搭的Gitlab服務(wù)器了,首次使用要求我們更改Gitlab服務(wù)的超級管理員root賬號的密碼,改密之后再登錄就可以愉快的玩耍了!

  Gitlab的使用相信IT人應(yīng)該都比較熟,暫時就不多講了!除了客戶端SSH密鑰應(yīng)用方面要注意一點:不要嘗試修改ssh-keygen生成的客戶機默認密鑰文件名,因為像Git for Windows類的Git客戶端工具默認讀取的密鑰文件名是約定好的(雖然也可以通過配置更改,但很麻煩的)!

以上就是本文的全部內(nèi)容,希望對大家的學習有所幫助,也希望大家多多支持腳本之家。

標簽:渭南 東莞 鹽城 日照 96 常州 棗莊 克拉瑪依

巨人網(wǎng)絡(luò)通訊聲明:本文標題《CentOS8.1搭建Gitlab服務(wù)器詳細教程》,本文關(guān)鍵詞  CentOS8.1,搭建,Gitlab,服務(wù)器,;如發(fā)現(xiàn)本文內(nèi)容存在版權(quán)問題,煩請?zhí)峁┫嚓P(guān)信息告之我們,我們將及時溝通與處理。本站內(nèi)容系統(tǒng)采集于網(wǎng)絡(luò),涉及言論、版權(quán)與本站無關(guān)。
  • 相關(guān)文章
  • 下面列出與本文章《CentOS8.1搭建Gitlab服務(wù)器詳細教程》相關(guān)的同類信息!
  • 本頁收集關(guān)于CentOS8.1搭建Gitlab服務(wù)器詳細教程的相關(guān)信息資訊供網(wǎng)民參考!
  • 推薦文章