Omnibus Gitlab CE 설치형 8.5에서 10.4로 업데이트
회사에서 Omnibus Gitlab CE 8.5.1 버전을 설치해서 사용한지 2년 정도 지났다.
업데이트를 진행하다가 어마무시한 삽질한 경험에 흔적을,,,
– 삽질
Omnibus를 너무 신뢰한 나머지 난 바로 10.4로 업데이트 진행
하지만 여기서도 삽질을 좀 했는데 Gitlab 공식 업데이트 가이드는
1. 백업을 진행하고
2. 업데이트 진행
백업 진행시에는 /var/opt/gitlab/backups 의 경로가 default로 잡혀있다.
난 disk 공간이 부족하기 때문에 /etc/gitlab/gitlab.rb 파일의 backup 경로를 수정 하였다.
1 2 3 | sudo nano /etc/gitlab/gitlab.rb gitlab_rails['backup_path'] = "/repository/backup/gitlab" // backup 지정 경로 |
그리고 Gitlab에서 가이드대로 업데이트를 진행하였지만 난 진행되지 않았다.
문제점이 먼지 명확하게 이해는 되지 않았지만 버전을 명시하지 않아서 발생한걸로 예상된다.
1 2 3 4 5 6 7 8 9 10 11 | // gitlab guide sudo apt-get update && sudo apt-get install gitlab-ce // 내가 진행한 방법 sudo apt-get update // 업데이트 버전 확인 // https://packages.gitlab.com/gitlab/gitlab-ce // 10.4.0의 trusty 버전으로 설치 curl -s https://packages.gitlab.com/install/repositories/gitlab/gitlab-ce/script.deb.sh | sudo bash sudo apt-get install gitlab-ce=10.4.0-ce.0 |
Omnibus 버전이라 설치는 매우 간단하다.
모든것을 알아서 설치해줌
설치가 완료되고 나면
1 | sudo gitlab-ctl reconfigure |
명령어를 입력하여 재설정을 진행한다.
이러고 사이트를 들어가니 502 에러? 500 에러? 아무튼 에러가 발생한다.
Gitlab에서 guide하고 있는 업데이트 방식은
현재 사용중인 major version의 최신 버전으로 업데이트를 하고 다음 major version 으로 업데이트 하는 방식을 권장한다.
나의 경우라면
8.5.1 -> 8.17.7 -> 9.4.5 -> 10.4.0
식으로 업데이트를 진행하면 된다.
https://docs.gitlab.com/ee/policy/maintenance.html
사실 위에 방법으로 업데이트 하고 Gitlab 사이트가 정상적으로 로드되고 로그인까지 정상!
데이터 또만 그대로 보존!
눈물을 흘렸는데 문제가 더 발생하였다.
브라우저 기반의 Gitlab 사이트는 정상적으로 사용 가능했지만
console에서 http, ssh 로 git 사용이 불가능한 상황이었다.
몇일을 구글링해서 삽질하다가 결국 Gitlab issue로 등록하여 문제를 해결하였다.
Omnibus Gitlab CE가 10 버전으로 업데이트되면서 내부적으로 많은 변화가 있었다.
그래서 gitaly 문제로 해당 문제가 발생하였다.
위에서 기본적인 Gitlab의 설정은 /etc/gitlab/gitlab.rb 파일로 관리한다고 하였는데
해당 파일을 열어보면 기본 설정을 입력하지 않으면 default로 적용된다.
## Build Artifacts
# gitlab_rails[‘artifacts_enabled’] = true
# gitlab_rails[‘artifacts_path’] = “/mnt/storage/artifacts”
## Git LFS
# gitlab_rails[‘lfs_enabled’] = true
# gitlab_rails[‘lfs_storage_path’] = “/mnt/storage/lfs-objects”
## ElasticSearch (EE only)
# gitlab_rails[‘elasticsearch_enabled’] = false
# gitlab_rails[‘elasticsearch_host’] = “localhost”
# gitlab_rails[‘elasticsearch_port’] = 9200
## GitLab Pages (EE only)
# gitlab_rails[‘pages_path’] = “/mnt/storage/pages”
그런데 gitaly의 사용설정 부분은 명시적으로 선언을 해주어야 한다.
나의 /etc/gitlab/gitlab.rb 에는 gitaly 관련 설정 구문이 없어서
기본으로 설정되겠지 했는데
1 2 3 4 5 6 7 8 9 | sudo nano /etc/gitlab/gitlab.rb // 하단 gitaly 사용 추가 gitaly ['enable'] = true // /etc/gitlab/gitlab.rb 파일을 수정하고서는 설정을 반영하여야 한다. sudo gitlab-ctl reconfigure // 혹시 문제가 발생한다면 gitlab 재시작! sudo gitlab-ctl restart |
상위 처럼 명시적으로 사용으로 선언해주어야 Gitlab에 정상적으로 동작한다.
나와같은 삽질을 하는 분이 없길 바라며,,,