Linux(Centos7.6)下安裝Gitlab詳細教程


Gitlab搭建操作步驟:

1、查看Linux系統版本確認gitlab需要使用的安裝包類型

使用命令:cat /etc/redhat-release
CentOS Linux release 7.6.1810 (Core)
本系統是CentOS 7,對應官方教程地址:https://about.gitlab.com/install/#centos-7

We strongly recommend downloading the Omnibus package installation since it is quicker to install, easier to upgrade, and it contains features to enhance reliability not found in other methods.
We also strongly recommend at least 4GB of free RAM to run GitLab.

  

2、安裝 curl,policycoreutils-python,openssh-server服務

使用命令:yum install -y curl policycoreutils-python openssh-server
出現以下界面,說明成功

 

3、將SSH服務設置成開機自啟動

命令:systemctl enable sshd 

  

4、啟動SSH服務

命令:systemctl start sshd

 

5、開啟防火牆

命令:systemctl start firewalld或者service firewalld  start

 

6、添加http服務到firewalld,允許http服務通過, pemmanent表示永久生效,若不加--permanent系統下次啟動后就會失效

firewall-cmd --permanent --add-service=http
firewall-cmd --permanent --add-service=https

 

7、重啟防火牆  

命令:(sudo) systemctl reload firewalld

  

8、接下來,安裝Postfix以發送通知郵件,並將postfix服務設置成開機自啟動

 

Linux centos 查看postfix已經安裝 rpm -qa |grep postfix,如果安裝過,則無需安裝。
安裝postfix:
命令:sudo yum install postfix 
設置postfix自啟動
命令:sudo systemctl enable postfix

  

9、啟動Postfix

命令:ssudo systemctl start postfix
可能會啟動失敗:Job for postfix.service failed because the control process exited with error code. See "systemctl status postfix.service" and "journalctl -xe" for details.
這是因為防火牆或者配置文件導致,無法啟動的郵件服務,首先關閉防火牆,修改配置文件vim /etc/postfix/main.cf 
把inet_interfaces = localhost注釋掉,把inet_interfaces = all的注釋打開,然后就可以啟動了。

可以通過命令:systemctl status postfix查看是否啟動成功,下圖所示標識啟動成功

  

10、下載鏡像

官網鏈接:https://packages.gitlab.com/gitlab/gitlab-ee/packages/el/7/gitlab-ee-12.5.4-ee.0.el7.x86_64.rpm

使用命令下載鏡像:curl -s https://packages.gitlab.com/install/repositories/gitlab/gitlab-ee/script.rpm.sh | sudo bash

出現下圖所示,標識reposity鏡像下載成功:

安裝鏡像:sudo yum install -y gitlab-ee-12.5.4-ee.0.el7.x86_64,出現下圖所示,標識安裝成功

  

11、修改gitlab配置文件指定服務器ip和自定義端口

vim /etc/gitlab/gitlab.rb
使extenal_url指向自己的ip:extenal_url=”http://ip:8888”

  

12、刷新配置GitLab

命令:gitlab-ctl reconfigure,這個過程有點慢,請耐心等待哈

  

13、重置並啟動GitLab

命令:gitlab-ctl start
啟動成功如下圖所示:

 

14、Gitlab常用命令:

sudo gitlab-ctl start # 啟動所有 gitlab 組件;
sudo gitlab-ctl stop # 停止所有 gitlab 組件;
sudo gitlab-ctl restart # 重啟所有 gitlab 組件;
sudo gitlab-ctl status # 查看服務狀態;
sudo gitlab-ctl reconfigure # 啟動服務;
sudo vim /etc/gitlab/gitlab.rb # 修改默認的配置文件;
gitlab-rake gitlab:check SANITIZE=true --trace # 檢查gitlab;
sudo gitlab-ctl tail # 查看日志;

 

15、關於gitlab-ee和gitlab-ce,二者是基於同樣的核心代碼進行開發,只是gitlab-ee功能更強大,但需要付費使用,有30天試用期。但試用期過后如果不付費,它就跟gitlab-ce功能是完全一樣的,只是需要付費的功能無法再繼續使用而已,所以這兩個版本可以隨意選擇安裝,但如果將來有付費的打算,直接安裝gitlab-ee版本是個有遠見的選擇。當然,即使不付費,gitlab-ee使用上和gitlab-ce沒有任何區別,所以接下來的操作我們就以安裝gitlab-ee為例進行。

如果安裝gitlab-ce目前不需要使用國內鏡像,如果是安裝gitlab-ee就需要用到國內鏡像


