gitlab-backup-cli
를 사용하여 GitLab 백업 및 복원하기
- GitLab 17.0에서 도입되었습니다. 이 기능은 Experiment이며 GitLab 테스트 계약에 따릅니다.
이 도구는 개발 중이며 궁극적으로는 GitLab을 백업하고 복원하는 데 사용되는 Rake 작업을 대체하기 위한 것입니다. 해당 도구의 개발은 이 에픽에서 확인할 수 있습니다: Next Gen Scalable Backup and Restore.
이 도구에 대한 피드백은 피드백 이슈에 환영합니다.
백업하기
현재 GitLab 설치를 백업하려면 다음을 실행하세요:
sudo gitlab-backup-cli backup all
백업 디렉터리 구조
예시 백업 디렉터리 구조:
backups
└── 1714053314_2024_04_25_17.0.0-pre
├── artifacts.tar.gz
├── backup_information.json
├── builds.tar.gz
├── ci_secure_files.tar.gz
├── db
│ ├── ci_database.sql.gz
│ └── database.sql.gz
├── lfs.tar.gz
├── packages.tar.gz
├── pages.tar.gz
├── registry.tar.gz
├── repositories
│ ├── default
│ │ ├── @hashed
│ │ └── @snippets
│ └── manifests
│ └── default
├── terraform_state.tar.gz
└── uploads.tar.gz
db
디렉터리는 pg_dump
를 사용하여 GitLab PostgreSQL 데이터베이스를 백업하는 데 사용됩니다. pg_dump
의 출력물은 압축된 SQL 파일을 만들기 위해 gzip
로 파이핑됩니다.
repositories
디렉터리는 GitLab 데이터베이스에서 찾을 수 있는 Git 리포지터리를 백업하는 데 사용됩니다.
백업 ID
백업 ID는 개별 백업을 식별합니다. GitLab을 복원해야 하는 경우 여러 백업이 있는 경우 백업 아카이브의 백업 ID가 필요합니다.
백업은 config/gitlab.yml
파일에 지정된 backup_path
디렉터리에 저장됩니다.
- 기본적으로 백업은
/var/opt/gitlab/backups
에 저장됩니다. - 기본적으로 백업 디렉터리는
backup_id
에 따라 이름이 지정되며,<backup-id>
는 백업이 생성된 시간과 GitLab 버전을 나타냅니다.
예를 들어, 백업 디렉터리 이름이 1714053314_2024_04_25_17.0.0-pre
이면, 생성 시간은 1714053314_2024_04_25
로 나타내고 GitLab 버전은 17.0.0-pre입니다.
백업 메타데이터 파일 (backup_information.json
)
- 메타데이터 버전 2는 GitLab 16.11에서 도입되었습니다.
backup_information.json
은 백업 디렉터리에 있으며, 백업에 대한 메타데이터를 저장합니다. 예를 들면:
{
"metadata_version": 2,
"backup_id": "1714053314_2024_04_25_17.0.0-pre",
"created_at": "2024-04-25T13:55:14Z",
"gitlab_version": "17.0.0-pre"
}