회원가입

AWS Linux 2 Gitlab Community Edition 백업 및 복구

NULL 2022-03-15

 

시작에 앞서...


이전 포스팅에서 AWS Linux 로 Gitlab CE를 구축하는 방법을 알아봤다.

(구축 방법 링크: https://nulls.co.kr/project/450)

하지만 필자는 구축뿐만 아니라 기존에 있는 데이터들도 전부 백업 및 복구해야 했다.

 

백업 및 복구하는 방법은 Gitlab CE에 기본적으로 기능을 제공하고 있어 하기 편했다.

 

 

AWS Linux 2 Gitlab Community Edition 백업 및 복구


필독:

- 백업 및 복구하려면 새롭게 생성한 Gitlab Community Edition 버전은 백업할 Gitlab Community Edition 버전과 같아야 한다.

 

버전을 알고 싶다면 아래 명령어를 입력하면 된다.

sudo gitlab-rake gitlab:env:info

명령어를 치고 좀 오래 기다려야 한다. (바로 안 나오는 경우가 있다)

아래 사진을 보면 Version이 뜬다.

 

 

1. 새로운 Amazon Linux 2 에 이전 버전과 같은 버전으로 Gitlab Community Edition 을 설치한다.

예) 특정 버전 다운로드 방법

gitlab-ce와 버전을 같이 입력하는데, 구분은 "-"로 한다.

필자는 12.7.5가 필요해서 gitlab-ce-12.7.5를 했다.

sudo yum install gitlab-ce-12.7.5

 

 

2. Gitlab Community Edition 데이터를 백업한다.

gitlab 버전 12.2 이상

sudo gitlab-backup create

 

gitlab 버전 12.1 이하

sudo gitlab-rake gitlab:backup:create

 

백업된 파일은 /var/opt/gitlab/backups 경로에 타임 스탬프값_버전_gitlab_backup.tar 형태로 백업파일이 생성된다.

 

또한 gitlab-secrets.json, gitlab.rb 나중에 이전되는 Amazon Linux 2 서버에 옮겨야 하니 따로 보관해 놓자.

이 2개 파일은 /etc/gitlab 폴더 안에 있다.

 

3. Gitlab Community Edition 복원하기

i. 새롭게 생성한 Amazon Linux 2 서버에 순정상태의 gitlab을 한번 기동하여 동작시켜준다.

(참고 링크: https://nulls.co.kr/project/450)

 

ii. 별도로 저장해 놓은 gitlab-secrets.json, gitlab.rb 파일을 새롭게 생성한 Amazon Linux 2 서버 /etc/gitlab 폴더에 기존에 있는 파일을 덮어쓴다.

 

iii. 백업한 Gitlab CE .tar 압축 파일을 새로운 Amazon Linux 2 서버 /var/opt/gitlab/backups 폴더에 넣어준다.

 

iv. 데이터베이스와 연결되는 프로세스들을 정지한다.

sudo gitlab-ctl stop unicorn
sudo gitlab-ctl stop puma
sudo gitlab-ctl stop sidekiq

 

v. 복원을 수행하는 명령어를 실행한다.

백업대상지정 문자열은 예를 들어 1647234996_2022_03_14_12.7.5_gitlab_backup.tar 라면

1647234996_2022_03_14_12.7.5 까지만 입력해줘도 된다.

 

gitlab 버전 12.2 이상

sudo gitlab-backup restore BACKUP=백업대상지정

# 예
# sudo gitlab-backup restore BACKUP=1647234996_2022_03_14_12.7.5

 

gitlab 버전 12.1 이하

sudo gitlab-rake gitlab:backup:restore BACKUP=백업대상지정

# 예
# sudo gitlab-rake gitlab:backup:restore BACKUP=1647234996_2022_03_14_12.7.5

 

 

vi. 중간에 데이터베이스 초기화가 필요하다 ~~ 이야기가 나오는데, 적절히 yes 로 응답하자.

 

 

4. 복원 후, Gitlab 재설정

sudo gitlab-ctl reconfigure
sudo gitlab-ctl restart

 

 

5. 기존에 이전 Gitlab CE 를 이용해 프로젝트를 연결하고 있었다면...

각 프로젝트에 .git 폴더에 config 파일을 텍스트 편집기로 실행하여 url 부분 @ 뒤쪽 혹은 https 면 주소를 새로운 DNS 주소로 바꾼다.

 

또한 만약 ssh 방식으로 clone 을 받았다면 안되는 경우가 있는데 이럴 때는 ssh 이후 주소 쳐서 실행 한번 해 주면 잘 된다.

ssh git@새로운서버주소

 

 

참고 링크:

https://ykarma1996.tistory.com/111

0 0
뼈와 살
프로젝트를 혹은 직장에서 일하면서 겪게 되는 Blocker, 문제 등 나에게 뼈와 살이 되어 성장시켜주게 한 문제점을 어떻게 해결했는지를 기록하는 게시판이다.
Yesterday: 750
Today: 554