1. 注意事項:
1,不同版本之間的注意事項(需要注意的是每個版本之間的問題官方提供了修復的方法,如果沒有修復的話,更新下一個版本會報錯,需要回退到上個版本修復后,才能成功升級下一個版本)
https://docs.gitlab.com/ee/update/index.html#1420
2,不同版本之間postgresql數據庫需要注意的事項及升級方法
https://docs.gitlab.com/omnibus/settings/database.html#upgrade-packaged-postgresql-server
3,gitlab不能跨版本間升級,需要根據官方提供的路線升級。
4,gitlab的數據備份恢復只能在相同版本之間操作。
2. 低版本升級最新版本及不同主機之間的實現方法
點擊查看代碼
本教程總結為yum rpm包安裝,源碼安裝方式需要自行總結。
一、當前版本信息收集:
1,騰訊雲主機,本地原主機gitlab版本升級。
2,確認安裝方式:
[root@BetaTWS1 ~]# rpm -qa gitlab-ce
gitlab-ce-12.3.5-ce.0.el7.x86_64
3,查看gitlab版本
cat /opt/gitlab/embedded/service/gitlab-rails/VERSION
4,檢查gitlab狀態
gitlab-rake gitlab:check SANITIZE=true --trace
gitlab-rake gitlab:check
gitlab-rake gitlab:check SANITIZE=true
5,#系統版本確認
[root@BetaTWS1 ~]# cat /etc/redhat-release
CentOS Linux release 7.8.2003 (Core)
6,#系統內存信息確認:
[root@BetaTWS1 ~]# free -h
total used free shared buff/cache available
Mem: 7.6G 2.9G 161M 206M 4.5G 4.2G
Swap: 0B 0B 0B
7,#內核版本確認
[root@BetaTWS1 ~]# uname -r
3.10.0-1127.el7.x86_64
8,服務停止前后端口檢查(服務器上存在其他服務防止端口被占用問題)
[root@VM-16-13-centos packages]# netstat -nlpt #gitlab啟動狀態當前端口
Active Internet connections (only servers)
Proto Recv-Q Send-Q Local Address Foreign Address State PID/Program name
tcp 0 0 0.0.0.0:28022 0.0.0.0:* LISTEN 1533/sshd
tcp 0 0 127.0.0.1:3000 0.0.0.0:* LISTEN 21774/grafana-serve
tcp 0 0 127.0.0.1:25 0.0.0.0:* LISTEN 1506/master
tcp 0 0 0.0.0.0:443 0.0.0.0:* LISTEN 21727/nginx: master
tcp 0 0 0.0.0.0:8060 0.0.0.0:* LISTEN 21727/nginx: master
tcp 0 0 127.0.0.1:9121 0.0.0.0:* LISTEN 20748/redis_exporte
tcp 0 0 127.0.0.1:9090 0.0.0.0:* LISTEN 20714/prometheus
tcp 0 0 127.0.0.1:9187 0.0.0.0:* LISTEN 21756/postgres_expo
tcp 0 0 127.0.0.1:9093 0.0.0.0:* LISTEN 20600/alertmanager
tcp 0 0 127.0.0.1:9100 0.0.0.0:* LISTEN 20691/node_exporter
tcp 0 0 127.0.0.1:9229 0.0.0.0:* LISTEN 21715/gitlab-workho
tcp 0 0 127.0.0.1:9168 0.0.0.0:* LISTEN 21734/puma 4.3.3.gi
tcp 0 0 0.0.0.0:80 0.0.0.0:* LISTEN 21727/nginx: master
tcp 0 0 127.0.0.1:8080 0.0.0.0:* LISTEN 21819/unicorn maste
tcp 0 0 127.0.0.1:8082 0.0.0.0:* LISTEN 21701/sidekiq 5.2.7
tcp 0 0 127.0.0.1:9236 0.0.0.0:* LISTEN 20619/gitaly
tcp6 0 0 ::1:25 :::* LISTEN 1506/master
tcp6 0 0 :::9094 :::* LISTEN 20600/alertmanager
tcp6 0 0 ::1:9168 :::* LISTEN 21734/puma 4.3.3.gi
[root@VM-16-13-centos packages]# gitlab-ctl stop
ok: down: alertmanager: 1s, normally up
ok: down: gitaly: 0s, normally up
ok: down: gitlab-exporter: 0s, normally up
ok: down: gitlab-workhorse: 1s, normally up
ok: down: grafana: 0s, normally up
ok: down: logrotate: 1s, normally up
ok: down: nginx: 0s, normally up
ok: down: node-exporter: 1s, normally up
ok: down: postgres-exporter: 0s, normally up
ok: down: postgresql: 0s, normally up
ok: down: prometheus: 1s, normally up
ok: down: redis: 0s, normally up
ok: down: redis-exporter: 1s, normally up
ok: down: sidekiq: 1s, normally up
ok: down: unicorn: 0s, normally up
[root@VM-16-13-centos packages]# gitlab-ctl status
down: alertmanager: 19s, normally up; run: log: (pid 1564) 235301s
down: gitaly: 18s, normally up; run: log: (pid 1581) 235301s
down: gitlab-exporter: 18s, normally up; run: log: (pid 1563) 235301s
down: gitlab-workhorse: 18s, normally up; run: log: (pid 1562) 235301s
down: grafana: 17s, normally up; run: log: (pid 1574) 235301s
down: logrotate: 17s, normally up; run: log: (pid 1560) 235301s
down: nginx: 16s, normally up; run: log: (pid 1575) 235301s
down: node-exporter: 16s, normally up; run: log: (pid 1571) 235301s
down: postgres-exporter: 15s, normally up; run: log: (pid 1559) 235301s
down: postgresql: 15s, normally up; run: log: (pid 1587) 235301s
down: prometheus: 15s, normally up; run: log: (pid 1561) 235301s
down: redis: 14s, normally up; run: log: (pid 1598) 235301s
down: redis-exporter: 14s, normally up; run: log: (pid 1565) 235301s
down: sidekiq: 13s, normally up; run: log: (pid 1580) 235301s
down: unicorn: 11s, normally up; run: log: (pid 1586) 235301s
[root@VM-16-13-centos packages]# netstat -nlpt
Active Internet connections (only servers)
Proto Recv-Q Send-Q Local Address Foreign Address State PID/Program name
tcp 0 0 0.0.0.0:28022 0.0.0.0:* LISTEN 1533/sshd
tcp 0 0 127.0.0.1:25 0.0.0.0:* LISTEN 1506/master
tcp6 0 0 ::1:25
#gitlab認證文件
/etc/gitlab/gitlab-secrets.json
#gitlab配置文件
/etc/gitlab/gitlab.rb
#默認情況下,GitLab 管理authorized_keys位於 git用戶主目錄中的文件。對於大多數安裝,這將位於 下 /var/opt/gitlab/.ssh/authorized_keys,但您可以使用以下命令authorized_keys在您的系統上找到:
getent passwd git | cut -d: -f6 | awk '{print $1"/.ssh/authorized_keys"}'
該authorized_keys文件包含允許訪問 GitLab 的用戶的所有公共 SSH 密鑰。但是,為了維護單一的事實來源,需要配置Geo以通過數據庫查找執行 SSH 指紋查找。
https://docs.gitlab.com/ee/update/plan_your_upgrade.html
在升級之前和之后,立即執行升級前和升級后檢查以確保 GitLab 的主要組件正常工作:
1.檢查一般配置:
sudo gitlab-rake gitlab:check
2.確認可以解密加密的數據庫值:
sudo gitlab-rake gitlab:doctor:secrets
3.在 GitLab UI 中,檢查:
用戶可以登錄。
項目列表可見。
可以訪問項目問題和合並請求。
用戶可以從 GitLab 克隆存儲庫。
用戶可以將提交推送到 GitLab
gitlab備份過程:
1,要求:
sudo yum install rsync
2,備份時間戳
備份存檔保存在文件中backup_path指定的 中 config/gitlab.yml。文件名是[TIMESTAMP]_gitlab_backup.tar,其中TIMESTAMP標識每個備份的創建時間,以及 GitLab 版本。如果您需要恢復 GitLab 並且有多個備份可用,則需要時間戳。
例如,如果備份名稱為1493107454_2018_04_25_10.6.4-ce_gitlab_backup.tar,則時間戳為1493107454_2018_04_25_10.6.4-ce
3,備份 GitLab
GitLab 提供了一個命令行界面來備份整個實例,包括:
Database
Attachments
Git repositories data
CI/CD job output logs
CI/CD job artifacts
LFS objects
Container Registry images
GitLab Pages content
Snippets
Group wikis
備份不包括:
Terraform state files
Package registry files
Mattermost data
3.1
GitLab 不備份任何配置文件、SSL 證書或系統文件。強烈建議您閱讀有關存儲配置文件的內容。https://docs.gitlab.com/ee/raketasks/backup_restore.html#storing-configuration-files
4,根據您的 GitLab 版本,如果您使用 Omnibus 包安裝了 GitLab,請使用以下命令:
GitLab 12.2 或更高版本:
sudo gitlab-backup create
GitLab 12.1 及更早版本:
gitlab-rake gitlab:backup:create
4.1備份策略選項
默認備份策略是使用 Linux 命令tar和gzip. 這在大多數情況下工作正常,但在數據快速變化時可能會導致問題。
當tar讀取數據時數據發生變化,file changed as we read it可能會發生錯誤,並導致備份過程失敗。為了解決這個問題,8.17 引入了一種名為copy. 該策略在調用tar和之前將數據文件復制到一個臨時位置gzip,以避免錯誤。
一個副作用是備份過程需要額外占用 1 倍的磁盤空間。該過程會盡最大努力在每個階段清理臨時文件,這樣問題就不會復雜化,但對於大型安裝來說,這可能是一個相當大的變化。這就是為什么該copy策略在 8.17 中不是默認設置的原因。
要使用該copy策略而不是默認的流策略,請STRATEGY=copy在 Rake 任務命令中指定 。例如:
sudo gitlab-backup create STRATEGY=copy #推薦備份方式
GitLab 12.1 及更早版本的用戶應改用該命令:
gitlab-rake gitlab:backup:create。
4.2備份文件名
如果您使用自定義備份文件名,則無法 限制備份的生命周期。
默認情況下,備份文件是根據上一個備份時間戳部分中的規范創建的。但是,您可以[TIMESTAMP]通過設置BACKUP 環境變量來覆蓋文件名的一部分。例如:
sudo gitlab-backup create BACKUP=dump
GitLab 12.1 及更早版本的用戶應改用該命令gitlab-rake gitlab:backup:create。
生成的文件名為dump_gitlab_backup.tar. 這對於使用 rsync 和增量備份的系統很有用,並且可以顯着提高傳輸速度。
4.2.1限制本地文件的備份生命周期(修剪舊備份)
如果您使用自定義文件名 進行備份,則本節中描述的過程將不起作用。
為防止定期備份使用所有磁盤空間,您可能需要為備份設置有限的生命周期。下次運行備份任務時,backup_keep_time會修剪早於 的備份。
此配置選項僅管理本地文件。GitLab 不會修剪存儲在第三方對象存儲中的舊文件, 因為用戶可能沒有列出和刪除文件的權限。建議您為對象存儲(例如AWS S3)配置適當的保留策略。
對於 Omnibus GitLab 軟件包:
編輯/etc/gitlab/gitlab.rb:
## Limit backup lifetime to 7 days - 604800 seconds
gitlab_rails['backup_keep_time'] = 604800
4.2.2備份存檔權限
GitLab ( 1393513186_2014_02_27_gitlab_backup.tar)創建的備份存檔默認擁有 owner/group git/git和 0600 權限。這是為了避免其他系統用戶讀取 GitLab 數據。如果您需要備份存檔具有不同的權限,則可以使用該archive_permissions 設置。
對於 Omnibus GitLab 軟件包:
編輯/etc/gitlab/gitlab.rb:
gitlab_rails['backup_archive_permissions'] = 0644 # Makes the backup archives world-readable
4.2.3配置 cron 進行每日備份
以下 cron 作業不會備份您的 GitLab 配置文件 或SSH 主機密鑰。
您可以安排一個 cron 作業來備份您的存儲庫和 GitLab 元數據。
對於 Omnibus GitLab 軟件包:
為root用戶編輯 crontab :
sudo su -
crontab -e
在那里,添加以下行以安排每天凌晨 2 點的備份:
0 2 * * * /opt/gitlab/bin/gitlab-backup create CRON=1
CRON=1如果沒有任何錯誤,環境設置會指示備份腳本隱藏所有進度輸出。建議這樣做以減少 cron 垃圾郵件。
4.3確認檔案可以轉移
為確保生成的存檔可通過 rsync 傳輸,您可以設置該GZIP_RSYNCABLE=yes 選項。這會將--rsyncable選項設置為gzip,這僅在與設置備份文件名選項結合使用時才有用。
請注意,不能保證--rsyncablein 選項在gzip所有發行版上都可用。要驗證它在您的發行版中是否可用,請運行 gzip --help或查閱手冊頁。
sudo gitlab-backup create BACKUP=dump GZIP_RSYNCABLE=yes
GitLab 12.1 及更早版本的用戶應改用該命令:
gitlab-rake gitlab:backup:create。
4.4從備份中排除特定目錄
您可以通過添加環境變量從備份中排除特定目錄SKIP,其值是以下選項的逗號分隔列表:
db (數據庫)
uploads (附件)
builds (CI 作業輸出日志)
artifacts (CI 作業工件)
lfs (LFS 對象)
registry (容器注冊表鏡像)
pages (頁面內容)
repositories (Git 存儲庫數據)
所有維基都作為repositories組的一部分進行備份。備份期間將跳過不存在的 wiki。
當備份和恢復頭盔圖表,有一個附加選項packages,它是指由GitLab管理的任何套餐包注冊表。有關詳細信息,請參閱命令行參數。
所有維基都作為repositories組的一部分進行備份。備份期間將跳過不存在的 wiki。
對於 Omnibus GitLab 軟件包:
sudo gitlab-backup create SKIP=db,uploads
備份相關文件目錄
/var/opt/gitlab/.ssh/authorized_keys
/etc/gitlab/gitlab.rb
/etc/gitlab/gitlab-secrets.json
+++++++++++++++++++++++++++++++++++++
https://docs.gitlab.com/omnibus/update/convert_to_omnibus.html
升級方式:
gitlab-ctl reconfigure #加載配置
如果遷移了/home/git/gitlab-shell/.gitlab_shell_secret,還需要重啟 Gitaly:
sudo gitlab-ctl restart gitaly
gitlab-ctl start# 啟動所有 gitlab 組件
gitlab-ctl stop # 停止所有 gitlab 組件
## 配置GitLab
gitlab-ctl reconfigure
## 啟動所有 gitlab 組件
gitlab-ctl start
## 停止所有 gitlab 組件
gitlab-ctl stop
## 重啟所有 gitlab 組件
gitlab-ctl restart
## 查看服務狀態
gitlab-ctl status
## 檢查GitLab
gitlab-rake gitlab:check SANITIZE=true --trace
## 查看日志
gitlab-ctl tail
#添加yum源:
vi /etc/yum.repos.d/gitlab-ce.repo
//添加如下內容
[gitlab-ce]
name=Gitlab CE Repository
baseurl=https://mirrors.tuna.tsinghua.edu.cn/gitlab-ce/yum/el$releasever/
gpgcheck=0
enabled=1
## 更新本地yum緩存
yum makecache fast
yum --showduplicates list gitlab-ce
當前gitlab版本號:12.3.5
12.1.17 -> 12.10.14 -> 13.0.14 -> 13.1.11 -> 13.8.8 -> latest 13.12.Z -> latest 14.0.Z -> latest 14.Y.Z
sudo yum install gitlab-ce-12.10.14-ce.0.el7.x86_64
sudo yum install gitlab-ce-13.0.14-ce.0.el7.x86_64
sudo yum install gitlab-ce-13.1.11-ce.0.el7.x86_64
sudo yum install gitlab-ce-13.8.8-ce.0.el7.x86_64
curl -s https://packages.gitlab.com/install/repositories/gitlab/gitlab-ce/script.rpm.sh | sudo bash
curl -s https://packages.gitlab.com/install/repositories/gitlab/gitlab-ce/script.rpm.sh | sudo bash
curl -s https://packages.gitlab.com/install/repositories/gitlab/gitlab-ce/script.rpm.sh | sudo bash
curl -s https://packages.gitlab.com/install/repositories/gitlab/gitlab-ce/script.rpm.sh | sudo bash
+++++++++++++++++++++++++++++++++++++++++++++++++++++++
https://docs.gitlab.com/ee/raketasks/backup_restore.html#restore-gitlab
gitlab安裝恢復過程:
恢復先決條件:
1,在執行還原之前,您需要有一個有效的 GitLab 安裝
2,要恢復備份,您必須恢復/etc/gitlab/gitlab-secrets.json (對於 Omnibus 包)或/home/git/gitlab/.secret(對於從源安裝)。此文件包含數據庫加密密鑰、 CI/CD 變量和用於雙因素身份驗證的變量。
#不同主機時需要恢復 TLS 密鑰、證書或 SSH 主機密鑰
3,你可以通過打開你的sshd_config文件來找到你的主機密鑰(在我的 Ubuntu 12.04 盒子上/etc/ssh/sshd_config)。在配置文件中查找HostKey條目。這些條目將告訴您主機密鑰文件所在的位置。您應該能夠將這些文件復制到新服務器並更新新服務器sshd_config以指向復制的密鑰(或者只是覆蓋新服務器上已經存在的文件)。
默認/etc/ssh/ssh_host_key用於協議版本
1、和 /etc/ssh/ssh_host_dsa_key、/etc/ssh/ssh_host_ecdsa_key以及/etc/ssh/ssh_host_rsa_key協議版本
2。請注意,如果文件是組/世界可訪問的,sshd(8) 將拒絕使用該文件。可以有多個主機密鑰文件。“rsa1”密鑰用於版本 1,“dsa”、“ecdsa”或“rsa”用於 SSH 協議的版本 2。
gitlab備份恢復:
1,此過程假設:
您已經安裝了與創建備份完全相同的 GitLab Omnibus版本和類型 (CE/EE)。
你sudo gitlab-ctl reconfigure至少跑過一次。
GitLab 正在運行。如果沒有,請使用sudo gitlab-ctl start.
2,首先確保您的備份 tar 文件位於gitlab.rb配置中描述的備份目錄中 gitlab_rails['backup_path']。默認值為 /var/opt/gitlab/backups. 它需要歸git用戶所有。
sudo cp 11493107454_2018_04_25_10.6.4-ce_gitlab_backup.tar /var/opt/gitlab/backups/
sudo chown git.git /var/opt/gitlab/backups/11493107454_2018_04_25_10.6.4-ce_gitlab_backup.tar
3,停止連接到數據庫的進程。讓 GitLab 的其余部分保持運行:
sudo gitlab-ctl stop puma
sudo gitlab-ctl stop sidekiq
4,# Verify
sudo gitlab-ctl status
5,接下來,恢復備份,指定要恢復的備份的時間戳:
# This command will overwrite the contents of your GitLab database!
sudo gitlab-backup restore BACKUP=11493107454_2018_04_25_10.6.4-ce
6,注意事項
GitLab 12.1 及更早版本的用戶應改用該命令gitlab-rake gitlab:backup:restore。
gitlab-rake gitlab:backup:restore沒有在您的注冊表目錄上設置正確的文件系統權限。這是一個已知問題。在 GitLab 12.2 或更高版本中,您可以使用gitlab-backup restore來避免此問題。
如果您的備份 tar 文件和已安裝的 GitLab 版本之間存在 GitLab 版本不匹配,則恢復命令將中止並顯示錯誤消息。安裝正確的 GitLab 版本,然后重試。
當您的安裝使用 PgBouncer 時,restore 命令需要額外的參數,無論是出於性能原因還是與 Patroni 集群一起使用時。
7,接下來,/etc/gitlab/gitlab-secrets.json如有必要,恢復, 如前所述。
重新配置、重啟並檢查 GitLab:
sudo gitlab-ctl reconfigure
sudo gitlab-ctl restart
sudo gitlab-rake gitlab:check SANITIZE=true
8,在 GitLab 13.1 及更高版本中,檢查數據庫值可以被解密, 尤其是/etc/gitlab/gitlab-secrets.json在恢復時,或者如果不同的服務器是恢復的目標。
sudo gitlab-rake gitlab:doctor:secrets
3. 同主機低版本升級到最新版本方法:
3.1 當前版本信息收集:
1,騰訊雲主機,本地原主機gitlab版本升級。
2,確認安裝方式:
[root@BetaTWS1 ~]# rpm -qa gitlab-ce
gitlab-ce-12.3.5-ce.0.el7.x86_64
3,查看gitlab版本
cat /opt/gitlab/embedded/service/gitlab-rails/VERSION
4,檢查gitlab狀態
gitlab-rake gitlab:check SANITIZE=true --trace
gitlab-rake gitlab:check
gitlab-rake gitlab:check SANITIZE=true
5,#系統版本確認
[root@BetaTWS1 ~]# cat /etc/redhat-release
CentOS Linux release 7.8.2003 (Core)
6,#系統內存信息確認:
[root@BetaTWS1 ~]# free -h
total used free shared buff/cache available
Mem: 7.6G 2.9G 161M 206M 4.5G 4.2G
Swap: 0B 0B 0B
7,#內核版本確認
[root@BetaTWS1 ~]# uname -r
3.10.0-1127.el7.x86_64
8,服務停止前后端口檢查(服務器上存在其他服務防止端口被占用問題)
[root@VM-16-13-centos packages]# netstat -nlpt #gitlab啟動狀態當前端口
Active Internet connections (only servers)
Proto Recv-Q Send-Q Local Address Foreign Address State PID/Program name
tcp 0 0 0.0.0.0:28022 0.0.0.0:* LISTEN 1533/sshd
tcp 0 0 127.0.0.1:3000 0.0.0.0:* LISTEN 21774/grafana-serve
tcp 0 0 127.0.0.1:25 0.0.0.0:* LISTEN 1506/master
tcp 0 0 0.0.0.0:443 0.0.0.0:* LISTEN 21727/nginx: master
tcp 0 0 0.0.0.0:8060 0.0.0.0:* LISTEN 21727/nginx: master
tcp 0 0 127.0.0.1:9121 0.0.0.0:* LISTEN 20748/redis_exporte
tcp 0 0 127.0.0.1:9090 0.0.0.0:* LISTEN 20714/prometheus
tcp 0 0 127.0.0.1:9187 0.0.0.0:* LISTEN 21756/postgres_expo
tcp 0 0 127.0.0.1:9093 0.0.0.0:* LISTEN 20600/alertmanager
tcp 0 0 127.0.0.1:9100 0.0.0.0:* LISTEN 20691/node_exporter
tcp 0 0 127.0.0.1:9229 0.0.0.0:* LISTEN 21715/gitlab-workho
tcp 0 0 127.0.0.1:9168 0.0.0.0:* LISTEN 21734/puma 4.3.3.gi
tcp 0 0 0.0.0.0:80 0.0.0.0:* LISTEN 21727/nginx: master
tcp 0 0 127.0.0.1:8080 0.0.0.0:* LISTEN 21819/unicorn maste
tcp 0 0 127.0.0.1:8082 0.0.0.0:* LISTEN 21701/sidekiq 5.2.7
tcp 0 0 127.0.0.1:9236 0.0.0.0:* LISTEN 20619/gitaly
tcp6 0 0 ::1:25 :::* LISTEN 1506/master
tcp6 0 0 :::9094 :::* LISTEN 20600/alertmanager
tcp6 0 0 ::1:9168 :::* LISTEN 21734/puma 4.3.3.gi
[root@VM-16-13-centos packages]# gitlab-ctl stop
ok: down: alertmanager: 1s, normally up
ok: down: gitaly: 0s, normally up
ok: down: gitlab-exporter: 0s, normally up
ok: down: gitlab-workhorse: 1s, normally up
ok: down: grafana: 0s, normally up
ok: down: logrotate: 1s, normally up
ok: down: nginx: 0s, normally up
ok: down: node-exporter: 1s, normally up
ok: down: postgres-exporter: 0s, normally up
ok: down: postgresql: 0s, normally up
ok: down: prometheus: 1s, normally up
ok: down: redis: 0s, normally up
ok: down: redis-exporter: 1s, normally up
ok: down: sidekiq: 1s, normally up
ok: down: unicorn: 0s, normally up
[root@VM-16-13-centos packages]# gitlab-ctl status
down: alertmanager: 19s, normally up; run: log: (pid 1564) 235301s
down: gitaly: 18s, normally up; run: log: (pid 1581) 235301s
down: gitlab-exporter: 18s, normally up; run: log: (pid 1563) 235301s
down: gitlab-workhorse: 18s, normally up; run: log: (pid 1562) 235301s
down: grafana: 17s, normally up; run: log: (pid 1574) 235301s
down: logrotate: 17s, normally up; run: log: (pid 1560) 235301s
down: nginx: 16s, normally up; run: log: (pid 1575) 235301s
down: node-exporter: 16s, normally up; run: log: (pid 1571) 235301s
down: postgres-exporter: 15s, normally up; run: log: (pid 1559) 235301s
down: postgresql: 15s, normally up; run: log: (pid 1587) 235301s
down: prometheus: 15s, normally up; run: log: (pid 1561) 235301s
down: redis: 14s, normally up; run: log: (pid 1598) 235301s
down: redis-exporter: 14s, normally up; run: log: (pid 1565) 235301s
down: sidekiq: 13s, normally up; run: log: (pid 1580) 235301s
down: unicorn: 11s, normally up; run: log: (pid 1586) 235301s
[root@VM-16-13-centos packages]# netstat -nlpt
Active Internet connections (only servers)
Proto Recv-Q Send-Q Local Address Foreign Address State PID/Program name
tcp 0 0 0.0.0.0:28022 0.0.0.0:* LISTEN 1533/sshd
tcp 0 0 127.0.0.1:25 0.0.0.0:* LISTEN 1506/master
tcp6 0 0 ::1:25
3.2 本機升級理論只需要rpm安裝后即可,不牽扯恢復,為了安全期間,還是需要備份。
由於網絡原因只能采用離線方式安裝:
[root@VM-16-13-centos packages]# ll
total 3942368
-rw-r--r-- 1 root root 797740292 Nov 8 18:25 gitlab-ce-12.10.14-ce.0.el7.x86_64.rpm
-rw-r--r-- 1 root root 728656981 Nov 8 18:25 gitlab-ce-13.0.14-ce.0.el7.x86_64.rpm
-rw-r--r-- 1 root root 736750197 Nov 8 18:29 gitlab-ce-13.1.11-ce.0.el7.x86_64.rpm
-rw-r--r-- 1 root root 867568698 Nov 8 18:30 gitlab-ce-13.8.8-ce.0.el7.x86_64.rpm
-rw-r--r-- 1 root root 906240064 Nov 8 18:32 gitlab-ce-13.12.15-ce.0.el7.x86_64.rpm
-rw-r--r-- 1 root root 911634590 Nov 9 16:35 gitlab-ce-14.0.12-ce.0.el7.x86_64.rpm
-rw-r--r-- 1 root root 954527068 Nov 9 16:36 gitlab-ce-14.4.2-ce.0.el7.x86_64.rpm
#md5校驗
[root@VM-16-13-centos packages]# md5sum gitlab-ce-12.10.14-ce.0.el7.x86_64.rpm
78a9eb82f598c516676b45e567d3b478 gitlab-ce-12.10.14-ce.0.el7.x86_64.rpm
#備份數據:
gitlab-backup create STRATEGY=copy
#默認備份目錄:
/var/opt/gitlab/backups/
備份相關文件目錄
/var/opt/gitlab/.ssh/authorized_keys
/etc/gitlab/gitlab.rb
/etc/gitlab/gitlab-secrets.json
#在線安裝添加yum源:
vi /etc/yum.repos.d/gitlab-ce.repo
//添加如下內容
[gitlab-ce]
name=Gitlab CE Repository
baseurl=https://mirrors.tuna.tsinghua.edu.cn/gitlab-ce/yum/el$releasever/
gpgcheck=0
enabled=1
# 更新本地yum緩存
yum makecache fast
yum --showduplicates list gitlab-ce
#離線安裝:
官方下載地址:
https://packages.gitlab.com/app/gitlab/gitlab-ce/search?q=10.1.4
#每次升級后確認配置文件內容存在,如果不存在替換之前的備份文件:
]# egrep -v "^$|^#" /etc/gitlab/gitlab.rb
#單個服務問題排查思路
grep "postgres\|pg" /etc/gitlab/gitlab.rb #過濾關於postgres配置信息
gitlab-ctl restart postgresql #單獨重啟postgresql
gitlab-ctl tail postgresql #單獨查看postgresql日志
# 查看服務狀態
gitlab-ctl status
gitlab-rake gitlab:check SANITIZE=true --trace
gitlab-rake gitlab:check
gitlab-rake gitlab:check SANITIZE=true
當前gitlab版本號:12.3.5
官方路線:
12.1.17-> 12.10.14 -> 13.0.14 -> 13.1.11 -> 13.8.8 -> latest 13.12.Z -> latest 14.0.Z -> latest 14.Y.Z
我的路線
12.3.5 -> 12.10.14 -> 13.0.14 -> 13.1.11 -> 13.8.8 -> 13.12.15 -> 14.0.12 -> 14.4.2
3.3 12.3.5 -> 12.10.14升級
升級前檢查:
gitlab-ctl reconfigure
gitlab-ctl stop
gitlab-ctl status
[root@BetaTWS1 ~]# rpm -qa gitlab-ce
gitlab-ce-12.3.5-ce.0.el7.x86_64
[root@BetaTWS1 ~]# rpm -evh `rpm -qa gitlab-ce`
#安裝完成后,不管成功或者失敗,一定要淡定,慢慢解決問題,不要着急。
[root@BetaTWS1 ~]# rpm -ivh gitlab-ce-12.10.14-ce.0.el7.x86_64.rpm
確認配置文件內容存在,如果不存在替換之前的備份文件:
]# cd /etc/gitlab/
]# egrep -v "^$|^#" gitlab.rb
gitlab-ctl start
gitlab-ctl status
gitlab-ctl reconfigure
安裝后可能會有部分服務啟動失敗,等待5分鍾后,執行如下命令:
gitlab-ctl restart
全部啟動啟動成功
#確認當前版本及服務狀態:
[root@VM-16-13-centos gitlab]# rpm -qa gitlab-ce
gitlab-ce-12.10.14-ce.0.el7.x86_64
[root@VM-16-13-centos gitlab]# cat /opt/gitlab/embedded/service/gitlab-rails/VERSION
12.10.14
[root@VM-16-13-centos gitlab]# gitlab-ctl status
run: alertmanager: (pid 20600) 623s; run: log: (pid 1564) 234492s
run: gitaly: (pid 20610) 622s; run: log: (pid 1581) 234492s
run: gitlab-exporter: (pid 21734) 517s; run: log: (pid 1563) 234492s
run: gitlab-workhorse: (pid 21715) 518s; run: log: (pid 1562) 234492s
run: grafana: (pid 21774) 515s; run: log: (pid 1574) 234492s
run: logrotate: (pid 20667) 621s; run: log: (pid 1560) 234492s
run: nginx: (pid 21727) 518s; run: log: (pid 1575) 234492s
run: node-exporter: (pid 20691) 620s; run: log: (pid 1571) 234492s
run: postgres-exporter: (pid 21756) 515s; run: log: (pid 1559) 234492s
run: postgresql: (pid 20712) 619s; run: log: (pid 1587) 234492s
run: prometheus: (pid 20714) 618s; run: log: (pid 1561) 234492s
run: redis: (pid 20743) 618s; run: log: (pid 1598) 234492s
run: redis-exporter: (pid 20748) 618s; run: log: (pid 1565) 234492s
run: sidekiq: (pid 21701) 520s; run: log: (pid 1580) 234492s
run: unicorn: (pid 22994) 354s; run: log: (pid 1586) 234492s
頁面訪問驗證ok
xxxx.gitlab.com
3.4.1 當前版本需要執行如下命令否則升級到下一版本會報數據庫版本兼容問題。(踩坑后回滾回來執行如下操作后重新升級解決)
https://docs.gitlab.com/omnibus/settings/database.html#upgrade-packaged-postgresql-server
]# gitlab-ctl pg-upgrade
]# gitlab-psql -c "SELECT relname, last_analyze, last_autoanalyze FROM pg_stat_user_tables WHERE last_analyze IS NULL AND last_autoanalyze IS NULL;"
]# sudo gitlab-psql -c 'SET statement_timeout = 0; ANALYZE VERBOSE;'
3.5 12.10.14 -> 13.0.14 升級:
升級前檢查:
[root@VM-16-13-centos gitlab]# rpm -qa gitlab-ce
gitlab-ce-12.10.14-ce.0.el7.x86_64
## 查看服務狀態
gitlab-ctl status
gitlab-rake gitlab:check SANITIZE=true --trace
gitlab-rake gitlab:check
gitlab-rake gitlab:check SANITIZE=true
#停止服務及確認服務狀態
gitlab-ctl stop
gitlab-ctl status
#卸載舊包
[root@VM-16-13-centos packages]# rpm -qa gitlab-ce
gitlab-ce-12.10.14-ce.0.el7.x86_64
[root@VM-16-13-centos packages]# rpm -e `rpm -qa gitlab-ce`
Preparing... ################################# [100%]
Cleaning up / removing...
1:gitlab-ce-12.10.14-ce.0.el7 ################################# [100%]
#安裝過程時間較長,耐心等待:
packages]# rpm -ivh gitlab-ce-13.0.14-ce.0.el7.x86_64.rpm
#部分服務啟動失敗,等待5分鍾后執行如下命令:
[root@VM-16-13-centos packages]# gitlab-ctl restart
ok: run: alertmanager: (pid 29869) 0s
ok: run: gitaly: (pid 29881) 0s
ok: run: gitlab-exporter: (pid 29889) 0s
ok: run: gitlab-workhorse: (pid 29901) 1s
ok: run: grafana: (pid 29915) 0s
ok: run: logrotate: (pid 29933) 0s
ok: run: nginx: (pid 29939) 1s
ok: run: node-exporter: (pid 29943) 0s
ok: run: postgres-exporter: (pid 29953) 1s
timeout: down: postgresql: 0s, normally up, want up
ok: run: prometheus: (pid 30153) 0s
ok: run: redis: (pid 30165) 0s
ok: run: redis-exporter: (pid 30170) 1s
ok: run: sidekiq: (pid 30177) 0s
ok: run: unicorn: (pid 30183) 1s
#加載配置:
gitlab-ctl reconfigure
再執行:
gitlab-ctl status
gitlab-ctl restart
5分鍾后postgresql依然啟動失敗:
gitlab-ctl tail postgresql
#看日志版本問題導致
[root@VM-16-13-centos gitlab]# gitlab-ctl tail postgresql
==> /var/log/gitlab/postgresql/current <==
2021-11-09_02:43:48.27844 FATAL: database files are incompatible with server
2021-11-09_02:43:48.27846 DETAIL: The data directory was initialized by PostgreSQL version 10, which is not compatible with this version 11.7.
2021-11-09_02:43:49.31173 FATAL: database files are incompatible with server
2021-11-09_02:43:49.31175 DETAIL: The data directory was initialized by PostgreSQL version 10, which is not compatible with this version 11.7.
]# cat /var/opt/gitlab/postgresql/data/PG_VERSION
10
]# /opt/gitlab/embedded/bin/pg_ctl --version
pg_ctl (PostgreSQL) 11.7
]# /opt/gitlab/embedded/bin/psql --version
psql (PostgreSQL) 11.7
grep "postgres\|pg" /etc/gitlab/gitlab.rb
postgresql命令詳解:
https://www.postgresql.org/docs/11/app-initdb.html
postgresql升級方法:
https://docs.gitlab.com/omnibus/settings/database.html#upgrade-packaged-postgresql-server
gitlab-ctl restart postgresql
13.0.14 升級遇到了postgresql版本11.7不兼容問題,我的解決方法是回滾到上一個版本12.10.14確保回滾成功,服務啟動,頁面訪問正常。
然后按照官方文檔執行https://docs.gitlab.com/omnibus/settings/database.html#upgrade-packaged-postgresql-server:
gitlab-ctl pg-upgrade
gitlab-psql -c "SELECT relname, last_analyze, last_autoanalyze FROM pg_stat_user_tables WHERE last_analyze IS NULL AND last_autoanalyze IS NULL;"
sudo gitlab-psql -c 'SET statement_timeout = 0; ANALYZE VERBOSE;'
然后再升級13.0.14 后啟動成功:
[root@VM-16-13-centos packages]# gitlab-ctl status
run: alertmanager: (pid 11690) 475s; run: log: (pid 1564) 250062s
run: gitaly: (pid 11705) 474s; run: log: (pid 1581) 250062s
run: gitlab-exporter: (pid 11721) 474s; run: log: (pid 1563) 250062s
run: gitlab-workhorse: (pid 11725) 474s; run: log: (pid 1562) 250062s
run: grafana: (pid 11742) 473s; run: log: (pid 1574) 250062s
run: logrotate: (pid 11755) 473s; run: log: (pid 1560) 250062s
run: nginx: (pid 11762) 472s; run: log: (pid 1575) 250062s
run: node-exporter: (pid 11767) 472s; run: log: (pid 1571) 250062s
run: postgres-exporter: (pid 11781) 472s; run: log: (pid 1559) 250062s
run: postgresql: (pid 11791) 471s; run: log: (pid 1587) 250062s
run: prometheus: (pid 11793) 471s; run: log: (pid 1561) 250062s
run: puma: (pid 11894) 470s; run: log: (pid 10587) 688s
run: redis: (pid 11899) 470s; run: log: (pid 1598) 250062s
run: redis-exporter: (pid 11904) 469s; run: log: (pid 1565) 250062s
run: sidekiq: (pid 11911) 469s; run: log: (pid 1580) 250062s
[root@VM-16-13-centos packages]# rpm -qa gitlab-ce
gitlab-ce-13.0.14-ce.0.el7.x86_64
[root@VM-16-13-centos packages]# cat /opt/gitlab/embedded/service/gitlab-rails/VERSION
13.0.14
頁面訪問驗證ok
xxxx.gitlab.com
3.6 13.0.14 -> 13.1.11 升級
升級前檢查:
[root@VM-16-13-centos gitlab]# rpm -qa gitlab-ce
gitlab-ce-12.10.14-ce.0.el7.x86_64
## 查看服務狀態
gitlab-ctl status
gitlab-rake gitlab:check SANITIZE=true --trace
gitlab-rake gitlab:check
gitlab-rake gitlab:check SANITIZE=true
#停止服務及確認服務狀態
gitlab-ctl stop
gitlab-ctl status
#卸載舊包
[root@VM-16-13-centos packages]# rpm -qa gitlab-ce
gitlab-ce-13.0.14-ce.0.el7.x86_64
[root@VM-16-13-centos packages]# rpm -evh `rpm -qa gitlab-ce`
#安裝過程時間較長,耐心等待:
packages]# rpm -ivh gitlab-ce-13.1.11-ce.0.el7.x86_64.rpm
...
中間內容忽略
...
Running handlers:
Running handlers complete
Chef Client finished, 100/1131 resources updated in 53 seconds
gitlab Reconfigured!
Restarting previously running GitLab services
_______ __ __ __
/ ____(_) /_/ / ____ _/ /_
/ / __/ / __/ / / __ `/ __ \
/ /_/ / / /_/ /___/ /_/ / /_/ /
\____/_/\__/_____/\__,_/_.___/
Upgrade complete! If your GitLab server is misbehaving try running
sudo gitlab-ctl restart
before anything else.
If you need to roll back to the previous version you can use the database
backup made during the upgrade (scroll up for the filename).
[root@VM-16-13-centos packages]# gitlab-ctl status
down: alertmanager: 262s, normally up; run: log: (pid 15949) 52s
run: gitaly: (pid 15988) 49s; run: log: (pid 15566) 93s
down: gitlab-exporter: 260s, normally up; run: log: (pid 15934) 54s
run: gitlab-workhorse: (pid 15965) 51s; run: log: (pid 15907) 56s
down: grafana: 259s, normally up; run: log: (pid 15955) 51s
down: logrotate: 259s, normally up; run: log: (pid 15926) 55s
down: nginx: 259s, normally up; run: log: (pid 15923) 56s
down: node-exporter: 258s, normally up; run: log: (pid 15930) 55s
down: postgres-exporter: 258s, normally up; run: log: (pid 15952) 52s
run: postgresql: (pid 15024) 108s; run: log: (pid 15592) 92s
down: prometheus: 257s, normally up; run: log: (pid 15945) 53s
down: puma: 256s, normally up; run: log: (pid 15901) 57s
run: redis: (pid 15033) 108s; run: log: (pid 15546) 94s
down: redis-exporter: 256s, normally up; run: log: (pid 15942) 54s
down: sidekiq: 252s, normally up; run: log: (pid 15904) 57s
#加載配置:
gitlab-ctl reconfigure
再執行:
gitlab-ctl status
gitlab-ctl restart
#13.1.11這個版本很順利
[root@VM-16-13-centos packages]# gitlab-ctl restart
ok: run: alertmanager: (pid 16511) 0s
ok: run: gitaly: (pid 16524) 0s
ok: run: gitlab-exporter: (pid 16539) 0s
ok: run: gitlab-workhorse: (pid 16549) 1s
ok: run: grafana: (pid 16561) 0s
ok: run: logrotate: (pid 16581) 1s
ok: run: nginx: (pid 16587) 0s
ok: run: node-exporter: (pid 16594) 0s
ok: run: postgres-exporter: (pid 16600) 0s
ok: run: postgresql: (pid 16626) 0s
ok: run: prometheus: (pid 16628) 1s
ok: run: puma: (pid 16722) 0s
ok: run: redis: (pid 16727) 1s
ok: run: redis-exporter: (pid 16732) 0s
ok: run: sidekiq: (pid 16741) 1s
[root@VM-16-13-centos packages]# gitlab-ctl status
run: alertmanager: (pid 16511) 27s; run: log: (pid 15949) 194s
run: gitaly: (pid 16524) 26s; run: log: (pid 15566) 235s
run: gitlab-exporter: (pid 16539) 26s; run: log: (pid 15934) 196s
run: gitlab-workhorse: (pid 16549) 26s; run: log: (pid 15907) 198s
run: grafana: (pid 16561) 25s; run: log: (pid 15955) 193s
run: logrotate: (pid 16581) 25s; run: log: (pid 15926) 197s
run: nginx: (pid 16587) 24s; run: log: (pid 15923) 198s
run: node-exporter: (pid 16594) 24s; run: log: (pid 15930) 197s
run: postgres-exporter: (pid 16600) 23s; run: log: (pid 15952) 194s
run: postgresql: (pid 16626) 23s; run: log: (pid 15592) 234s
run: prometheus: (pid 16628) 23s; run: log: (pid 15945) 195s
run: puma: (pid 16722) 22s; run: log: (pid 15901) 199s
run: redis: (pid 16727) 22s; run: log: (pid 15546) 236s
run: redis-exporter: (pid 16732) 21s; run: log: (pid 15942) 196s
run: sidekiq: (pid 16741) 21s; run: log: (pid 15904) 199s
#版本確認:
[root@VM-16-13-centos packages]# rpm -qa gitlab-ce
gitlab-ce-13.1.11-ce.0.el7.x86_64
[root@VM-16-13-centos packages]# cat /opt/gitlab/embedded/service/gitlab-rails/VERSION
13.1.11
使用/help頁面確認版本 ok:
https://git-test.betawm.com/help
3.7 13.1.11 -> 13.8.8 升級:
升級前檢查:
[root@VM-16-13-centos gitlab]# rpm -qa gitlab-ce
gitlab-ce-12.10.14-ce.0.el7.x86_64
## 查看服務狀態
gitlab-ctl status
gitlab-rake gitlab:check SANITIZE=true --trace
gitlab-rake gitlab:check
gitlab-rake gitlab:check SANITIZE=true
#停止服務及確認服務狀態
gitlab-ctl stop
gitlab-ctl status
[root@VM-16-13-centos packages]# rpm -qa gitlab-ce
gitlab-ce-13.1.11-ce.0.el7.x86_64
#安裝過程時間較長,耐心等待:
[root@VM-16-13-centos packages]# rpm -evh `rpm -qa gitlab-ce`
Preparing... ################################# [100%]
Cleaning up / removing...
1:gitlab-ce-13.1.11-ce.0.el7 ################################# [100%]
[root@VM-16-13-centos packages]# rpm -ivh gitlab-ce-13.8.8-ce.0.el7.x86_64.rpm
Preparing... ################################# [100%]
Updating / installing...
1:gitlab-ce-13.8.8-ce.0.el7 ################################# [100%]
Checking PostgreSQL executables:
...
中間內容忽略
...
== 20200527211605 AddLockedToCiPipelines: migrating ===========================
-- add_column(:ci_pipelines, :locked, :integer, {:limit=>2, :null=>false, :default=>0})
-> 0.0010s
== 20200527211605 AddLockedToCiPipelines: migrated (0.0022s) ==================
== 20200601120434 MigrateAllMergeRequestUserMentionsToDb: migrating ===========
STDERR:
---- End output of "bash" "/tmp/chef-script20211109-20450-1ppno70" ----
Ran "bash" "/tmp/chef-script20211109-20450-1ppno70" returned 1
Running handlers complete
Chef Infra Client failed. 29 resources updated in 26 seconds
Running reconfigure: NOT OK
== Fatal error ==
Something went wrong during final reconfiguration, please check the output
== Reverting ==
ok: down: postgresql: 0s, normally up
Symlink correct version of binaries: OK
ok: run: postgresql: (pid 20999) 0s
== Reverted ==
== Reverted to 11.11. Please check output for what went wrong ==
Toggling deploy page:rm -f /opt/gitlab/embedded/service/gitlab-rails/public/index.html
Toggling deploy page: OK
Toggling services:ok: run: alertmanager: (pid 21017) 1s
ok: run: gitaly: (pid 21025) 0s
ok: run: gitlab-exporter: (pid 21040) 0s
ok: run: grafana: (pid 21056) 1s
ok: run: logrotate: (pid 21066) 0s
ok: run: node-exporter: (pid 21074) 1s
ok: run: postgres-exporter: (pid 21079) 0s
ok: run: prometheus: (pid 21089) 1s
ok: run: redis-exporter: (pid 21096) 0s
ok: run: sidekiq: (pid 21103) 1s
Toggling services: OK
Checking if a newer PostgreSQL version is available and attempting automatic upgrade to it: NOT OK
Error ensuring PostgreSQL is updated. Please check the logs
warning: %posttrans(gitlab-ce-13.8.8-ce.0.el7.x86_64) scriptlet failed, exit status 1
#看輸出有點恐慌呀!!!
#加載配置:
gitlab-ctl reconfigure
再執行:
gitlab-ctl status
gitlab-ctl restart
#重啟后服務順利啟動
[root@VM-16-13-centos packages]# gitlab-ctl restart
ok: run: alertmanager: (pid 21567) 1s
ok: run: gitaly: (pid 21577) 0s
ok: run: gitlab-exporter: (pid 21600) 1s
ok: run: gitlab-workhorse: (pid 21603) 0s
ok: run: grafana: (pid 21627) 1s
ok: run: logrotate: (pid 21640) 0s
ok: run: nginx: (pid 21652) 1s
ok: run: node-exporter: (pid 21658) 0s
ok: run: postgres-exporter: (pid 21663) 0s
ok: run: postgresql: (pid 21710) 0s
ok: run: prometheus: (pid 21713) 0s
ok: run: puma: (pid 21735) 1s
ok: run: redis: (pid 21770) 0s
ok: run: redis-exporter: (pid 21780) 1s
ok: run: sidekiq: (pid 21788) 0s
#版本確認:
[root@VM-16-13-centos packages]# rpm -qa gitlab-ce
gitlab-ce-13.8.8-ce.0.el7.x86_64
[root@VM-16-13-centos packages]# cat /opt/gitlab/embedded/service/gitlab-rails/VERSION
13.8.8
使用/help頁面確認版本 ok:
https://git-test.betawm.com/help
3.8.1 13.8.8需要注意postgresql需要手動升級:
GitLab 13.3 及更高版本
從 GitLab 13.3 開始,PostgreSQL 11.7 和 12.3 都隨 Omnibus 一起提供。在包升級過程中,數據庫不會升級到 PostgreSQL 12。如果你想升級到 PostgreSQL 12,你必須手動進行:
sudo gitlab-ctl pg-upgrade -V 12
GitLab 13.7 及更高版本
從 GitLab 13.7 開始,新安裝將默認為 PostgreSQL 12。
現有實例可以通過以下方式手動更新:
sudo gitlab-ctl pg-upgrade -V 12
GitLab 13.8 及更高版本
默認的 PostgreSQL 版本設置為 12.x,對於不使用 repmgr 或 Geo 的安裝,會在軟件包升級時自動完成數據庫升級。
手動升級
]# gitlab-ctl pg-upgrade -V 12
...
Toggling services:ok: run: alertmanager: (pid 3212) 0s
ok: run: gitaly: (pid 3221) 1s
ok: run: gitlab-exporter: (pid 3246) 0s
ok: run: grafana: (pid 3258) 1s
ok: run: logrotate: (pid 3271) 0s
ok: run: node-exporter: (pid 3278) 0s
ok: run: postgres-exporter: (pid 3284) 1s
ok: run: prometheus: (pid 3291) 0s
ok: run: redis-exporter: (pid 3305) 1s
ok: run: sidekiq: (pid 3311) 0s
Toggling services: OK
==== Upgrade has completed ====
Please verify everything is working and run the following if so
sudo rm -rf /var/opt/gitlab/postgresql/data.11
sudo rm -f /var/opt/gitlab/postgresql-version.old
]# sudo gitlab-psql -c "SELECT relname, last_analyze, last_autoanalyze FROM pg_stat_user_tables WHERE last_analyze IS NULL AND last_autoanalyze IS NULL;"
]# sudo gitlab-psql -c 'SET statement_timeout = 0; ANALYZE VERBOSE;'
]# sudo rm -rf /var/opt/gitlab/postgresql/data.11
]# sudo rm -f /var/opt/gitlab/postgresql-version.old
3.9 13.8.8 -> latest 13.12.15 升級:
升級前檢查:
[root@VM-16-13-centos gitlab]# rpm -qa gitlab-ce
gitlab-ce-13.8.8-ce.0.el7.x86_64
## 查看服務狀態
gitlab-ctl status
gitlab-rake gitlab:check SANITIZE=true --trace
gitlab-rake gitlab:check
gitlab-rake gitlab:check SANITIZE=true
#停止服務及確認服務狀態
gitlab-ctl stop
gitlab-ctl status
[root@VM-16-13-centos gitlab]# rpm -qa gitlab-ce
gitlab-ce-13.8.8-ce.0.el7.x86_64
#安裝過程時間較長,耐心等待:
[root@VM-16-13-centos packages]# rpm -evh `rpm -qa gitlab-ce`
Preparing... ################################# [100%]
Cleaning up / removing...
1:gitlab-ce-13.8.8-ce.0.el7 ################################# [100%]
[root@VM-16-13-centos packages]# rpm -ivh gitlab-ce-13.12.15-ce.0.el7.x86_64.rpm
Preparing... ################################# [100%]
Updating / installing...
1:gitlab-ce-13.12.15-ce.0.el7 ################################# [100%]
Checking PostgreSQL executables:Starting Chef Infra Client, version 15.14.0
resolving cookbooks for run list: ["gitlab::config", "postgresql::bin"]
Synchronizing Cookbooks:
- gitlab (0.0.1)
- postgresql (0.1.0)
...
中間內容忽略
...
Running handlers:
Running handlers complete
Chef Infra Client finished, 65/810 resources updated in 01 minutes 15 seconds
gitlab Reconfigured!
Restarting previously running GitLab services
_______ __ __ __
/ ____(_) /_/ / ____ _/ /_
/ / __/ / __/ / / __ `/ __ \
/ /_/ / / /_/ /___/ /_/ / /_/ /
\____/_/\__/_____/\__,_/_.___/
Upgrade complete! If your GitLab server is misbehaving try running
sudo gitlab-ctl restart
before anything else.
If you need to roll back to the previous version you can use the database
backup made during the upgrade (scroll up for the filename).
#加載配置:
gitlab-ctl reconfigure
再執行:
gitlab-ctl status
gitlab-ctl restart
#很順利全部服務run
[root@VM-16-13-centos packages]# gitlab-ctl status
run: alertmanager: (pid 962) 14s; run: log: (pid 15949) 5237s
run: gitaly: (pid 970) 13s; run: log: (pid 15566) 5278s
run: gitlab-exporter: (pid 988) 13s; run: log: (pid 15934) 5239s
run: gitlab-workhorse: (pid 990) 12s; run: log: (pid 15907) 5241s
run: grafana: (pid 1014) 12s; run: log: (pid 15955) 5236s
run: logrotate: (pid 1022) 11s; run: log: (pid 15926) 5240s
run: nginx: (pid 1031) 11s; run: log: (pid 15923) 5241s
run: node-exporter: (pid 1041) 10s; run: log: (pid 15930) 5240s
run: postgres-exporter: (pid 1046) 10s; run: log: (pid 15952) 5237s
run: postgresql: (pid 1067) 9s; run: log: (pid 15592) 5277s
run: prometheus: (pid 1069) 9s; run: log: (pid 15945) 5238s
run: puma: (pid 1167) 9s; run: log: (pid 15901) 5242s
run: redis: (pid 1172) 8s; run: log: (pid 15546) 5279s
run: redis-exporter: (pid 1179) 8s; run: log: (pid 15942) 5239s
run: sidekiq: (pid 1185) 7s; run: log: (pid 15904) 5242s
#版本確認:
[root@VM-16-13-centos packages]# rpm -qa gitlab-ce
gitlab-ce-13.12.15-ce.0.el7.x86_64
[root@VM-16-13-centos packages]# cat /opt/gitlab/embedded/service/gitlab-rails/VERSION
13.12.15
使用/help頁面確認版本 ok:
https://git-test.betawm.com/help
3.10 13.12.15 -> 14.0.12 升級:
升級前檢查:
[root@VM-16-13-centos packages]# rpm -qa gitlab-ce
gitlab-ce-13.12.15-ce.0.el7.x86_64
## 查看服務狀態
gitlab-ctl status
gitlab-rake gitlab:check SANITIZE=true --trace
gitlab-rake gitlab:check
gitlab-rake gitlab:check SANITIZE=true
#停止服務及確認服務狀態
gitlab-ctl stop
gitlab-ctl status
#卸載
[root@VM-16-13-centos gitlab]# rpm -qa gitlab-ce
gitlab-ce-13.12.15-ce.0.el7.x86_64
[root@VM-16-13-centos packages]# rpm -evh `rpm -qa gitlab-ce`
Preparing... ################################# [100%]
Cleaning up / removing...
1:gitlab-ce-13.12.15-ce.0.el7 ################################# [100%]
#安裝過程時間較長,耐心等待:
[root@VM-16-13-centos packages]# rpm -ihv gitlab-ce-14.0.12-ce.0.el7.x86_64.rpm
Preparing... ################################# [100%]
Updating / installing...
1:gitlab-ce-14.0.12-ce.0.el7 ################################# [100%]
Checking PostgreSQL executables:Starting Chef Infra Client, version 15.14.0
resolving cookbooks for run list: ["gitlab::config", "postgresql::bin"]
....
Running handlers:
Running handlers complete
Chef Infra Client finished, 25/769 resources updated in 01 minutes 02 seconds
gitlab Reconfigured!
Restarting previously running GitLab services
_______ __ __ __
/ ____(_) /_/ / ____ _/ /_
/ / __/ / __/ / / __ `/ __ \
/ /_/ / / /_/ /___/ /_/ / /_/ /
\____/_/\__/_____/\__,_/_.___/
Upgrade complete! If your GitLab server is misbehaving try running
sudo gitlab-ctl restart
before anything else.
If you need to roll back to the previous version you can use the database
backup made during the upgrade (scroll up for the filename).
#看輸出挺順利!
#加載配置:
gitlab-ctl reconfigure
再執行:
gitlab-ctl status
gitlab-ctl restart
#很順利全部服務run
[root@VM-16-13-centos packages]# gitlab-ctl status
run: alertmanager: (pid 13488) 28s; run: log: (pid 15949) 8052s
run: gitaly: (pid 13498) 27s; run: log: (pid 15566) 8093s
run: gitlab-exporter: (pid 13511) 27s; run: log: (pid 15934) 8054s
run: gitlab-workhorse: (pid 13517) 26s; run: log: (pid 15907) 8056s
run: grafana: (pid 13531) 26s; run: log: (pid 15955) 8051s
run: logrotate: (pid 13543) 25s; run: log: (pid 15926) 8055s
run: nginx: (pid 13550) 25s; run: log: (pid 15923) 8056s
run: node-exporter: (pid 13555) 25s; run: log: (pid 15930) 8055s
run: postgres-exporter: (pid 13564) 24s; run: log: (pid 15952) 8052s
run: postgresql: (pid 13615) 23s; run: log: (pid 15592) 8092s
run: prometheus: (pid 13662) 23s; run: log: (pid 15945) 8053s
run: puma: (pid 13672) 23s; run: log: (pid 15901) 8057s
run: redis: (pid 13677) 22s; run: log: (pid 15546) 8094s
run: redis-exporter: (pid 13683) 22s; run: log: (pid 15942) 8054s
run: sidekiq: (pid 13689) 22s; run: log: (pid 15904) 8057s
#版本確認:
[root@VM-16-13-centos packages]# rpm -qa gitlab-ce
gitlab-ce-14.0.12-ce.0.el7.x86_64
[root@VM-16-13-centos packages]# cat /opt/gitlab/embedded/service/gitlab-rails/VERSION
14.0.12
使用/help頁面確認版本 ok:
https://git-test.betawm.com/help
3.11 當前版本需要執行如下,我當時忘記執行,直接升級下一版本
首先,檢查您是否遵循了14.2 版本特定的升級說明。如果有,您可以手動完成批量后台遷移。如果還沒有,請選擇以下方法之一:
在更新到 14.2+ 之前回滾和升級所需的版本之一。
前滾,保持當前版本並手動確保批量遷移成功完成
gitlab-rake db:migrate
#加載配置:
gitlab-ctl reconfigure
再執行:
gitlab-ctl status
gitlab-ctl restart
3.12 14.0.12 -> 14.4.2 升級:
升級前檢查:
[root@VM-16-13-centos packages]# rpm -qa gitlab-ce
gitlab-ce-14.0.12-ce.0.el7.x86_64
## 查看服務狀態
gitlab-ctl status
gitlab-rake gitlab:check SANITIZE=true --trace
gitlab-rake gitlab:check
gitlab-rake gitlab:check SANITIZE=true
#停止服務及確認服務狀態
gitlab-ctl stop
gitlab-ctl status
#卸載
[root@VM-16-13-centos gitlab]# rpm -qa gitlab-ce
gitlab-ce-14.0.12-ce.0.el7.x86_64
[root@VM-16-13-centos packages]# rpm -evh `rpm -qa gitlab-ce`
Preparing... ################################# [100%]
Cleaning up / removing...
1:gitlab-ce-14.0.12-ce.0.el7 ################################# [100%]
#安裝過程時間較長,耐心等待:
[root@VM-16-13-centos packages]# rpm -ivh gitlab-ce-14.4.2-ce.0.el7.x86_64.rpm
Preparing... ################################# [100%]
Updating / installing...
1:gitlab-ce-14.4.2-ce.0.el7 ################################# [100%]
Checking PostgreSQL executables:Starting Chef Infra Client, version 15.17.4
resolving cookbooks for run list: ["gitlab::config", "postgresql::bin"]
....
Running handlers complete
Chef Infra Client failed. 29 resources updated in 46 seconds
===
There was an error running gitlab-ctl reconfigure. Please check the output above for more
details.
===
warning: %posttrans(gitlab-ce-14.4.2-ce.0.el7.x86_64) scriptlet failed, exit status 1
#不太順利最后報異常!
#加載配置:
gitlab-ctl reconfigure
再執行:
gitlab-ctl status
gitlab-ctl restart
3.13 加載配置后依然報錯,官方有說明:
我當時手動執行了報錯提示的兩條命令后執行加載配置命令后仍然報錯,然后我就回滾到上一個版本,服務正常,頁面訪問500,然后執行:
sudo gitlab-rake db:migrate
sudo gitlab-ctl reconfigure
gitlab-ctl restart
gitlab-ctl stastu #服務狀態全部run,正常,頁面訪問500,然后直接升級下一版本14.4.2順利成功,頁面訪問ok
3.14 生產環境gitlab版本12.3.5升級到14.4.2過程總結
點擊查看代碼
由於網絡原因只能采用離線方式安裝:
[root@VM-16-13-centos packages]# ll
total 3942368
-rw-r--r-- 1 root root 797740292 Nov 8 18:25 gitlab-ce-12.10.14-ce.0.el7.x86_64.rpm
-rw-r--r-- 1 root root 728656981 Nov 8 18:25 gitlab-ce-13.0.14-ce.0.el7.x86_64.rpm
-rw-r--r-- 1 root root 736750197 Nov 8 18:29 gitlab-ce-13.1.11-ce.0.el7.x86_64.rpm
-rw-r--r-- 1 root root 867568698 Nov 8 18:30 gitlab-ce-13.8.8-ce.0.el7.x86_64.rpm
-rw-r--r-- 1 root root 906240064 Nov 8 18:32 gitlab-ce-13.12.15-ce.0.el7.x86_64.rpm
-rw-r--r-- 1 root root 911634590 Nov 9 16:35 gitlab-ce-14.0.12-ce.0.el7.x86_64.rpm
-rw-r--r-- 1 root root 954527068 Nov 9 16:36 gitlab-ce-14.4.2-ce.0.el7.x86_64.rpm
#備份數據:
# gitlab-backup create STRATEGY=copy
當前gitlab版本號:12.3.5
官方路線:
12.1.17-> 12.10.14 -> 13.0.14 -> 13.1.11 -> 13.8.8 -> latest 13.12.Z -> latest 14.0.Z -> latest 14.Y.Z
我的路線
12.3.5 -> 12.10.14 -> 13.0.14 -> 13.1.11 -> 13.8.8 -> 13.12.15 -> 14.0.12 -> 14.4.2
+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
12.3.5 -> 12.10.14升級:
升級前檢查:
[root@BetaTWS1 ~]# rpm -qa gitlab-ce
gitlab-ce-12.3.5-ce.0.el7.x86_64
gitlab-rake gitlab:check SANITIZE=true --trace
gitlab-rake gitlab:check
gitlab-rake gitlab:check SANITIZE=true
## 查看服務狀態
gitlab-ctl status
rpm -evh `rpm -qa gitlab-ce`
#安裝過程時間較長,耐心等待:
rpm -ivh gitlab-ce-12.10.14-ce.0.el7.x86_64.rpm
gitlab-ctl start
gitlab-ctl status
gitlab-ctl reconfigure
安裝后可能會有部分服務啟動失敗,等待5分鍾后,執行如下命令:
gitlab-ctl restart
全部啟動啟動成功
#確認當前版本:
[root@VM-16-13-centos gitlab]# cat /opt/gitlab/embedded/service/gitlab-rails/VERSION
12.10.14
頁面訪問驗證ok
xxxx.gitlab.com
#執行如下命令升級數據庫解決兼容問題
gitlab-ctl pg-upgrade
gitlab-psql -c "SELECT relname, last_analyze, last_autoanalyze FROM pg_stat_user_tables WHERE last_analyze IS NULL AND last_autoanalyze IS NULL;"
sudo gitlab-psql -c 'SET statement_timeout = 0; ANALYZE VERBOSE;'
+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
12.10.14 -> 13.0.14 升級:
升級前檢查:
[root@VM-16-13-centos packages]# cat /opt/gitlab/embedded/service/gitlab-rails/VERSION
12.10.14
## 查看服務狀態
gitlab-ctl status
gitlab-rake gitlab:check SANITIZE=true --trace
gitlab-rake gitlab:check
gitlab-rake gitlab:check SANITIZE=true
#停止服務及確認服務狀態
gitlab-ctl stop
gitlab-ctl status
#卸載舊包
[root@VM-16-13-centos packages]# rpm -e `rpm -qa gitlab-ce`
Preparing... ################################# [100%]
Cleaning up / removing...
1:gitlab-ce-12.10.14-ce.0.el7 ################################# [100%]
#安裝過程時間較長,耐心等待:
packages]# rpm -ivh gitlab-ce-13.0.14-ce.0.el7.x86_64.rpm
#加載配置:
gitlab-ctl reconfigure
再執行:
gitlab-ctl status
gitlab-ctl restart
[root@VM-16-13-centos packages]# gitlab-ctl status
run: alertmanager: (pid 11690) 475s; run: log: (pid 1564) 250062s
run: gitaly: (pid 11705) 474s; run: log: (pid 1581) 250062s
run: gitlab-exporter: (pid 11721) 474s; run: log: (pid 1563) 250062s
run: gitlab-workhorse: (pid 11725) 474s; run: log: (pid 1562) 250062s
run: grafana: (pid 11742) 473s; run: log: (pid 1574) 250062s
run: logrotate: (pid 11755) 473s; run: log: (pid 1560) 250062s
run: nginx: (pid 11762) 472s; run: log: (pid 1575) 250062s
run: node-exporter: (pid 11767) 472s; run: log: (pid 1571) 250062s
run: postgres-exporter: (pid 11781) 472s; run: log: (pid 1559) 250062s
run: postgresql: (pid 11791) 471s; run: log: (pid 1587) 250062s
run: prometheus: (pid 11793) 471s; run: log: (pid 1561) 250062s
run: puma: (pid 11894) 470s; run: log: (pid 10587) 688s
run: redis: (pid 11899) 470s; run: log: (pid 1598) 250062s
run: redis-exporter: (pid 11904) 469s; run: log: (pid 1565) 250062s
run: sidekiq: (pid 11911) 469s; run: log: (pid 1580) 250062s
#版本驗證
[root@VM-16-13-centos packages]# cat /opt/gitlab/embedded/service/gitlab-rails/VERSION
13.0.14
頁面訪問驗證ok
xxxx.gitlab.com
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
13.0.14 -> 13.1.11 升級
升級前檢查:
[root@VM-16-13-centos packages]# cat /opt/gitlab/embedded/service/gitlab-rails/VERSION
13.0.14
## 查看服務狀態
gitlab-ctl status
gitlab-rake gitlab:check SANITIZE=true --trace
gitlab-rake gitlab:check
gitlab-rake gitlab:check SANITIZE=true
#停止服務及確認服務狀態
gitlab-ctl stop
gitlab-ctl status
#卸載舊包
[root@VM-16-13-centos packages]# rpm -evh `rpm -qa gitlab-ce`
#安裝過程時間較長,耐心等待:
packages]# rpm -ivh gitlab-ce-13.1.11-ce.0.el7.x86_64.rpm
...
中間內容忽略
...
Running handlers:
Running handlers complete
Chef Client finished, 100/1131 resources updated in 53 seconds
gitlab Reconfigured!
Restarting previously running GitLab services
_______ __ __ __
/ ____(_) /_/ / ____ _/ /_
/ / __/ / __/ / / __ `/ __ \
/ /_/ / / /_/ /___/ /_/ / /_/ /
\____/_/\__/_____/\__,_/_.___/
Upgrade complete! If your GitLab server is misbehaving try running
sudo gitlab-ctl restart
before anything else.
If you need to roll back to the previous version you can use the database
backup made during the upgrade (scroll up for the filename).
[root@VM-16-13-centos packages]# gitlab-ctl status
down: alertmanager: 262s, normally up; run: log: (pid 15949) 52s
run: gitaly: (pid 15988) 49s; run: log: (pid 15566) 93s
down: gitlab-exporter: 260s, normally up; run: log: (pid 15934) 54s
run: gitlab-workhorse: (pid 15965) 51s; run: log: (pid 15907) 56s
down: grafana: 259s, normally up; run: log: (pid 15955) 51s
down: logrotate: 259s, normally up; run: log: (pid 15926) 55s
down: nginx: 259s, normally up; run: log: (pid 15923) 56s
down: node-exporter: 258s, normally up; run: log: (pid 15930) 55s
down: postgres-exporter: 258s, normally up; run: log: (pid 15952) 52s
run: postgresql: (pid 15024) 108s; run: log: (pid 15592) 92s
down: prometheus: 257s, normally up; run: log: (pid 15945) 53s
down: puma: 256s, normally up; run: log: (pid 15901) 57s
run: redis: (pid 15033) 108s; run: log: (pid 15546) 94s
down: redis-exporter: 256s, normally up; run: log: (pid 15942) 54s
down: sidekiq: 252s, normally up; run: log: (pid 15904) 57s
#加載配置:
gitlab-ctl reconfigure
再執行:
gitlab-ctl status
gitlab-ctl restart
#13.1.11這個版本很順利
[root@VM-16-13-centos packages]# gitlab-ctl restart
ok: run: alertmanager: (pid 16511) 0s
ok: run: gitaly: (pid 16524) 0s
ok: run: gitlab-exporter: (pid 16539) 0s
ok: run: gitlab-workhorse: (pid 16549) 1s
ok: run: grafana: (pid 16561) 0s
ok: run: logrotate: (pid 16581) 1s
ok: run: nginx: (pid 16587) 0s
ok: run: node-exporter: (pid 16594) 0s
ok: run: postgres-exporter: (pid 16600) 0s
ok: run: postgresql: (pid 16626) 0s
ok: run: prometheus: (pid 16628) 1s
ok: run: puma: (pid 16722) 0s
ok: run: redis: (pid 16727) 1s
ok: run: redis-exporter: (pid 16732) 0s
ok: run: sidekiq: (pid 16741) 1s
[root@VM-16-13-centos packages]# gitlab-ctl status
run: alertmanager: (pid 16511) 27s; run: log: (pid 15949) 194s
run: gitaly: (pid 16524) 26s; run: log: (pid 15566) 235s
run: gitlab-exporter: (pid 16539) 26s; run: log: (pid 15934) 196s
run: gitlab-workhorse: (pid 16549) 26s; run: log: (pid 15907) 198s
run: grafana: (pid 16561) 25s; run: log: (pid 15955) 193s
run: logrotate: (pid 16581) 25s; run: log: (pid 15926) 197s
run: nginx: (pid 16587) 24s; run: log: (pid 15923) 198s
run: node-exporter: (pid 16594) 24s; run: log: (pid 15930) 197s
run: postgres-exporter: (pid 16600) 23s; run: log: (pid 15952) 194s
run: postgresql: (pid 16626) 23s; run: log: (pid 15592) 234s
run: prometheus: (pid 16628) 23s; run: log: (pid 15945) 195s
run: puma: (pid 16722) 22s; run: log: (pid 15901) 199s
run: redis: (pid 16727) 22s; run: log: (pid 15546) 236s
run: redis-exporter: (pid 16732) 21s; run: log: (pid 15942) 196s
run: sidekiq: (pid 16741) 21s; run: log: (pid 15904) 199s
#版本確認:
[root@VM-16-13-centos packages]# cat /opt/gitlab/embedded/service/gitlab-rails/VERSION
13.1.11
使用/help頁面確認版本 ok:
https://git-test.betawm.com/help
+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
13.1.11 -> 13.8.8 升級:
升級前檢查:
[root@VM-16-13-centos packages]# cat /opt/gitlab/embedded/service/gitlab-rails/VERSION
13.1.11
## 查看服務狀態
gitlab-ctl status
gitlab-rake gitlab:check SANITIZE=true --trace
gitlab-rake gitlab:check
gitlab-rake gitlab:check SANITIZE=true
#停止服務及確認服務狀態
gitlab-ctl stop
gitlab-ctl status
#卸載:
[root@VM-16-13-centos packages]# rpm -evh `rpm -qa gitlab-ce`
Preparing... ################################# [100%]
Cleaning up / removing...
1:gitlab-ce-13.1.11-ce.0.el7 ################################# [100%]
#安裝過程時間較長,耐心等待:
[root@VM-16-13-centos packages]# rpm -ivh gitlab-ce-13.8.8-ce.0.el7.x86_64.rpm
Preparing... ################################# [100%]
Updating / installing...
1:gitlab-ce-13.8.8-ce.0.el7 ################################# [100%]
Checking PostgreSQL executables:
...
中間內容忽略
...
== 20200527211605 AddLockedToCiPipelines: migrating ===========================
-- add_column(:ci_pipelines, :locked, :integer, {:limit=>2, :null=>false, :default=>0})
-> 0.0010s
== 20200527211605 AddLockedToCiPipelines: migrated (0.0022s) ==================
== 20200601120434 MigrateAllMergeRequestUserMentionsToDb: migrating ===========
STDERR:
---- End output of "bash" "/tmp/chef-script20211109-20450-1ppno70" ----
Ran "bash" "/tmp/chef-script20211109-20450-1ppno70" returned 1
Running handlers complete
Chef Infra Client failed. 29 resources updated in 26 seconds
Running reconfigure: NOT OK
== Fatal error ==
Something went wrong during final reconfiguration, please check the output
== Reverting ==
ok: down: postgresql: 0s, normally up
Symlink correct version of binaries: OK
ok: run: postgresql: (pid 20999) 0s
== Reverted ==
== Reverted to 11.11. Please check output for what went wrong ==
Toggling deploy page:rm -f /opt/gitlab/embedded/service/gitlab-rails/public/index.html
Toggling deploy page: OK
Toggling services:ok: run: alertmanager: (pid 21017) 1s
ok: run: gitaly: (pid 21025) 0s
ok: run: gitlab-exporter: (pid 21040) 0s
ok: run: grafana: (pid 21056) 1s
ok: run: logrotate: (pid 21066) 0s
ok: run: node-exporter: (pid 21074) 1s
ok: run: postgres-exporter: (pid 21079) 0s
ok: run: prometheus: (pid 21089) 1s
ok: run: redis-exporter: (pid 21096) 0s
ok: run: sidekiq: (pid 21103) 1s
Toggling services: OK
Checking if a newer PostgreSQL version is available and attempting automatic upgrade to it: NOT OK
Error ensuring PostgreSQL is updated. Please check the logs
warning: %posttrans(gitlab-ce-13.8.8-ce.0.el7.x86_64) scriptlet failed, exit status 1
#加載配置:
gitlab-ctl reconfigure
再執行:
gitlab-ctl status
gitlab-ctl restart
#重啟后服務順利啟動
[root@VM-16-13-centos packages]# gitlab-ctl restart
ok: run: alertmanager: (pid 21567) 1s
ok: run: gitaly: (pid 21577) 0s
ok: run: gitlab-exporter: (pid 21600) 1s
ok: run: gitlab-workhorse: (pid 21603) 0s
ok: run: grafana: (pid 21627) 1s
ok: run: logrotate: (pid 21640) 0s
ok: run: nginx: (pid 21652) 1s
ok: run: node-exporter: (pid 21658) 0s
ok: run: postgres-exporter: (pid 21663) 0s
ok: run: postgresql: (pid 21710) 0s
ok: run: prometheus: (pid 21713) 0s
ok: run: puma: (pid 21735) 1s
ok: run: redis: (pid 21770) 0s
ok: run: redis-exporter: (pid 21780) 1s
ok: run: sidekiq: (pid 21788) 0s
#版本確認:
[root@VM-16-13-centos packages]# cat /opt/gitlab/embedded/service/gitlab-rails/VERSION
13.8.8
使用/help頁面確認版本 ok:
https://git-test.betawm.com/help
13.8.8版本需要注意postgresql需要手動升級:
GitLab 13.8 及更高版本
默認的 PostgreSQL 版本設置為 12.x,對於不使用 repmgr 或 Geo 的安裝,會在軟件包升級時自動完成數據庫升級。
手動升級
]# gitlab-ctl pg-upgrade -V 12
...
Toggling services:ok: run: alertmanager: (pid 3212) 0s
ok: run: gitaly: (pid 3221) 1s
ok: run: gitlab-exporter: (pid 3246) 0s
ok: run: grafana: (pid 3258) 1s
ok: run: logrotate: (pid 3271) 0s
ok: run: node-exporter: (pid 3278) 0s
ok: run: postgres-exporter: (pid 3284) 1s
ok: run: prometheus: (pid 3291) 0s
ok: run: redis-exporter: (pid 3305) 1s
ok: run: sidekiq: (pid 3311) 0s
Toggling services: OK
==== Upgrade has completed ====
Please verify everything is working and run the following if so
sudo rm -rf /var/opt/gitlab/postgresql/data.11
sudo rm -f /var/opt/gitlab/postgresql-version.old
]# sudo gitlab-psql -c "SELECT relname, last_analyze, last_autoanalyze FROM pg_stat_user_tables WHERE last_analyze IS NULL AND last_autoanalyze IS NULL;"
]# sudo gitlab-psql -c 'SET statement_timeout = 0; ANALYZE VERBOSE;'
]# sudo rm -rf /var/opt/gitlab/postgresql/data.11
]# sudo rm -f /var/opt/gitlab/postgresql-version.old
#加載配置:
gitlab-ctl reconfigure
再執行:
gitlab-ctl status
gitlab-ctl restart
+++++++++++++++++++++++++++++++++++++
13.8.8 -> latest 13.12.15 升級:
升級前檢查:
[root@VM-16-13-centos packages]# cat /opt/gitlab/embedded/service/gitlab-rails/VERSION
13.8.8
## 查看服務狀態
gitlab-ctl status
gitlab-rake gitlab:check SANITIZE=true --trace
gitlab-rake gitlab:check
gitlab-rake gitlab:check SANITIZE=true
#停止服務及確認服務狀態
gitlab-ctl stop
gitlab-ctl status
#卸載
[root@VM-16-13-centos packages]# rpm -evh `rpm -qa gitlab-ce`
Preparing... ################################# [100%]
Cleaning up / removing...
1:gitlab-ce-13.8.8-ce.0.el7 ################################# [100%]
#安裝過程時間較長,耐心等待:
[root@VM-16-13-centos packages]# rpm -ivh gitlab-ce-13.12.15-ce.0.el7.x86_64.rpm
Preparing... ################################# [100%]
Updating / installing...
1:gitlab-ce-13.12.15-ce.0.el7 ################################# [100%]
Checking PostgreSQL executables:Starting Chef Infra Client, version 15.14.0
resolving cookbooks for run list: ["gitlab::config", "postgresql::bin"]
Synchronizing Cookbooks:
- gitlab (0.0.1)
- postgresql (0.1.0)
...
中間內容忽略
...
Running handlers:
Running handlers complete
Chef Infra Client finished, 65/810 resources updated in 01 minutes 15 seconds
gitlab Reconfigured!
Restarting previously running GitLab services
_______ __ __ __
/ ____(_) /_/ / ____ _/ /_
/ / __/ / __/ / / __ `/ __ \
/ /_/ / / /_/ /___/ /_/ / /_/ /
\____/_/\__/_____/\__,_/_.___/
Upgrade complete! If your GitLab server is misbehaving try running
sudo gitlab-ctl restart
before anything else.
If you need to roll back to the previous version you can use the database
backup made during the upgrade (scroll up for the filename).
#加載配置:
gitlab-ctl reconfigure
再執行:
gitlab-ctl status
gitlab-ctl restart
#很順利全部服務run
[root@VM-16-13-centos packages]# gitlab-ctl status
run: alertmanager: (pid 962) 14s; run: log: (pid 15949) 5237s
run: gitaly: (pid 970) 13s; run: log: (pid 15566) 5278s
run: gitlab-exporter: (pid 988) 13s; run: log: (pid 15934) 5239s
run: gitlab-workhorse: (pid 990) 12s; run: log: (pid 15907) 5241s
run: grafana: (pid 1014) 12s; run: log: (pid 15955) 5236s
run: logrotate: (pid 1022) 11s; run: log: (pid 15926) 5240s
run: nginx: (pid 1031) 11s; run: log: (pid 15923) 5241s
run: node-exporter: (pid 1041) 10s; run: log: (pid 15930) 5240s
run: postgres-exporter: (pid 1046) 10s; run: log: (pid 15952) 5237s
run: postgresql: (pid 1067) 9s; run: log: (pid 15592) 5277s
run: prometheus: (pid 1069) 9s; run: log: (pid 15945) 5238s
run: puma: (pid 1167) 9s; run: log: (pid 15901) 5242s
run: redis: (pid 1172) 8s; run: log: (pid 15546) 5279s
run: redis-exporter: (pid 1179) 8s; run: log: (pid 15942) 5239s
run: sidekiq: (pid 1185) 7s; run: log: (pid 15904) 5242s
#版本確認:
[root@VM-16-13-centos packages]# cat /opt/gitlab/embedded/service/gitlab-rails/VERSION
13.12.15
使用/help頁面確認版本 ok:
https://git-test.betawm.com/help
++++++++++++++++++++++++++++++++++++
13.12.15 -> 14.0.12 升級:
升級前檢查:
[root@VM-16-13-centos packages]# cat /opt/gitlab/embedded/service/gitlab-rails/VERSION
13.12.15
## 查看服務狀態
gitlab-ctl status
gitlab-rake gitlab:check SANITIZE=true --trace
gitlab-rake gitlab:check
gitlab-rake gitlab:check SANITIZE=true
#停止服務及確認服務狀態
gitlab-ctl stop
gitlab-ctl status
#卸載
[root@VM-16-13-centos packages]# rpm -evh `rpm -qa gitlab-ce`
Preparing... ################################# [100%]
Cleaning up / removing...
1:gitlab-ce-13.12.15-ce.0.el7 ################################# [100%]
#安裝過程時間較長,耐心等待:
[root@VM-16-13-centos packages]# rpm -ihv gitlab-ce-14.0.12-ce.0.el7.x86_64.rpm
Preparing... ################################# [100%]
Updating / installing...
1:gitlab-ce-14.0.12-ce.0.el7 ################################# [100%]
Checking PostgreSQL executables:Starting Chef Infra Client, version 15.14.0
resolving cookbooks for run list: ["gitlab::config", "postgresql::bin"]
....
Running handlers:
Running handlers complete
Chef Infra Client finished, 25/769 resources updated in 01 minutes 02 seconds
gitlab Reconfigured!
Restarting previously running GitLab services
_______ __ __ __
/ ____(_) /_/ / ____ _/ /_
/ / __/ / __/ / / __ `/ __ \
/ /_/ / / /_/ /___/ /_/ / /_/ /
\____/_/\__/_____/\__,_/_.___/
Upgrade complete! If your GitLab server is misbehaving try running
sudo gitlab-ctl restart
before anything else.
If you need to roll back to the previous version you can use the database
backup made during the upgrade (scroll up for the filename).
#加載配置:
gitlab-ctl reconfigure
再執行:
gitlab-ctl status
gitlab-ctl restart
#很順利全部服務run
[root@VM-16-13-centos packages]# gitlab-ctl status
run: alertmanager: (pid 13488) 28s; run: log: (pid 15949) 8052s
run: gitaly: (pid 13498) 27s; run: log: (pid 15566) 8093s
run: gitlab-exporter: (pid 13511) 27s; run: log: (pid 15934) 8054s
run: gitlab-workhorse: (pid 13517) 26s; run: log: (pid 15907) 8056s
run: grafana: (pid 13531) 26s; run: log: (pid 15955) 8051s
run: logrotate: (pid 13543) 25s; run: log: (pid 15926) 8055s
run: nginx: (pid 13550) 25s; run: log: (pid 15923) 8056s
run: node-exporter: (pid 13555) 25s; run: log: (pid 15930) 8055s
run: postgres-exporter: (pid 13564) 24s; run: log: (pid 15952) 8052s
run: postgresql: (pid 13615) 23s; run: log: (pid 15592) 8092s
run: prometheus: (pid 13662) 23s; run: log: (pid 15945) 8053s
run: puma: (pid 13672) 23s; run: log: (pid 15901) 8057s
run: redis: (pid 13677) 22s; run: log: (pid 15546) 8094s
run: redis-exporter: (pid 13683) 22s; run: log: (pid 15942) 8054s
run: sidekiq: (pid 13689) 22s; run: log: (pid 15904) 8057s
#版本確認:
[root@VM-16-13-centos packages]# cat /opt/gitlab/embedded/service/gitlab-rails/VERSION
14.0.12
使用/help頁面確認版本 ok:
https://git-test.betawm.com/help
首先,檢查您是否遵循了14.2 版本特定的升級說明。如果有,您可以手動完成批量后台遷移。如果還沒有,請選擇以下方法之一:
在更新到 14.2+ 之前回滾和升級所需的版本之一。
前滾,保持當前版本並手動確保批量遷移成功完成
gitlab-rake db:migrate
#加載配置:
gitlab-ctl reconfigure
再執行:
gitlab-ctl status
gitlab-ctl restart
++++++++++++++++++++++++++++++++++++
14.0.12 -> 14.4.2 升級:
升級前檢查:
[root@VM-16-13-centos packages]# cat /opt/gitlab/embedded/service/gitlab-rails/VERSION
14.0.12
## 查看服務狀態
gitlab-ctl status
gitlab-rake gitlab:check SANITIZE=true --trace
gitlab-rake gitlab:check
gitlab-rake gitlab:check SANITIZE=true
#停止服務及確認服務狀態
gitlab-ctl stop
gitlab-ctl status
#卸載
[root@VM-16-13-centos packages]# rpm -evh `rpm -qa gitlab-ce`
Preparing... ################################# [100%]
Cleaning up / removing...
1:gitlab-ce-14.0.12-ce.0.el7 ################################# [100%]
#安裝過程時間較長,耐心等待:
[root@VM-16-13-centos packages]# rpm -ivh gitlab-ce-14.4.2-ce.0.el7.x86_64.rpm
Preparing... ################################# [100%]
Updating / installing...
1:gitlab-ce-14.4.2-ce.0.el7 ################################# [100%]
Checking PostgreSQL executables:Starting Chef Infra Client, version 15.17.4
resolving cookbooks for run list: ["gitlab::config", "postgresql::bin"]
....
Running handlers complete
Chef Infra Client failed. 29 resources updated in 46 seconds
===
There was an error running gitlab-ctl reconfigure. Please check the output above for more
details.
===
warning: %posttrans(gitlab-ce-14.4.2-ce.0.el7.x86_64) scriptlet failed, exit status 1
#加載配置:
gitlab-ctl reconfigure
再執行:
gitlab-ctl status
gitlab-ctl restart
#版本確認:
[root@VM-16-13-centos packages]# cat /opt/gitlab/embedded/service/gitlab-rails/VERSION
14.4.2
使用/help頁面確認版本 ok:
https://git-test.betawm.com/help
#升級完成!