gitlab安裝/遷移/升級流程

曾春雲發表於2019-05-31

安裝新的gitlab

先安裝基本的依賴包
sudo yum install -y curl policycoreutils-python openssh-server
sudo systemctl enable sshd
sudo systemctl start sshd

sudo firewall-cmd --permanent --add-service=http
sudo systemctl reload firewalld

sudo yum install postfix
sudo systemctl enable postfix
sudo systemctl start postfix
獲取gitlab yum源
curl -sS https://packages.gitlab.com/install/repositories/gitlab/gitlab-ce/script.rpm.sh | sudo bash

##### 開始安裝

  • 安裝前先設定hosts解析,這樣就能通過域名方式訪問gitlab,同時後續遷移時也不需要改動gitlab使用的資料的訪問url
  • 如果非公網域名,內部的域名,如果沒有dns解析,則客戶端訪問時,同樣需要設定本機的hosts記錄
  • 這裡以域名git.afcat.com.cn為例,我在hosts檔案中增加一行解析記錄
vim /etc/hosts
10.24.40.134 git.afcat.com.cn

##### 使用yum安裝
bash sudo EXTERNAL_URL="https://git.afcat.com.cn" yum install -y gitlab-ce

  • 安裝完就能訪問了https://git.afcat.com.cn,開啟頁面後,會讓你設定root使用者的密碼。該root是頁面的登陸賬號的root,不是伺服器系統的root賬號

遷移到新的gitlab

  • 遷移要保證兩臺gitlab版本完全一致,否則原來伺服器的備份資料無法匯入到新的gitlab伺服器上。
先檢視原來的gitlab版本號
gitlab-rake gitlab:env:info
  • 假設原來的版本號為:8.8.5
  • 那麼在新機器上安裝命令gitlab版本時需要帶上版本號
sudo EXTERNAL_URL="https://git.afcat.com.cn" yum install -y gitlab-ce-8.8.5 --nogpgcheck
  • 以下操作在原來的gitlab伺服器上操作
建立備份檔案
gitlab-rake gitlab:backup:create STRATEGY=copy 
備份結果
  • 記住下面這個檔名,還原時用的上
1531878574_gitlab_backup.tar
  • 預設備份位置/var/opt/gitlab/backups目錄
  • 如果需要修改預設備份位置,可編輯/etc/gitlab/gitlab.rb配置檔案
vim /etc/gitlab/gitlab.rb
  • 找到gitlab_rails['backup_path']配置
# 設定備份路徑
gitlab_rails['backup_path'] = "/var/opt/gitlab/backups"
# 設定備份過期時間
gitlab_rails['backup_keep_time'] = 604800
  • 改完配置必須執行下面的命令,使配置生效
gitlab-ctl reconfigure
打包配置檔案
/etc/gitlab/gitlab.rb # 配置檔案須備份
/etc/gitlab/gitlab-secrets.json # 該檔案用於程式碼解密用,可以不備份,但會出現500錯誤,下面會有對應500錯誤的解決方案
/var/opt/gitlab/nginx/conf # nginx配置檔案
/etc/postfix/main.cfpostfix # 郵件配置備份
還原備份/如果是遷移,則在新伺服器執行
  • 停止服務
gitlab-ctl stop unicorn
gitlab-ctl stop sidekiq
  • 執行還原備份檔案
  • 1531878574為1531878574_gitlab_backup.tar檔案的_gitlab_backup.tar前面字元
gitlab-rake gitlab:backup:restore BACKUP=1531878574
啟動服務
gitlab-ctl start

gitlab升級

  • 升級只能從小版本升到畫最新的小版本,不能直接跨大版本升級,只有升級到最新的小版本,才能升級到下一個大版本,不能跳躍的最新的大版本升級
  • 如:當前的版本為8.8.5,當前的最新版本為11.3.4,當前該小版本的最新版本為8.13.4,下一個大版本為9.5.10,下一個大版本為10.8.7
  • 升級順序:先安裝8.13.4,然後安裝9.5.10,再安裝10.8.7,最後安裝11.3.4
  • 每次安裝完後記得訪問一下頁面,如果不正常,就需要執行下面的命令,使配置生效
gitlab-ctl reconfigure
  • 具體的升級命令
sudo EXTERNAL_URL="https://git.afcat.com.cn" yum install -y gitlab-ce-8.13.4 --nogpgcheck
sudo EXTERNAL_URL="https://git.afcat.com.cn" yum install -y gitlab-ce-8.17.7 --nogpgcheck
sudo EXTERNAL_URL="https://git.afcat.com.cn" yum install -y gitlab-ce-9.5.10 --nogpgcheck
sudo EXTERNAL_URL="https://git.afcat.com.cn" yum install -y gitlab-ce-10.8.7 --nogpgcheck
sudo EXTERNAL_URL="https://git.afcat.com.cn" yum install -y gitlab-ce-11.3.4 --nogpgcheck
  • 遇到500錯誤
gitlab-rails runner "Project.where.not(import_url:nil).each{|p|p.import_data.destroy if p.import_data}"
  • [ERROR] Error executing action run on resource 'ruby_block[directory resource: /var/opt/gitlab/git-data/repositories]
chmod -R 2770 /var/opt/gitlab/git-data

相關文章