GitLab 安裝配置筆記(轉)


GitLab的安裝方式

GitLab的兩種安裝方法:

  • 編譯安裝

    • 優點:可定制性強。數據庫既可以選擇MySQL,也可以選擇PostgreSQL;服務器既可以選擇Apache,也可以選擇Nginx。
    • 缺點:國外的源不穩定,被牆時,依賴軟件包難以下載。配置流程繁瑣、復雜,容易出現各種各樣的問題。依賴關系多,不容易管理,卸載GitLab相對麻煩。
  • 通過rpm包安裝

    • 優點:安裝過程簡單,安裝速度快。采用rpm包安裝方式,安裝的軟件包便於管理。
    • 缺點:數據庫默認采用PostgreSQL,服務器默認采用Nginx,不容易定制。

由於公司只配備了一台阿里雲服務器,並且沒有分配任何的域名。該服務器上需要運行版本控制軟件、bug管理軟件、知識庫等多套程序,只能采用ip的方式訪問。原先采用GitLab+Apache+MySQL編譯安裝的方式,並且將GitLab配置為可通過xxx.xx.xxx.xx/gitlab的形式訪問,由於bug管理軟件(禪道)也運行於Apache之上,兩套軟件之間彼此有互斥的影響,找不到解決方法。同時,GitLab的注冊需要郵箱驗證,由於網上提供的配置方法都是基於域名的,在阿里雲上多次進行配置都無法正常使用。

因此,只能放棄編譯安裝的方式,而采取rpm包的方式重新進行安裝。

安裝GitLab CE Omnibus包

  1. 在linux終端下,使用cat /etc/issue命令查詢當前系統的發行版本,查詢到阿里雲所安裝的linux版本為CentOS release 6.6 (Final)。

  2. 進入gitlab官方網站,選擇對應的操作系統——CentOS 6 (and RedHat/Oracle/Scientific Linux 6),按照官方的提示進行安裝:

    1. 安裝配置必要的依賴

      在Centos 6 和 7 中,以下的命令將會打開HTTP和SSH在系統防火牆中的可訪問權限。

      sudo yum install openssh-server
      
      sudo yum install postfix
      
      sudo yum install cronie
      
      sudo service postfix start
      
      sudo chkconfig postfix on
      
      sudo lokkit -s http -s ssh 
    2. 下載Omnibus package包並安裝

      curl -O https://downloads-packages.s3.amazonaws.com/centos-6.6/gitlab-ce-7.10.0~omnibus.2-1.x86_64.rpm sudo rpm -i gitlab-ce-7.10.0~omnibus.2-1.x86_64.rpm 
      Note:由於amazonaws的服務器被牆,下載這個包時可能需要翻牆下載。
      
    3. 配置並啟動GitLab
      打開/etc/gitlab/gitlab.rb,將external_url = 'http://git.example.com'修改為自己的IP地址:http://xxx.xx.xxx.xx,,然后執行下面的命令,對GitLab進行編譯。

      sudo gitlab-ctl reconfigure
      
    4. 登錄GitLab

      Username: root Password: 5iveL!fe 

配置GitLab的默認發信郵箱

  1. GitLab中使用postfix進行郵件發送。因此,可以卸載系統中自帶的sendmail
    使用yum list installed查看系統中是否存在sendmail,若存在,則使用yum remove sendmail指令進行卸載。
  2. 測試系統是否可以正常發送郵件。

    echo "Test mail from postfix" | mail -s "Test Postfix" xxx@xxx.com 
    注:上面的xxx@xxx.com為你希望收到郵件的郵箱地址。 

    當郵箱收到系統發送來的郵件時,將系統的地址復制下來,如:root@iZ23syflhhzZ.localdomain,打開/etc/gitlab/gitlab.rb,將

    # gitlab_rails['gitlab_email_from'] = 'gitlab@example.com' 

    修改為

    gitlab_rails['gitlab_email_from'] = 'root@iZ23syflhhzZ.localdomain' 

    保存后,執行sudo gitlab-ctl reconfigure重新編譯GitLab。如果郵箱的過濾功能較強,請添加系統的發件地址到郵箱的白名單中,防止郵件被過濾。

    Note:系統中郵件發送的日志可通過`tail /var/log/maillog`命令進行查看。 

安裝過程中出現的問題

  1. 在瀏覽器中訪問GitLab出現502錯誤

    原因:內存不足。

    解決辦法:檢查系統的虛擬內存是否隨機啟動了,如果系統無虛擬內存,則增加虛擬內存,再重新啟動系統。

  2. 80端口沖突

    原因:Nginx默認使用了80端口。

    解決辦法:為了使Nginx與Apache能夠共存,並且為了簡化GitLab的URL地址,Nginx端口保持不變,修改Apache的端口為4040。這樣就可以直接用使用ip訪問Gitlab。而禪道則可以使用4040端口進行訪問,像這樣:xxx.xx.xxx.xx:4040/zentao。具體修改的地方在/etc/httpd/conf/httpd.conf這個文件中,找到Listen 80這一句並將之注釋掉,在底下添加一句Listen 4040,保存后執行service httpd restart重啟apache服務即可。

    #Listen 80 Listen 4040 
  3. 8080端口沖突

    原因:由於unicorn默認使用的是8080端口。

    解決辦法:打開/etc/gitlab/gitlab.rb,打開# unicorn['port'] = 8080的注釋,將8080修改為9090,保存后運行sudo gitlab-ctl reconfigure即可。

  4. STMP設置

    配置無效,暫時不知道原因。

  5. GitLab頭像無法正常顯示
    原因:gravatar被牆
    解決辦法:
    編輯 /etc/gitlab/gitlab.rb,將

    #gitlab_rails['gravatar_plain_url'] = 'http://gravatar.duoshuo.com/avatar/%{hash}?s=%{size}&d=identicon' 

    修改為:

    gitlab_rails['gravatar_plain_url'] = 'http://gravatar.duoshuo.com/avatar/%{hash}?s=%{size}&d=identicon' 

    然后在命令行執行:

    sudo gitlab-ctl reconfigure 
    sudo gitlab-rake cache:clear RAILS_ENV=production
    

參考資料

GitLab 6.1 使用postfix發送email

Configure GitLab Omnibus installation alongside with Apache

解決Gitlab的Gravatar頭像無法顯示的問題

How To Set Up GitLab As Your Very Own Private GitHub Clone

https://segmentfault.com/a/1190000002722631


免責聲明!

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



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