Hai semuanya di artikel kali ini saya mau membahas tentang bagaimana cara Upgrade Gitlab Repository (on-premise) dengan cara yang paling mudah yaitu dengan menggunakan Docker.
Pertama yang kita perlukan adalah software requirement:
- Install Docker, Docker Compose
- Backup Repository gitlab
- Backup Credential Store Object
- Template Docker Compose
Install docker
Untuk instalasi docker sangat mudah, cukup download dari official website dan install sesuai platform yang digunakan. Kemudian install juga component docker yaitu Docker Compose. Download dari official webiste dan install sesuai dengan platform masing-masing.
Backup Repository github
Untuk backup, disini kondisi gitlab repository yang saya gunakan masih menggunakan versi 11.10.xx
, jadi gunakan perintah berikut sesuai dengan dokumentasi berikut
Setelah itu, file backupnya biasanya akan di simpan di folder /var/opt/gitlab/backups/
dengan prefix filename millisond-date.version_gitlab_backup.tar
contohnya 1617497494_2021_04_04_11.10.2_gitlab_backup.tar
Backup Credential Object
Setelah di backup, kita ambil juga file credential seperti
/etc/gitlab/gitlab-secret.json
/etc/gitlab/trusted-certs/your-ssl-cert
/etc/gitlab/gitlab.rb
Setup & Preparation Upgrade
Pertama temen-temen download dulu template docker-compose.yaml dari sini, kemudian extract. Setelah extract
- Simpan file backup repostiory ke dalam folder
backups
- Simpan file config credential ke dalam folder
gitlab
Jika dilihat hasilnya seperti berikut:
C:\Users\dimasm93\Workspaces\Example\gitlab-ce-updater-docker>tree .
PATH listing
C:\USERS\DIMASM93\WORKSPACES\EXAMPLE\GITLAB-CE-UPDATER-DOCKER
├───backups
│ └───1617497494_2021_04_04_11.10.2_gitlab_backup.tar
├───docker-compose.yaml
└───gitlab
└───gitlab-secret.json
Kemudian coba liat di file docker-compose.yaml
, seperti berikut:
pada property services.gitlab.image
ubahlah versinya sesuai dengan file backupnya, yaitu: 11.11.0
kemudian kita check di hub.docker.com/r/gitlab menjadi seperti berikut
services:
gitlab:
image: gitlab/gitlab-ce:11.10.2-ce.0
Setelah itu jalankan servicenya dengan perintah:
Kemudian, kita bisa check logsnya dengan perintah berikut:
Setelah gitlabnya running & up, tahap selanjutnya adalah Restore dari backup yang sudah kita siapkan
Restore Gitlab from Backup
Untuk melakukan restore, kita bisa menggunakan perintah docker exec
seperti berikut:
Setelah setelah selesai proses restore, kita reconfigure & restart seperti berikut
Dan
Kemudian coba di check pada web gitlabnya: http://localhost:80 kalo sudah sesuai dengan yang ada di server kita. Tahap selanjutnya adalah upgrade
Upgrade Path
Untuk melakukan upgrade, Gitlab tidak bisa secara langsung artinya klo versinya udah ketinggalan jauh tidak bisa langsung dari 11.11
-> latest
tpi ada tahapannya seperti pada artikel dokumentasi berikut
Karena kita pake versi 11.10
maka pathnya adalah 11.11.8
-> 12.0.12
-> 12.1.17
-> 12.10.14
-> 13.0.14
-> 13.2.10
-> 13.5.4
. Lumayan panjang ya?? yaa lumayan lah, gak terlalu ribet dari pada migrasiin semua repository (sekarang repository ada ratusan di kantor ku :( ) jadi lebih milih upgrade pake docker ja, supaya lebih aman.
Tahap pertama, matikan dulu servicenya docker-compose dengan perintah berikut:
Setelah servicenya mati, pastikan docker volume
jangan dihapus. Karena disitu kita simpan data repository kita. Selanjutnya adalah update versi gitlabnya di docker-compose.yaml
ke target kita contohnya 11.11.8
services:
gitlab:
image: gitlab/gitlab-ce:11.11.8-ce.0
Setelah itu jalankan kembali service docker-composenya dengan perintah yang tadi yaitu seperti berikut:
Maka Otomatis akan malakukan gitlab upgrade. Setelah selesai lakukan sampai versinya sesuai yang kita inginkan. Secara flow
- set version
11.11.8
->docker-compose up
->docker-compose down
- set version
12.0.12
->docker-compose up
->docker-compose down
-
Backup Gitlab Repository menggunakan docker-compose
- set version
12.1.17
->docker-compose up
->docker-compose down
- set version
12.10.14
->docker-compose up
->docker-compose down
- set version
13.0.14
->docker-compose up
->docker-compose down
-
Backup Gitlab Repository menggunakan docker-compose
- set version
13.0.14
->docker-compose up
->docker-compose down
- dan seterurnya
Yang perlu diingat adalah, jangan lupa Backup dan check gitlab web supaya tidak terjadi hal yang tidak di inginkan seperti project repository yang hilang atau setting rusak atau tidak bisa dibuka.