16、修改gitlab_gitlab-ee.repo文件
把repo_gpgcheck屬性為0,以及baseurl屬性為清華大學的開源鏡像站地址: https://mirrors.tuna.tsinghua.edu.cn/gitlab-ee/yum/el7

  

       修改完成后再刷新yum源:

yum clean all
yum yum makecache

注意事項以及該文件關鍵鍵的介紹:

1.gitlab_gitlab-ee和gitlab_gitlab-ee-source對應的地址都要換

2.name是倉庫的名字

3.baseurl字段是倉庫的url,也就是倉庫具體的訪問路徑,就是通過這個選項告知yum,倉庫在哪。這里可以指明多個url,如果寫了多個url,yum將遵循failovermethod字段進行使用

4.enabled字段指明了該url是否啟用,0為不啟用,默認為1

5.gpgcheck字段指明了是否檢查rpm包的簽名信息、完整性信息,0為不啟用,1為啟用
(注意:如果啟用這個字段,也就是為1時,如果沒有gpgkey時,檢查很可能無法通過。我們可以在命令行中使用-- nogpgcheck選項禁止檢查gpg)

6.repo_gpgcheck指明了是否檢查元數據信息文件的簽名信息與完整性,0為不啟用,1為啟用

7.gpgkey=url指明了密鑰文件的url路徑,有了這個密鑰才能檢查各種完整信息。

8.由於gpgkey對應的地址需要翻牆所以gpgcheck也需要設置為0,如果你服務器不需要翻牆可以不用使用默認值1。

9.https://mirrors.tuna.tsinghua.edu.cn是國內清華大學開源鏡像站,避免yum install可能會因為網絡原因導致失敗。

 

17、安裝過程可能出現問題和修復方法:

1.1502 Whoops, GitLab is taking too much time to respond

解決方案:

修改默認端口:需要放開/etc/gitlab/gitlab.rb文件里面nginx['listen_port']和unicorn['port']注釋並設置端口,兩個端口不能相同.具體原因筆者暫時也搞不懂,沒用過nginx。

nginx['listen_port'] = 1001
unicorn['port'] = 1002
可能是端口占用問題,unicorn

刷新gitlab配置和啟動

gitlab-ctl reconfigure
gitlab-ctl restart
##### 2.出現ruby_block[supervise_redis_sleep] action run停留很久

在卸載gitlab然后再次安裝執行 gitlab-ctlreconfigure的時候往往會出現:ruby_block[supervise_redis_sleep] action run,會一直卡無法往下進行!

解決方案:

1、按住CTRL+C強制結束;

2、運行:sudo systemctl restart gitlab-runsvdir;

3、再次執行:sudo gitlab-ctl reconfigure

 

18、修改gitlab的配置文件:/etc/gitlab/gitlab.rb

 gitlab_rails['smtp_enable'] = true
 gitlab_rails['smtp_address'] = "smtp.qq.com"
 gitlab_rails['smtp_port'] = 465
 gitlab_rails['smtp_user_name'] = "******@qq.com"
 gitlab_rails['smtp_password'] = "授權碼"
 gitlab_rails['smtp_domain'] = "smtp.qq.com"
 gitlab_rails['smtp_authentication'] = "login"
 gitlab_rails['smtp_enable_starttls_auto'] = true
 gitlab_rails['smtp_tls'] = true
 gitlab_rails['gitlab_email_from'] = '******@qq.com'

重啟生效:gitlab-ctl reconfigure
執行 gitlab-rails console進入控制台。 然后在控制台提示符后輸入下面的命令 發送一封測試郵件:Notify.test_email('收件人郵箱', '郵件標題', '郵件正文').deliver_now

 

19、進入Gitlab控制台

輸入gitlab-rails console production進入gitlab控制台,只有進入到控制台之后,才可以輸入gitlab的查詢語句,才會被解析
查找用戶信息:
user = User.where(id:1).first

重置密碼:
輸入user.password='密碼',密碼位置填寫您新的密碼即可。然后再輸入user.save!保存用戶對象

 

20、Centos 7 下Gitlab 自啟動設置

 禁止 Gitlab 開機自啟動:

systemctl disable gitlab-runsvdir.service

  

   啟用 Gitlab 開機自啟動:

systemctl enable gitlab-runsvdir.service

 

參考鏈接:https://www.jianshu.com/p/d03a08dd28a2官方教程地址:https://about.gitlab.com/install/#centos-7

寫博客是為了記住自己容易忘記的東西,另外也是對自己工作的總結,文章可以轉載,無需版權。希望盡自己的努力,做到更好,大家一起努力進步! 如果有什么問題,歡迎大家一起探討,代碼如有問題,歡迎各位大神指正!  


免責聲明!

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



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