- 環境配置
系統:CentOS Linux release 7.4.1708 (Core)
內核版本:3.10.0-693.el7.x86_64
內核信息:Linux localhost.localdomain 3.10.0-693.el7.x86_64 #1 SMP Tue Aug 22 21:09:27 UTC 2017 x86_64 x86_64 x86_64 GNU/Linux
CPU: 4 Intel(R) Xeon(R) CPU E5-2640 v4 @ 2.40GHz
Memory Usage:8GB
Disk Usage: 50GB
GitLab版本:gitlab-ce-11.1.8-ce.0.el7.x86_64
- 安裝步驟
2.1安裝
- 下載安裝包,Centos7環境下的GitLab安裝包鏈接: https://mirrors.tuna.tsinghua.edu.cn/gitlab-ce/yum/el7
找到裏面的最新版本,也可以根據需求選擇歷史版本
gitlab-ce-11.1.8-ce.0.el7.x86_64.rpm
下載指令:
wget https://mirrors.tuna.tsinghua.edu.cn/gitlab-ce/yum/el7/gitlab-ce-11.1.8-ce.0.el7.x86_64.rpm
- 下載完成後安裝GitLab:
rpm -i gitlab-ce-11.1.8-ce.0.el7.x86_64.rpm --nodeps --force
說明: -ivh 其中參數-i爲安裝 -v顯示信息 -h顯示進度條
--nodeps rpm在安裝包時,不檢查依賴關係
--force 強制安裝
- 修改GitLab配置文件指定服務器ip和自定義端口:
vi /etc/gitlab/gitlab.rb
保存並退出,也可以不退出,因爲接下來配置郵件也是編輯這個文件
- 配置郵件
vi /etc/gitlab/gitlab.rb
我這裏使用的是139郵箱,比較穩定,基本上不會被郵箱官方給當成垃圾郵件攔截,其他郵件根據需求更改。相關教程請參考官網https://doc.gitlab.cc/omnibus/settings/smtp.html
注意 :登錄郵件用戶和發件用戶須一致。密碼是客戶端授權密碼,不是郵件在官方的登錄密碼,有些郵件這兩個密碼是一樣的。
- 重置並啓動GitLab
gitlab-ctl reconfigure(讀取配置文件重新裝配GitLab,時間有點長)
gitlab-ctl restart (重啓gitlab所有組件)
提示“ok: run:”表示啓動成功
- 關閉防火牆或者開放剛纔設置的端口
systemctl stop firewalld.service #停止firewall
systemctl disable firewalld.service #禁止firewall開機啓動
2.2 驗證操作
- GitLab的常用指令
# 讀取Gitlab配置文件 sudo gitlab-ctl reconfigure
# 啓動Gitlab所有組件 sudo gitlab-ctl start
# 停止Gitlab所有組件 sudo gitlab-ctl stop
# 重啓Gitlab所有組件 sudo gitlab-ctl restart
# 查看狀態 sudo gitlab-ctl status
# 查看實時日誌 gitlab-ctl tail
- 訪問Gitlab頁面
輸入服務器ip和指定端口進行訪問,第一次登陸設置密碼
設置好密碼後 進入登陸註冊界面
- 測試郵件功能
先打開Gitlab的實時日誌,如果出錯,方便找出相應錯誤
gitlab-ctl tail
使用新增用戶來測試郵件是否發送成功
填寫正確郵箱,會給你發個郵件,郵件內登錄的郵件,第一次登錄強制更改密碼
點擊提交後 ,這時實時日誌會出現這樣一段日誌
表示發送成功,然後去看郵件
點進去連接然後修改密碼完成註冊
問題處理
3.1 配置gitlab遇到的問題
讀取gitlab配置的時候報錯
如果是這種,就將所有gitlab的用戶刪除,然後再執行 gitlab-ctl reconfigure即可
查看所有用戶 cat /etc/passwd
刪除用戶 userdel –rf 用戶名
如果是其他問題,紅色字體描述的很清楚,找到相應位置根據提示修改即可
3.2 配置郵件可能遇到的問題(以139郵箱爲例):
1、Connection refused - connect(2) for \"smtp.139.com\" port 456
端口一開始填寫爲:456,這是不對的。163郵箱的端口是25.
2、User has no permission
登陸139郵箱,開啓SMTP服務。
3、535 Error: authentication failed
用戶名或密碼不正確,注意這裏的
gitlab_rails['smtp_password'] = "xxpassword"
是139郵箱的“客戶端授權密碼 ”
4、553 Mail from must equal authorized user
服務器smtp機器要求身份驗證帳號和發信帳號必須一致
##修改gitlab配置
gitlab_rails['gitlab_email_from'] = "[email protected]"
user["git_user_email"] = "[email protected]"
5、以上都沒問題如果還是發不出去郵件的話,可能是25端口沒有打開,可以嘗試關閉防火牆,或者開放25端口。注:阿里雲、騰訊雲服務器商會把25端口封住(其他服務器商也可能會封,可自行查看服務器商官網),就算你關掉了防火牆,在安全組開放了25端口也沒用,需要向服務器申請解封25端口。
有問題歡迎在評論區留言,我會繼續更新DevOps搭建過程