Để tìm hiểu và triển khai Gitlab mời các bạn xem bài viết: Triển khai gitlab trên Centos
Bài viết này sẽ hướng dẫn các bạn Sao lưu và phục hồi Gitlab trên Linux.
Sao lưu
Để sao lưu Gitlab chúng ta tiến hành 2 việc sau:
Sao lưu thư mục /etc/gitlab
Sao lưu thư mục /etc/gitlab bằng lệnh sau:
tar cfz /opt/gitlab_backup/$(date "+%s_%Y_%m_%d_etc_gitlab.tar.gz") -C /etc gitlab
Sau khi thực hiện lệnh trên, trong thư mục /opt/gitlab_backup/ bạn sẽ có được file backup tương tự như sau: 1528815659_2019_04_03_etc_gitlab.tar.gz
Sao lưu dữ liệu của Gitlab
Để sao lưu dữ liệu của Gitlab chúng ta dùng công cụ gitlab-rake có sẵn
/opt/gitlab/bin/gitlab-rake gitlab:backup:create
Sau khi thực thi lệnh trên chúng ta sẽ có file backup tương tự như sau: 1528815659_2019_09_04_gitlab_backup.tar
Lưu ý: file backup của Gitlab được đặt ở thư mục /var/opt/gitlab/backups/
Tạo script sao lưu tự động
Để tự động hóa việc sao lưu Gitlab hàng ngày/ hàng tuần hoặc theo lịch tùy chọn, các bạn có thể tạo script nội dung như sau:
#!/bin/sh BKDIR=/opt/gitlab_backup # Get GitLab Config tar cfz ${BKDIR}/$(date "+%s_%Y_%m_%d_etc_gitlab.tar.gz") -C /etc gitlab # Get GitLab Backup /opt/gitlab/bin/gitlab-rake gitlab:backup:create # Delete find $BKDIR -mtime +2 | xargs rm -rf
Sau đó tạo crond job như sau:
[root@ITFROMZERO]# crontab -e # # Gitlab Backup Crond # 0 6 * * * sh /opt/gitlab_backup/backup.sh
Theo crond job trên hàng ngày vào lúc 6h sáng sẽ chạy script sao lưu Gitlab.
Để tránh ổ cứng bị đầy vì quá nhiều file sao lưu dữ liệu các bạn có thể thêm option sau vào câu lệnh sao lưu dữ liệu Gitlab
gitlab-rake gitlab:backup:create CRON=1
Phục hồi dữ liệu
Để phục hồi dữ liệu cho Gitlab các bạn làm các bước sau:
Tắt Gitlab đang chạy
Thực thi lệnh sau để tắt Gitlab:
# gitlab-ctl stop unicorn # gitlab-ctl stop sidekiq
Kiểm tra Gitlab thực sự tắt hay chưa
# gitlab-ctl status |grep down down: sidekiq: 10s, normally up; run: log: (pid 670) 5423s down: unicorn: 20s, normally up; run: log: (pid 655) 5423s
Phục hồi cài đặt của Gitlab
Trước hết chúng ta sao lưu cài đặt hiện tại ra thư mục khác
mv /etc/gitlab /etc/gitlab.20190404
Sau đó giải nén file đã sao lưu và move đến thư mục cấu hình của gitlab
# tar zxvf ./1528815601_2019_09_04_etc_gitlab.tar.gz # mv ./gitlab /etc/gitlab
Phục hồi dữ liệu Gitlab
Để phục hồi dữ liệu cho Gitlab chúng ta cũng dùng công cụ có sẵn của Gitlab, lệnh thực thi như sau:
# gitlab-rake gitlab:backup:restore BACKUP=$TIMESTAMP
$TIMESTAP là thời gian sao lưu được ghi trên file backup, bạn thay thế là được.
Ví dụ:
gitlab-rake gitlab:backup:restore BACKUP=1528815659_2019_04_14
Sau đó chúng ta restart và check Gitlab là xong quá trình phục hồi
/opt/gitlab/bin/gitlab-ctl restart /opt/gitlab/bin/gitlab-rake gitlab:check SANITIZE=true
Trên đây là bài viết về sao lưu và phục hồi dữ liệu cho Gitlab. Chúc các bạn thành công.