gitlab安裝升級(大版本跨度9.4.5----13.2.1)


gitlab安裝升級(大版本跨度9.4.5----13.2.1)

 gitlab基礎介紹

復制代碼

1、 repository: 代碼庫,可以是硬盤或NFS文件系統
2、 NGINX: web 入口
3、 數據庫:包含信息Repository 中的數據(元數據,issue,合並請求merge request等)可以登陸的web用戶信息
4、 Redis 緩存 ,負責分發信息
5、 sidekq: 后台任務,主要負責發送電子郵件,任務來自與redis
6、 unicorn (gitlab rails):gitlab自身的web,包含了gitlab主進程,負責處理快速/一般任務,與redis一起工作,內容有
    A 通過檢查存儲在redis中的用戶來檢查權限
    B 為sidekiq 制作任務
    C 從倉庫(warehouse) 取東西或在哪里移動東西

7、 gitlab-shell:用於SSH交互,而不是http,gitlab-shell 通過redis與sidekiq 進行通信,並直接通過TCP訪問unicorn

8、 gitaly: 后台服務,專門負責訪問磁盤以高效處理git,並處理緩存耗時操作,所有的git操作都通過gitaly 進行處理

9、 gitlab-workshorse: 反向代理服務器,可以處理與redis無關的請求,磁盤上的CSS,JS 文件等),處理git push/pull 請求,處理redis的鏈接(修改有redis發送的響應或發送給redis請求,管理redis的長期web socket鏈接)

10、 mail_room: 處理郵件請求,恢復gitlab發送的郵件時,gitlab會調用此服務.

復制代碼

復制代碼
大體原理:
gitlab 使用nginx將前端請求代理到UNicorn web 服務器,默認情況下,unicorn 與前端之間的通信是通過unix domain 套接字進行的,但也支持通過TCP請求轉發,web訪問前端/home/git/gitlab/pubilc繞過unicorn 服務來提供靜態頁面,上傳和預編譯資源,gitlab使用Unicorn web 提供網頁和gitlab api,使用sidekiq作為作業隊列, 反過來,它使用redis 作為作業信息,元數據和作業的非持久化數據后端。

gitlab應用程序使用mysql或postgresql 作為持久化數據庫,保存用戶,權限,issue其他元數據等。

通過http/https提供repository時,gitlab使用gitlab API 來解釋授權和訪問以及提供git對象。

gitlab-shell 通過ssh提供repository,他管理/home/git/,ssh/authorized_keys 內的SSH密鑰,不應該手動編輯,gitlab-shell通過gitaly訪問bare repository 已提供git對象並與redis 進行通信以向sidekiq提交作業以供gitlab處理,gitlab-shell 查詢gitlab API一確定授權和訪問。
復制代碼

 

一、gitlab安裝(安裝方式:下載rpm包)

1、先去官網下載安裝包(https://packages.gitlab.com),但是鑒於下載速度實在太慢了,比較推薦去清華源下載,地址:https://mirrors.tuna.tsinghua.edu.cn/gitlab-ce/yum/el7/,我的安裝環境是centos7.2,選擇的版本是gitlab-ce-9.4.5-ce.0.el7.x86_64.rpm。

2、安裝gitlab

  # rpm -Uvh gitlab-ce-9.4.5-ce.0.el7.x86_64.rpm

3、編輯配置文件 /etc/gitlab/gitlab.rb

# grep '^[a-z]' /etc/gitlab/gitlab.rb

  external_url 'http://172.16.68.154:10068'    #gitlab監聽地址和端口,默認監聽端口號為80
  unicorn['port'] = 28080                      #組件unicorn監聽的端口號,默認為8080
  prometheus['enable'] = false                 #關閉prometheus監控,比較耗內存

 4、初始化gitlab  

# gitlab-ctl reconfigure

5、啟動gitlab

# gitlab-ctl start

6、查看gitlab版本號 

# cat /opt/gitlab/embedded/service/gitlab-rails/VERSION

7、查看gitlab各組件的啟動情況

# gitlab-ctl status

8、gitlab默認安裝目錄

/opt/gitlab/ ## 主目錄
/etc/gitlab/ ## 放置配置文件
/var/opt/gitlab/ ## 各個組件
/var/log/gitlab/ ## 放置日志文件

9、輸入訪問地址http://172.16.68.154:10068,第一次登陸會轉跳到重置密碼的界面,設置完成即可用root用戶登陸。

 

 

 

二、忘記root用戶密碼,重置密碼。

#  gitlab-rails console production
irb(main):001:0> u=User.where(id:1).first
irb(main):003:0> u.password=12345678
irb(main):004:0> u.password_confirmation=12345678
irb(main):005:0> u.save!
irb(main):006:0> quit
三、備份與恢復
1、備份
# gitlab-rake  gitlab:backup:create
 
         

2、恢復

(1)先停止服務

#  gitlab-ctl  stop  unicorn
#  gitlab-ctl  stop  sidekiq
#  gitlab-ctl  stop  nginx

(2) 恢復數據

# gitlab-rake gitlab:backup:restore BACKUP=1596428908_2020_08_03_9.4.5 

四、升級

1、升級之前先做好備份
# gitlab-rake  gitlab:backup:create

備份好的數據在沒改備份路徑的情況下,默認的目錄是:/var/opt/gitlab/backups

 2、參考https://docs.gitlab.com/ee/policy/maintenance.html#upgrade-recommendations給出的升級跨度版本,一個版本一個版本的升級,千萬不可跨大版本升級。

 (1)升級前先停掉服務

# gitlab-ctl stop unicorn  sidekiq  nginx

 (2)我要從9.4.5升級到13.2.1,需要升級的版本號依次是9.4.5-->9.5.10-->10.8.7-->11.11.8-->12.0.12-->12.10.6-->13.0.0-->13.2.1

每升級一個版本都要重啟gitlab登陸頁面看看,有沒有問題,確定無誤之后方可進行升級下一個版本。

# rpm -Uvh gitlab-ce-9.5.10-ce.0.el7.x86_64.rpm
# gitlab-ctl reconfigure
# gitlab-ctl restart

 

 

 
 


免責聲明!

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



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