본문 바로가기

Devops/Git

[Gitlab] Gitlab backup, restore

Gitlab container에 터미널 접속

 

root@MyFriends:~# docker ps
CONTAINER ID   IMAGE                     COMMAND                  CREATED         STATUS                 PORTS                                                                  NAMES
d0a1cac82f0f   gitlab/gitlab-ce:latest   "/assets/wrapper"        3 months ago    Up 3 hours (healthy)   0.0.0.0:40002->22/tcp, 0.0.0.0:40000->80/tcp, 0.0.0.0:40001->443/tcp   gitlab-gitlab-ce1


root@MyFriends:~# docker exec -it gitlab-gitlab-ce1 bash
root@gitlab-gitlab-ce1:/#

 

gitlab 버전 12.2 이상

 

gitlab-backup create

 

gitlab 버전 12.1 이하

 

gitlab-rake gitlab:backup:create

 

실행결과

 

root@gitlab-gitlab-ce1:/# gitlab-backup
2022-03-10 00:57:11 +0000 -- Dumping database ...
Dumping PostgreSQL database gitlabhq_production ... [DONE]
2022-03-10 00:57:16 +0000 -- done
2022-03-10 00:57:16 +0000 -- Dumping repositories ...
time="2022-03-10T00:57:17.369Z" level=info msg="started create" command=create gl_project_path=authentication/oauth_login_backend relative_path=@hashed/ef/2d/ef2d127de37b942baad06145e54b0c619a1f22327b2ebbcfbec78f5564afe39d.git storage_name=default

...중략

2022-03-10 00:57:20 +0000 -- done
2022-03-10 00:57:20 +0000 -- Dumping uploads ...
2022-03-10 00:57:20 +0000 -- done
2022-03-10 00:57:20 +0000 -- Dumping builds ...
2022-03-10 00:57:20 +0000 -- done
2022-03-10 00:57:20 +0000 -- Dumping artifacts ...
2022-03-10 00:57:20 +0000 -- done
2022-03-10 00:57:20 +0000 -- Dumping pages ...
2022-03-10 00:57:20 +0000 -- done
2022-03-10 00:57:20 +0000 -- Dumping lfs objects ...
2022-03-10 00:57:20 +0000 -- done
2022-03-10 00:57:20 +0000 -- Dumping container registry images ...
2022-03-10 00:57:20 +0000 -- [DISABLED]
Creating backup archive: 1646873840_2022_03_10_14.5.2_gitlab_backup.tar ... done
Uploading backup archive to remote storage  ... skipped
Deleting tmp directories ... done
done
done
done
done
done
done
done
Deleting old backups ... skipping
Warning: Your gitlab.rb and gitlab-secrets.json files contain sensitive data
and are not included in this backup. You will need these files to restore a backup.
Please back them up manually.
Backup task is done.

 

설정 및 암호키 백업

백업 명령으로 생성되는 백업파일에는 설정정보나 CI/CD 시크릿 변수, 2차인증 정보 등과 관련한 정보들은 자동으로 저장되지 않는다고 한다. (보안상의 이유로 자동으로 백업을 생성하는 것이 구조적으로 문제가 있어서 그렇다고 한다.)

본인은 pull push도 http 방식으로 진행었고, CI/CD 관련 설정한 것이나 2차인증등은 구현하지 않았었기 때문에 별도로 백업을 하지 않아도 이후 복원시 전혀 문제가 없었지만, 관련하여 백업이 필요한 경우에는 별도 백업 이후 복원작업 진행시 다시 정상 경로에 파일들을 위치시키고 복원을 진행해야 한다고 한다. 파일들의 위치는 다음과 같다.

  • /etc/gitlab/gitlab-secrets.json
  • /etc/gitlab/gitlab.rb

'Devops > Git' 카테고리의 다른 글

[Devops] Git stash 명령 사용하기  (0) 2023.09.01