Zdarza się przejąć serwer nieaktualizowany od dawna. W tym przypadku jest to serwer z Ubuntu 14.04 i gitlabem w wersji 7.x.
Na wstępie:
- Paczki ściągamy z https://packages.gitlab.com/gitlab/gitlab-ce i wybieramy je zależnie od wersji systemu
- Należy zrobić kopię katalogu /etc/gitlab
- Aktualizacja była wykonana na sklonowanej maszynie, jeśli nie macie takiej możliwości należy wykonać backup gitlaba
- Procedura powinna wyglądać podobnie na Debianie lecz nie testowałem (oczywiście paczki muszą być ściągane wtedy dla danego Debiana zamiast Ubuntu)
W pierwszej kolejności aktualizujemy Ubuntu 14.04
apt update
apt upgrade
restart sprawdzamy czy gitlab wstał (jeśli sklonowana maszyna sprawdzamy logi celem eliminacji błędów)
Ściągamy gitlaba w wersji 8 dla Ubuntu 14.04
wget --content-disposition https://packages.gitlab.com/gitlab/gitlab-ce/packages/ubuntu/trusty/gitlab-ce_8.17.7-ce.0_amd64.deb/download.deb
i go instalujemy
dpkg -i gitlab-ce_8.17.7-ce.0_amd64.deb
Sprawdzamy czy wersja się podniosła:
root@git-clone:/opt/upgrade# grep gitlab /opt/gitlab/version-manifest.txt
gitlab-ce 8.17.7
gitlab-config-template 8.17.7
gitlab-cookbooks 8.17.7
gitlab-ctl 8.17.7
gitlab-healthcheck 42dc7323afc83ea6026fc834e903617b
gitlab-monitor v1.1.0 git:927f12e0054670a4cb567dfac58c0c13e399062c
gitlab-pages v0.3.2 git:7285dc67ad53305889f577297fc5544c0fe8703f
gitlab-psql f3696a0d5d2c32dffc0e753f53e2537c
gitlab-rails v8.17.7 git:756f85375b4df446aaf0bbe30ee72a882ba49a51
gitlab-scripts 8.17.7
gitlab-selinux 8.17.7
gitlab-shell v4.1.1 git:a3712cc18de8283b25c3a8a034ecc8c9b7feca48
gitlab-workhorse v1.3.0 git:b30cda2218572674082636d9851086eeee9a971f
I status gitlab`a
root@git-clone:/opt/upgrade# gitlab-ctl status
run: gitlab-workhorse: (pid 11050) 127s; run: log: (pid 11015) 141s
run: logrotate: (pid 11073) 126s; run: log: (pid 915) 1454s
run: nginx: (pid 11062) 126s; run: log: (pid 917) 1454s
run: postgresql: (pid 10902) 261s; run: log: (pid 918) 1454s
run: redis: (pid 10844) 263s; run: log: (pid 922) 1454s
run: sidekiq: (pid 11033) 140s; run: log: (pid 924) 1454s
run: unicorn: (pid 11084) 125s; run: log: (pid 916) 1454s
Wchodzimy na stronę www gita i weryfikujemy czy działa. Jeśli jest ok aktualizujemy dalej do wersji 9.x dla Ubuntu 14.04.
wget --content-disposition https://packages.gitlab.com/gitlab/gitlab-ce/packages/ubuntu/trusty/gitlab-ce_9.2.10-ce.0_amd64.deb/download.deb
dpkg -i gitlab-ce_9.2.10-ce.0_amd64.deb
root@git-clone:/opt/upgrade# grep gitlab /opt/gitlab/version-manifest.txt
gitlab-ce 9.2.10
gitlab-config-template 9.2.10
gitlab-cookbooks 9.2.10
gitlab-ctl 9.2.10
gitlab-healthcheck a596f019c73c7aeb89ddd912d237addf
gitlab-monitor v1.6.0 git:06964419a9441910e6816bc46231a843fc635b01
gitlab-pages v0.4.2 git:dccd0f2b3206c2935b41ad1cedc02bd4922446b8
gitlab-psql ff26e3be21c690dd34db5cc8fc6c9b55
gitlab-rails v9.2.10 git:7586e82714a6479bc3581532e11d03bead1cc982
gitlab-scripts 9.2.10
gitlab-selinux 9.2.10
gitlab-shell v5.0.4 git:285c061ed8933c0d94a9ad027f99653039673324
gitlab-workhorse v2.0.0 git:eacd5b7aff7cc1b51a2409d8645dfc61904f308c
root@git-clone:/opt/upgrade# gitlab-ctl status
run: gitaly: (pid 20877) 23s; run: log: (pid 19931) 112s
run: gitlab-monitor: (pid 20883) 23s; run: log: (pid 19989) 101s
run: gitlab-workhorse: (pid 20046) 85s; run: log: (pid 11015) 866s
run: logrotate: (pid 20886) 22s; run: log: (pid 915) 2179s
run: nginx: (pid 20922) 20s; run: log: (pid 917) 2179s
run: node-exporter: (pid 20892) 22s; run: log: (pid 19968) 104s
run: postgres-exporter: (pid 20897) 21s; run: log: (pid 19981) 102s
run: postgresql: (pid 20928) 19s; run: log: (pid 918) 2179s
run: prometheus: (pid 20902) 21s; run: log: (pid 19957) 106s
run: redis: (pid 19387) 167s; run: log: (pid 922) 2179s
run: redis-exporter: (pid 20910) 21s; run: log: (pid 19975) 103s
run: sidekiq: (pid 20915) 20s; run: log: (pid 924) 2179s
run: unicorn: (pid 20938) 19s; run: log: (pid 916) 2179s
root@git-clone:/opt/upgrade#
Sprawdzamy czy www działa
Jeśli ok, to aktualizacja do wersji 9.5 wybieramy ostatnią najnowszą dla Ubuntu 14.04 (żeby zainstalować gitlaba w wersji 10.x, jest niezbędna instalacja 9.5. Można spróbować zainstalować od razu 9.5 zamiast 9.2)
wget --content-disposition https://packages.gitlab.com/gitlab/gitlab-ce/packages/ubuntu/trusty/gitlab-ce_9.5.9-ce.0_amd64.deb/download.deb
dpkg -i gitlab-ce_9.5.9-ce.0_amd64.deb
root@git-clone:/opt/upgrade# grep gitlab /opt/gitlab/version-manifest.txt
gitlab-ce 9.5.9
gitlab-config-template 9.5.9
gitlab-cookbooks 9.5.9
gitlab-ctl 9.5.9
gitlab-healthcheck a596f019c73c7aeb89ddd912d237addf
gitlab-monitor v1.9.0 git:1cf4c45e862742cb86b06828e051330c16a4631c
gitlab-pages v0.5.1 git:15c938cafbd95064bbc4be34cd72091f9a61edaa
gitlab-psql ff26e3be21c690dd34db5cc8fc6c9b55
gitlab-rails v9.5.9 git:19893b0ab5d2ae1b7e9a61a511b30f6651371e50
gitlab-scripts 9.5.9
gitlab-selinux 9.5.9
gitlab-shell v5.8.0 git:1e587d3b7fbe596ab010cb022b0c6526d2489613
gitlab-workhorse v3.0.0 git:e6cfe0c0c6aafe639cdf2c362eab860053bc07cb
root@git-clone:/opt/upgrade# gitlab-ctl status
run: gitaly: (pid 7002) 38s; run: log: (pid 19931) 1021s
run: gitlab-monitor: (pid 7035) 37s; run: log: (pid 19989) 1010s
run: gitlab-workhorse: (pid 7023) 37s; run: log: (pid 11015) 1775s
run: logrotate: (pid 7065) 35s; run: log: (pid 915) 3088s
run: nginx: (pid 7071) 35s; run: log: (pid 917) 3088s
run: node-exporter: (pid 7077) 34s; run: log: (pid 19968) 1013s
run: postgres-exporter: (pid 7118) 34s; run: log: (pid 19981) 1011s
run: postgresql: (pid 6419) 111s; run: log: (pid 918) 3088s
run: prometheus: (pid 7043) 36s; run: log: (pid 19957) 1015s
run: redis: (pid 6421) 110s; run: log: (pid 922) 3088s
run: redis-exporter: (pid 7128) 33s; run: log: (pid 19975) 1012s
run: sidekiq: (pid 7133) 33s; run: log: (pid 924) 3088s
run: unicorn: (pid 7140) 33s; run: log: (pid 916) 3088s
Sprawdzamy na www czy gitlab działa.
Jeśli ok, to instalujemy najnowszą wersje 10 przeznaczona dla Ubuntu 14.04
wget --content-disposition https://packages.gitlab.com/gitlab/gitlab-ce/packages/ubuntu/trusty/gitlab-ce_10.8.7-ce.0_amd64.deb/download.deb
root@git-clone:/opt/upgrade# grep gitlab /opt/gitlab/version-manifest.txt
gitlab-ce 10.8.7
gitlab-config-template 10.8.7
gitlab-cookbooks 10.8.7
gitlab-ctl 10.8.7
gitlab-healthcheck a596f019c73c7aeb89ddd912d237addf
gitlab-monitor v2.16.0 git:bc1fc7bb78aa18247a1c89f884eabc62f90ea28a
gitlab-pages v0.9.1 git:7edf64c1951e2184890403ab60c26381dd81e942
gitlab-psql fdf6f1b9931a92993bec79893998d39c
gitlab-rails v10.8.7 git:eb600b0b2f8fa825fe5a3150b6e846a712db4441
gitlab-scripts 10.8.7
gitlab-selinux 10.8.7
gitlab-shell v7.1.2 git:dc67cf1a62529bf7aecc8e350994ac40d5f4a068
gitlab-workhorse v4.2.1 git:3005778d892306be588883b67f5935d587b31ed7
root@git-clone:/opt/upgrade# gitlab-ctl status
run: alertmanager: (pid 17651) 34s; run: log: (pid 17664) 33s
run: gitaly: (pid 17623) 35s; run: log: (pid 19931) 1475s
run: gitlab-monitor: (pid 17700) 31s; run: log: (pid 19989) 1464s
run: gitlab-workhorse: (pid 17612) 35s; run: log: (pid 11015) 2229s
run: logrotate: (pid 17704) 31s; run: log: (pid 915) 3542s
run: nginx: (pid 17710) 31s; run: log: (pid 917) 3542s
run: node-exporter: (pid 17716) 30s; run: log: (pid 19968) 1467s
run: postgres-exporter: (pid 17682) 33s; run: log: (pid 19981) 1465s
run: postgresql: (pid 17438) 133s; run: log: (pid 918) 3542s
run: prometheus: (pid 17638) 34s; run: log: (pid 19957) 1469s
run: redis: (pid 17419) 135s; run: log: (pid 922) 3542s
run: redis-exporter: (pid 17725) 30s; run: log: (pid 19975) 1466s
run: sidekiq: (pid 17730) 29s; run: log: (pid 924) 3542s
run: unicorn: (pid 17745) 29s; run: log: (pid 916) 3542s
Sprawdzamy na www czy gitlab działa.
Jeśli ok aktualizujemy UBUNTU do wersji 16.04
do-release-upgrade
Po aktualizacji nastąpi restart maszyny
Jeśli po restarcie gitlab się nie podniesie to:
gitlab-ctl reconfigure
gitlab-ctl status
Sprawdzamy na www czy gitlab działa.
Jeśli jest ok aktualizujemy Ubuntu do wersji 18.04
do-release-upgrade
Po aktualizacji nastąpi restart maszyny
Aktualizujemy do najnowszej wersji 11.x dla Ubuntu 18.04
wget --content-disposition https://packages.gitlab.com/gitlab/gitlab-ce/packages/ubuntu/bionic/gitlab-ce_11.7.5-ce.0_amd64.deb/download.deb
root@git-clone:/opt/upgrade# dpkg -i gitlab-ce_11.7.5-ce.0_amd64.deb
(Odczytywanie bazy danych ... 156043 pliki i katalogi obecnie zainstalowane.)
Przygotowywanie do rozpakowania pakietu gitlab-ce_11.7.5-ce.0_amd64.deb ...
* git_data_dir has been deprecated since 8.10 and removed in 11.0. Use git_data_dirs instead.
Deprecations found. Please correct them and try again.
dpkg: błąd przetwarzania archiwum gitlab-ce_11.7.5-ce.0_amd64.deb (--install):
new gitlab-ce package pre-installation script subprocess returned error exit status 1
Wystąpiły błędy podczas przetwarzania:
gitlab-ce_11.7.5-ce.0_amd64.deb
Jeśli pojawi nam sie taki błąd, to należy w pliku /etc/gitlab/gitlab.rb zamienić wpis (na podstawie https://docs.gitlab.com/omnibus/settings/configuration.html#storing-git-data-in-an-alternative-directory):
git_data_dir /opt/gitlab/gitlab-data
na
git_data_dirs ({ "default" => { "patch" => "/opt/gitlab/gitlab-data" } })
gitlab-ctl reconfigure
i ponownie
dpkg -i gitlab-ce_11.7.5-ce.0_amd64.deb
root@git-clone:/opt/upgrade# grep gitlab /opt/gitlab/version-manifest.txt
gitlab-ce 11.7.5
gitlab-config-template 11.7.5
gitlab-cookbooks 11.7.5
gitlab-ctl 11.7.5
gitlab-healthcheck 1c4cd0e8e06f0ccf04e72e3b536beabf
gitlab-monitor v2.19.1 git:f4c4ef9c42457a3a8a2bb153a5f0798f1d8ed3ed
gitlab-pages v1.3.1 git:b1c5548bb50552003fd94491b62625390d742ac5
gitlab-psql 7e26463d2041e381a5d8ff694847f93a
gitlab-rails v11.7.5 git:c5b5b18b3f1c5b683ceb4471e667d675de9200eb
gitlab-scripts 11.7.5
gitlab-selinux 11.7.5
gitlab-shell v8.4.4 git:5969bd068d8aa9b19e69c96c8644f821602b4c6e
gitlab-workhorse v8.0.2 git:e6c51668c850afbc8032dddee0037a4066da2e08
root@git-clone:/opt/upgrade# /opt/gitlab/bin/gitlab-ctl status
run: alertmanager: (pid 27713) 34s; run: log: (pid 724) 2415s
run: gitaly: (pid 27616) 38s; run: log: (pid 857) 2412s
run: gitlab-monitor: (pid 27653) 37s; run: log: (pid 853) 2412s
run: gitlab-workhorse: (pid 27591) 39s; run: log: (pid 852) 2412s
run: logrotate: (pid 27758) 32s; run: log: (pid 722) 2415s
run: nginx: (pid 27603) 38s; run: log: (pid 859) 2412s
run: node-exporter: (pid 27633) 37s; run: log: (pid 848) 2412s
run: postgres-exporter: (pid 27730) 34s; run: log: (pid 855) 2412s
run: postgresql: (pid 9755) 860s; run: log: (pid 854) 2412s
run: prometheus: (pid 27676) 35s; run: log: (pid 851) 2412s
run: redis: (pid 27582) 39s; run: log: (pid 735) 2415s
run: redis-exporter: (pid 27663) 36s; run: log: (pid 856) 2412s
run: sidekiq: (pid 27552) 57s; run: log: (pid 723) 2415s
run: unicorn: (pid 27825) 32s; run: log: (pid 858) 2412s
Sprawdzamy na www czy gitlab działa. W ten sposób mamy najnowszą wersję Ubuntu 18.04 i najnowszą wersję gitlaba.