GitLab相關實作1

GitLab相關實作 — RHEL8安裝GitLab(Online) try & error

ZONGRU Li
10 min readJun 27, 2022

參考這篇(LINK)

由於GitLab官網目前沒有RHEL8的安裝流程:

所以參考前面的LINK提供的安裝方式來驗證

先簡單建立一個RHEL8的機台出來使用

依據最前面的LINK提供的步驟執行

#Update system and Install Dependencies:
sudo yum -y update
sudo yum -y install curl vim policycoreutils python3-policycoreutils

安裝發送mail的套件

#執行以下安裝mail發送的Postfix(有需要的話,Optional!):
sudo yum -y install postfix
#啟動Postfix:
sudo systemctl enable postfix && sudo systemctl start postfix

接著才是GitLab實際有關的安裝步驟:

#增加GitLab安裝檔的套件庫(透過sh檔方式),並在最後看到成功字樣:
curl -s https://packages.gitlab.com/install/repositories/gitlab/gitlab-ce/script.rpm.sh | sudo bash

接著實際安裝GitLab CE on CentOS 8 / RHEL 8

#執行以下指令執行安裝:
sudo yum install gitlab-ce

有執行以下這個:

但是後來畫面洗掉了,過程大概卡了5分多鐘

最後會看到:

以上基本就安裝完成了

接著進行一些設置

#Configure GitLab CE on CentOS 8 / RHEL 8,其路徑在:
sudo vi /etc/gitlab/gitlab.rb

我覺得上面挺好(AWS公開IP位置),就先不改了

當上述設定調整完之後,要啟動上述更動的設置,要重啟gitlab服務

#執行指令來重新引用新的設置:
sudo gitlab-ctl reconfigure

最後面看到:

開通相關的VM防火牆設置:

#執行以下指令開通相關的防火牆設置(http, https and ssh services):
sudo firewall-cmd --permanent --add-service={ssh,http,https} --permanent
#重啟防火牆來引用上述的設置:
sudo firewall-cmd --reload

這邊我發現預設沒有裝:

所以要補為:

#安裝VM防火牆:
sudo yum install firewalld
#啟動防火牆:
sudo systemctl start firewalld
#啟動自動啟動防火牆:
sudo systemctl enable firewalld
#確認防火牆:
sudo systemctl status firewalld
#執行以下指令開通相關的防火牆設置(http, https and ssh services):
sudo firewall-cmd --permanent --add-service={ssh,http,https} --permanent
#重啟防火牆來引用上述的設置:
sudo firewall-cmd --reload

這邊額外補充防火牆相關指令,因為這是練習,所以我特地開看看5000

#如果是打算開通5000 PORT則是執行以下指令:
sudo firewall-cmd --zone=public --add-port=5000/tcp --permanent
sudo firewall-cmd --reload
#確認當前開了哪些PORT設置:
sudo firewall-cmd --list-all

接著就嘗試進到Web介面內:

機台內自己curl自己看起來可以!

從外部嘗試發現怎樣都沒辦法連 →http://{公開IP}:8080

所以這邊再次調整機台防火牆,用PORT的方式開

#執行以下防火牆調整:
sudo firewall-cmd --zone=public --add-port=8080/tcp --permanent
sudo firewall-cmd --zone=public --add-port=443/tcp --permanent
sudo firewall-cmd --reload

再次嘗試外部連線

後來才發現可能是需要sshd

先安裝openssh-server

#執行安裝openssh-server的daemon:
sudo yum install -y openssh-server
#啟動自動啟動sshd:
sudo systemctl enable sshd
#實際啟動sshd:
sudo systemctl start sshd

但是這邊還是外面連不進去

最後研究老半天才發現是要...

#連到80 PORT....連到以下URL:http://{public ip}:80

但是這邊很神奇的是機台防火牆我沒特別開80 PORT:

另外此時登入的管理者帳號是要用root,但是密碼在(只存在24HR):

#檢視密碼:
sudo cat /etc/gitlab/initial_root_password

就順利進去了

依據版本有的會進行第一次登入更改密碼的動作

我這邊等等就移除了,無所謂!

然後一般建議排除普通使用者註冊(參考LINK):

展開設定

在來就是SSL設置(參考LINK)

另外研究一下怎麼改default PORT(參考LINK):

找到以下檔案:

#編輯進到以下檔案:
sudo vi /opt/gitlab/embedded/service/gitlab-rails/config/gitlab.yml
改成這樣!
#接著編輯修改以下檔案:
sudo vi /opt/gitlab/embedded/conf/nginx.conf
#在來就是改前面的那個檔案的:
sudo vi /etc/gitlab/gitlab.rb
#執行指令來重新引用新的設置:
sudo gitlab-ctl reconfigure
都要跑一兩分鐘

然後有時候執行上面的指令後curl測試會掛掉:

後來發現/etc/gitlab/gitlab.rb這個檔其實不用改,如下改回只有到IP

在重新執行一次

sudo gitlab-ctl reconfigure

發現上面的指令跑完剛開始都會502,要過一陣子才能看到正常回應:

其實如上,8080其實背後有其他GitLab佔用了

弄老半天沒辦法使用8080

後來試試改8081(/etc/gitlab/gitlab.rb這個檔裡面改):

sudo gitlab-ctl reconfigure

然後改:

再加

#加VM防火牆:
sudo firewall-cmd --zone=public --add-port=8081/tcp --permanent
#重啟VM防火牆:
sudo firewall-cmd --reload

如上看起來可以了,再來試試外部瀏覽器打進去!

所以總結只要改/etc/gitlab/gitlab.rb裡面的external_url就好了

然後防火牆設置開一開就OK了!

之後可能找時間再整理一篇

目前該台VM就先行移除!

--

--

ZONGRU Li
ZONGRU Li

Written by ZONGRU Li

2022/11/17 開源部分個人筆記給LINE "Java程式語言討論區"社群,希望能對社群的技術學習做一點點貢獻.(掩面....記得退訂閱!

No responses yet