Backup và khôi phục dữ liệu cho Gitlab CE

Bài viết này là phần 4 trong 9 phần của serie bài viết Cài đặt Gitlab CE trên Ubuntu 18

ToiVietBlog - Backup và restore dữ liệu cho Gitlab CE. Tiếp theo trong serie, chúng ta sẽ tìm hiểu các bước để backup dữ liệu cho Gitlab CE và khôi phục dữ liệu khi có sự cố.

backup-va-khoi-phuc-du-lieu-cho-gitlab-ce Backup và khôi phục dữ liệu cho Gitlab CE
Backup và khôi phục dữ liệu cho Gitlab CE.

Bản thân Gitlab cũng đã cung cấp một tài liệu khá đầy đủ về việc Backup & Restore dữ liệu cho máy chủ Gitlab CE.

Tuy nhiên, bài viết này giúp bạn dễ hiểu hơn và có thể thực hiện ngay.

Backup dữ liệu cho Gitlab CE

Gitlab CE chạy khá nhiều gói dịch vụ khác nhau mà bạn sẽ mất nhiều thời gian để tìm hiểu hết tất cả.

Nếu bạn tính chuyện backup từng dịch vụ một bên trong Gitlab thì điều đó không cần thiết.

Chung quy lại, một máy chủ Gitlab sẽ có 3 phần dữ liệu mà bạn cần phải backup.

  1. Dữ liệu file và database bao gồm:
    • Database
    • Attachments
    • Git repositories data
    • CI/CD job output logs
    • CI/CD job artifacts
    • LFS objects
    • Container Registry images
    • GitLab Pages content
  2. File cấu hình và các file cert ssl. Tóm lại là thư mục /etc/gitlab.
    • /etc/gitlab/gitlab-secrets.json
    • /etc/gitlab/gitlab.rb
  3. File rule tường lửa

Để backup, bạn tạo 1 thư mục tạm để chứa 3 dữ liệu cần backup ở trên.

# mkdir -p /tmp/backup

1. Dữ liệu file và database

Gitlab cung cấp 1 lệnh cho phép ta tạo dữ liệu backup một cách nhanh chóng.

# gitlab-backup create

Sau khi lệnh chạy xong, nó sẽ tạo ra một file backup .tar nằm trong thư mục /var/opt/gitlab/backups.

File có format dạng xxxxxxxxxx_yyyy_mm_dd_12.8.1_gitlab_backup.tar.

Bạn move file backup đó vào trong thư mục backup tạm. Nhớ thay xxxxxxxxxx_yyyy_mm_dd_12.8.1 với tên chính xác của file.

# mv /var/opt/gitlab/backups/xxxxxxxxxx_yyyy_mm_dd_12.8.1_gitlab_backup.tar /tmp/backup

2. File cấu hình

Copy toàn bộ thư mục /etc/gitlab vào thư mục backup tạm.

# cp -rp /etc/gitlab /tmp/backup

3. File rule tường lửa

Tùy vào loại tường lửa trên máy chủ mà bạn đang sử dụng. Ví dụ, với Ubuntu 18.04 và mình đang sử dụng IPtables.

# cp -rp /etc/iptables/rules.v4 /tmp/backup

4. Đóng gói toàn bộ và chuyển tới server backup

Giờ bạn sử dụng lệnh dưới để đóng gói thư mục backup tạm với toàn bộ dữ liệu backup ở trong.

# tar -cvzf backup.tar.gz /tmp/backup

Sau đó bạn có thể copy file backup.tar.gz này tới máy chủ backup thông qua rsync hoặc tới các dịch vụ lưu trữ cloud như Google Drive, One Drive, Amazon S3…

Cuối cùng là xóa dữ liệu backup tạm.

# rm -f backup.tar.gz
# rm -rf /tmp/backup

Khôi phục dữ liệu cho Gitlab CE

Khôi phục dữ liệu sẽ thực hiện ngược lại với quá trình backup. Với phần rule tường lửa thì mình xin phép không cần nhắc tới trong quá trình khôi phục dữ liệu. Bạn chỉ cần cho load lại file rule là xong.

Lưu ý: bạn cần chạy phiên bản Gitlab giống với phiên bản backup trước khi thực hiện các thao tác restore

Restore file backup database

Đầu tiên, bạn copy file backup database vào trong thư mục backup của máy chủ Gitlab.

# cp xxxxxxxxxx_yyyy_mm_dd_12.8.1_gitlab_backup.tar /var/opt/gitlab/backups/

Sau đó, bạn gán quyền owner file backup cho user git.

# chown git.git /var/opt/gitlab/backups/xxxxxxxxxx_yyyy_mm_dd_12.8.1_gitlab_backup.tar

Tiếp theo, bạn ngừng các dịch vụ của Gitlab đang kết nối về database.

# gitlab-ctl stop unicorn
# gitlab-ctl stop puma
# gitlab-ctl stop sidekiq
# gitlab-ctl status

Rồi bạn chạy lệnh restore file backup với nhãn thời gian và phiên bản của file.

# gitlab-backup restore xxxxxxxxxx_yyyy_mm_dd_12.8.1

Restore file cấu hình

Chuyển thư mục /etc/gitlab hiện tại thành bản cũ.

# mv /etc/gitlab /etc/gitlab_old

Sau đó copy thư mục gitlab trong file backup vào thư mục /etc/trên server hiện tại.

# cp gitlab /etc/

Lưu ý kiểm tra lại các file cấu hình trong thư mục /etc/gitlab vừa copy xong.

Reconfigure hệ thống

Cuối cùng là thực hiện apply lại các cấu hình backup cho hệ thống.

# gitlab-ctl reconfigure
# gitlab-ctl restart
# gitlab-rake gitlab:check SANITIZE=true

Kết luận

Với bài viết này, bạn đã hoàn toàn có thể nắm được các bước backup và khôi phục dữ liệu cho hệ thống Gitlab CE như thế nào. Hy vọng bài viết này sẽ giúp các bạn có thêm một bước yên tâm hơn cho hệ thống của mình.

Tiếp tục đọc serie bài viết«« Phần trước: Thiết lập mail SMTP cho Gitlab CEPhần tiếp theo: Script backup dữ liệu Gitlab CE lên Amazon S3 »»
0 0 votes
Article Rating
Nhấn vào đây để đánh giá bài này!
[Tổng: 0 - Trung bình: 0]

If you appreciate what we share in this blog, you can support us by:
  1. Stay connected to: Facebook | Twitter | Google Plus | YouTube
  2. Subscribe email to recieve new posts from us: Sign up now.
  3. Start your own blog with SSD VPS - Free Let's Encrypt SSL ($2.5/month).
  4. Become a Supporter - Make a contribution via PayPal.
  5. Support us by purchasing Ribbon Lite Child theme being using on this website.

We are thankful for your support.

«« »»
Theo dõi
Thông báo về
guest
0 Comments
Inline Feedbacks
View all comments