最近買了一台伺服器,純屬個人愛折騰的性格加上最近工作不忙,斷斷續續折騰了個把月的時間,已經記不清把伺服器初始化幾次了,今天終于把gitlab給跑通了。是以來記錄一下安裝的過程,也給其他同學在安裝的時候減少一些不必要的問題。

下面的安裝順序跟我實作的順序不一樣,我是覺得這樣從基本開始就不需要像我一樣遇到問題再去百度找解決辦法了,一步一步來哈。
1.伺服器的配置
我是買的阿裡雲最低配的1核2G加40G硬碟的伺服器,系統是centOs8。在今天安裝第一次成功後才發現伺服器直接卡爆了,沒法操作其他,最後又重新初始化伺服器了。其他同學如果預算足夠的話,可以直接買2核4G的配置,因為這是gitlab要求的最低配置。不然就得像我一樣修改gitlab的配置檔案和添加swap分區的方式來讓gitlab跑起來的情況。
首先是添加swap分區,保證能跑起來
使用dd指令建立名為swapfile 的swap交換檔案(檔案名和目錄任意)dd if=/dev/zero of=/var/swapfile bs=1024 count=2097152 或者dd if=/dev/zero of=/var/swapfile bs=1024 count=2048k知識點:if(即輸入檔案,input file),of(即輸出檔案,output file)。dev/zero是Linux的一種特殊字元裝置(輸入裝置),可以用來建立一個指定長度用于初始化的空檔案,如臨時交換檔案,該裝置無窮盡地提供0,可以提供任何你需要的數目。bs=1024 :機關資料塊(block)同時讀入/輸出的塊位元組大小為1024 個位元組即1KB,bs(即block size)。count=2048000 :資料塊(block)數量為2048000 ,即2048000個1KB。可以計算swap分區的容量為:1KB 2097152=1KB 1024(k)10242=2097152=2G。dd指令裡的機關M表示1024*1024,k表示1024。
執行完畢後,對交換檔案格式化并轉換為swap分區
mkswap /var/swapfile
挂載分區并激活分區
swapon /var/swapfile 此處的話會提示:“不安全權限0644,建議使用0600”。不用緊張,實際上已經激活過了不過也可以修改權限,看個人選擇(反正我是修改了~)。chmod -R 0600 /var/swapfile
執行完後就可以檢視swap分區是否添加并激活使用了
free –h
能看到swap的使用情況,我這個是已經運作了gitlab以後的使用情況,能看出來還是占用了不少使用空間的。
修改fstab檔案,給末尾追加就行
echo "/var/swapfile swap swap defaults 0 0" >> /etc/fstab
修改伺服器ssh的配置檔案,因為在運作gitlab-ctl reconfigure後發現占用伺服器預設的ssh端口現象,也可能是其他原因導緻無法通過ssh連接配接伺服器,是以先把ssh配置檔案進行了修改,避免裝上以後沒法通過ssh連接配接伺服器進行其他操作。
修改ssh配置檔案sshd_configvim /etc/ssh/sshd_config
設定防火牆firewall-cmd --zone=public --add-port=端口号/tcp --permanentfirewall-cmd --reload先安裝SELinux的管理工具 semanage (如果已經安裝了就直接到下一步)yum provides semanage
查詢目前ssh服務端口
semanage port -l | grep ssh
向 SELinux 中添加 ssh 端口
semanage port -a -t ssh_port_t -p tcp 配置檔案裡的端口号
重新開機 ssh 服務
systemctl restart sshd.service
伺服器的配置基本上就是這些,算是準備工作,也是記錄了一下步驟和遇到的問題。另外在最後一步我的伺服器保留了兩個ssh的端口号,不知道會有什麼影響,有看到資料說在配置完新的端口号以後可以把原來預設的端口給注釋掉,我沒這樣操作,可能會存在一些不安全的問題,這個問題有待以後進一步學習伺服器相關的知識來把坑填上,此處隻是對我個人配置的一些記錄哈。
2.gitlab的安裝
伺服器的準備工作完成以後,進行gitlab的安裝和啟用policycoreutils、openssh-server和openssh-clients元件
dnf install -y curl policycoreutils openssh-server openssh-clientssystemctl enable sshdsystemctl start sshdfirewall-cmd --permanent --add-service=httpfirewall-cmd --permanent --add-service=httpssystemctl reload firewalld
使用清華大學鏡像安裝gitlab
使用vim建立并編輯源配置檔案vim /etc/yum.repos.d/gitlab-ce.repo
[gitlab-ce]name=Gitlab CE Repositorybaseurl=https://mirrors.tuna.tsinghua.edu.cn/gitlab-ce/yum/el$releasever/gpgcheck=0enabled=1
儲存退出源設定檔案後就可以安裝gitlab了
yum makecacheyum -y install gitlab-ce
安裝完成以後,進入/etc/gitlab檔案,修改gitlab.rb配置檔案,因為我的伺服器配置低的原因,要修改很多地方
先停止gitlabgitlab-ctl stop然後對gitlab降低配置要求vim /etc/gitlab/gitlab.rb這幾個配置的話要把#去掉,并适當改小減少資料庫緩存postgresql['shared_buffers'] = "256MB" 我修改成了128減少資料庫并發數postgresql['max_worker_processes'] = 8 我改成了4減少sidekiq并發數sidekiq['concurrency'] = 25 這個的話我的gitlab配置檔案顯示的是sidekiq['max_concurrency'] = 50 不确定是不是版本的問題,是以我沒修改這個
最關鍵的問題是修改external_url
external_url = '伺服器位址或域名+端口号external_url這裡後面一定要加 = 号,不然會報錯unicorn['prot'] = 配置的端口号這一步可能不需要,如果通路不到gitlab的話可以試試這個解決辦法gitlab_rails['gitlab_shell_ssh_port'] = 配置的端口号
然後就可以gitlab-ctl reconfigure等待配置生效了。因為修改了gitlab的最低配置要求和添加了swap分區,很快就好了,之前失敗的幾次,裝了半個多小時還是失敗,導緻不斷重置伺服器。
配置生效以後,就可以通過域名或者域名加端口号進行通路,如果出現502的問題,建議先重新開機一下伺服器,可能是配置沒立即生效的原因,如果還不行,可以試試上面我說的那個方法,還不行,大家就隻能自己解決了。
最後這就是我在伺服器安裝gitlab的過程。希望可以幫助到大家,另外安利一些伺服器上的基本指令,避免各位小夥伴像我一樣在修改檔案的時候一行一行找對應的配置
,因為真的很痛苦,不多說了,show code!
以下指令都是在vim編輯模式下按下"/" 輸入關鍵字查找對應的内容,n向下查找 N向上查找ESC之後:w 儲存檔案不退出vim:w file 将修改另外儲存到file中不退出vim:w! 強制儲存不退出vim:wq 儲存檔案退出vim:wq! 強制儲存檔案,退出wim:q 不儲存檔案退出vim:q! 不儲存檔案強制退出:e 放棄所有修改,從上次儲存檔案開始再編輯
基本就是這些了,感謝大家~