Gitlab 6.6.5에서 8.7.0으로 업그레이드 하기

6.6.5버전에서 8.7.0으로 바로 업그레이드 하면 오류가 발생하여 부득하게 7.10.4 omni버전으로 업그레이드 후 8.7.0버전으로 업그레이드 하였다.


*이전(Migration) - 이전이 필요 없을 경우 바로 7.10.4 omni버전으로 업그레이드 후 8.7.0 버전으로 업그레이드 하면 된다.
1. 백업
/home/git/gitlab$ sudo -u git -H bundle exec rake RAILS_ENV=production gitlab:backup:create (backing up at old gitlab server, source compile version)
 소스로 컴파일한 버전의 경우 위와 같이 백업 한다.

omnibus 버전인 경우는 
sudo gitlab-rake gitlab:backup:create

2. 복구
서버 사양은 2core 2G 이상의 RAM을 가지고 있어야 원활하게 작동한다. 
해당 서버가 마련 되었으면 아래 명령어를 이용하여 6.6.5버전을 설치한다.(Ubuntu에 설치)
sudo apt-get install openssh-server
sudo apt-get install postfix # sendmail or exim is also OK
sudo dpkg -i gitlab-x.y.z.deb # this is the .deb you downloaded(6.6.5)
sudo gitlab-ctl reconfigure

6.6.5버전은 https://about.gitlab.com/downloads/archives/ 경로를 통해 얻을 수 있다.(wget 혹은 다운로드 후 직접 서버에 업로드)

백업한 파일을 서버에 올린다.(e.g. /home/git/gitlab/tmp/backups/1461220799_gitlab_backup.tar)
해당 디렉토리로 옮긴다.
sudo mv 1461220799_gitlab_backup.tar /var/opt/gitlab/backups/
# 데이터베이스에 접근하는 프로세스를 정지 시킨다.
sudo gitlab-ctl stop unicorn
sudo gitlab-ctl stop sidekiq
# 복원한다.
/var/opt/gitlab$ sudo gitlab-rake gitlab:backup:restore BACKUP=1461220799
복원 시 혹시 버전이 맞지 않다고 하면 tar 파일 안의 "backup_information.yml" 파일의 버전 정보를 6.6.5로 변경 한 후 다시 tar로 묶어 사용한다.

# Gitlab을 시작한다.
sudo gitlab-ctl start
# Gitlab 상태를 확인한다.
sudo gitlab-rake gitlab:check SANITIZE=true


업그레이드 - 이전 하지 않은 경우 여기부터 시작하면 된다. 혹시나 모를 문제를 위해 백업은 반드시 실행 후 업그레이드 하자.

7.10.4버전 또한 https://about.gitlab.com/downloads/archives/ 경로를 통해 얻을 수 있다.(wget 혹은 다운로드 후 직접 서버에 업로드)
# Ubuntu/Debian:
sudo dpkg -i gitlab-ce_7.10.4-omnibus-1_amd64.deb


로그상에 에러가 발생하면  “NoMethodError (undefined method `push_events=' for ~~~”, 이 명령어를 실행한다. “sudo gitlab-rake db:migrate , sudo gitlab-ctl reconfigure”.
로그 위치는 /var/log/gitlab/gitlab-rails/production.log 이다. permission 오류가 발생하면 sudo를 사용하자. 

이로써 7.10.4버전으로 업그레이드가 완료 되었을 것이다. gitlab 페이지를 열면 해당 버전으로 정상작동하는 것을 알 수 있다.

이제는 8.7.0버전으로 업그레이드 차례이다.
서버에서 아래 명령어를 수행한다.
curl -sS https://packages.gitlab.com/install/repositories/gitlab/gitlab-ce/script.deb.sh | sudo bash
sudo apt-get install gitlab-ce
sudo gitlab-ctl reconfigure
sudo gitlab-ctl restart



reference site




추가문제해결

위키가 생성 되지 않는 문제가 발생하고 production.log 에 "NoMethodError (undefined method username' for~~~" 오류가 발생하는 경우 아래 URL을 참고 하여 /opt/gitlab/embedded/service/gitlab-rails/app/services/wiki_pages/create_service.rb 파일 내용만 수정하면 일단 작동은 된다.(Workaround)


8.8.0에서 완전 수정 될 듯 하다.

댓글

이 블로그의 인기 게시물

AWS를 이용한 Serverless 환경 구축 2 - Lambda로 DynamoDB 쓰고 읽기

Gitlab CI 설정

AWS Ceritificate Manger 이용방법