Jenkins: Hướng dẫn backup và restore dữ liệu Jenkins

Jenkins: Hướng dẫn backup và restore dữ liệu Jenkins | Hôm nay chúng ta sẽ tiến đền phần rất cơ bản nhưng quan trọng của việc quản trị hệ thống dịch vụ CI/CD Jenkins. Đó chính là làm sao để backup (sao lưu) dữ liệu Jenkins, khi cần thì ta khôi phục (restore) lại dữ liệu cần thiết cho Jenkins. Vậy hãy cùng Cuongquach.com đón đọc bài viết nhé.

backup và restore dữ liệu jenkins

Có thể bạn quan tâm bài viết khác
Thay đổi giao diện Jenkins UI với theme material
Ebook Jenkins Continous Integration Cookbook 2
Hướng dẫn cài đặt Jenkins trên CentOS 7
Hướng dẫn reset mật khẩu user Jenkins Admin

1. Backup thư mục $JENKINS_HOME

Nếu bạn vẫn nhớ thì Jenkins không sử dụng cơ sở dữ liệu. Mọi cấu hình, build, job,… đều lưu trữ dưới dạng file và được chứa trong thư mục biến môi trường $JENKINS_HOME .

Thư mục $JENKINS_HOME sẽ có cấu trúc cơ bản như thế này :

JENKINS_HOME
 +- config.xml     (jenkins root configuration)
 +- *.xml          (other site-wide configuration files)
 +- userContent    (files in this directory will be served under your http://server/userContent/)
 +- fingerprints   (stores fingerprint records)
 +- plugins        (stores plugins)
 +- workspace (working directory for the version control system)
     +- [JOBNAME] (sub directory for each job)
 +- jobs
     +- [JOBNAME]      (sub directory for each job)
         +- config.xml     (job configuration file)
         +- latest         (symbolic link to the last successful build)
         +- builds
             +- [BUILD_ID]     (for each build)
                 +- build.xml      (build result summary)
                 +- log            (log file)
                 +- changelog.xml  (change log)

Vậy cách đơn giản nhất để backup Jenkins đó là hãy nén toàn bộ thư mục $JENKINS_HOME và đem đi lưu trữ ở server khác là được. Khi bạn cần khôi phục (restore) dữ liệu Jenkins thì chỉ cần xả nén file backup vào lại thư mục $JENKINS_HOME.

Lưu ý:
– Tốt nhất là stop server Jenkins khi thực hiện backup.

Thao tác backup Jenkins đơn giản

– Kiểm tra thư mục $JENKINS_HOME hiện tại là gì, nếu bạn không nhớ.

# cat /etc/sysconfig/jenkins | grep "^JENKINS_HOME"
JENKINS_HOME="/var/lib/jenkins"
# cat /etc/passwd | grep "jenkins"
jenkins:x:987:983:Jenkins Automation Server:/var/lib/jenkins:/bin/false

– Ta đã xác định được thư mục $JENKINS_HOME là : /var/lib/jenkins . Giờ ta sẽ nén thư mục này lại để backup là xong.

# tar cvf jenkins-backup.tar.gz /var/lib/jenkins/*
# ll | grep jenkins-backup
-rw-r--r-- 1 root root 40960 Apr 25 13:25 jenkins-backup.tar.gz

Vậy là xong rồi đấy. Bạn hoàn toàn có thể linh động làm bash shell script backup định kì với Cronjob.

2. Backup với plugin ThinBackup Jenkin

Plugin Thin Backup là một plugin rất phổ biến dành cho hoạt động backup Jenkins. Plugin này sẽ thực hiện backup toàn bộ dữ liệu dựa trên cấu hình thời gian biểu của bạn.

Thao tác backup Jenkins với ThinBackup

Bước 1: cài đặt ThinBackup : Jenkins -> Manage Plugins -> Cài “ThinBackup”. Quá trình cài đặt Plugin bất kì của Jenkins có thể đọc tài bài viết (Jenkins: Quản lý cài đặt Jenkins Plugins cơ bản).

jenkins search plugins

Thực hiện restart Jenkins khi quá trình tải plugin đã hoàn tất và đảm bảo không có jobs nào đang chạy.

jenkins plugin install thinbackup

Sau khi bạn thực hiện restart, thì bạn sẽ được chuyển hướng đến trang thông báo khởi động lại Jenkins. Lúc này quá trình cài đặt plugin sẽ bắt đầu và mất một lúc để hoàn thành.

jenkins install plugin restart

Bước 2: cấu hình Jenkins plugin ThinkBackup. Bạn vào “Manage Jenkins” > “ThinBackup“.

Chọn “Settings” để tiến hành cấu hình cho ThinBackup.

Bạn sẽ cần cấu hình các mục lưu ý trong này như : nơi lưu trữ folder backup, thời gian biểu thực hiện backup, các loại dữ liệu Jenkins cần backup,… Sau đó bạn lưu lại “Save“.

jenkins thin backup 3Bước 3: thử backup . Bạn sẽ quay lại phần menu của ThinBackup. Lúc này bạn chọn “Backup Now“, để tiến hành backup trực tiếp.

Lúc này bạn SSH vào server Jenkins, sẽ thấy ở thư mục bạn lựa chọn lưu dữ liệu backup Jenkins sẽ có file định dạng như sau. Đó chính là folder backup do ThinBackup thực hiện sao lưu cho bạn. :

# ll /tmp/FULL-2018-04-25_14-46/
total 32
-rw-r--r-- 1 jenkins jenkins 1825 Apr 25 13:51 config.xml
-rw-r--r-- 1 jenkins jenkins  156 Apr 25 13:51 hudson.model.UpdateCenter.xml
-rw-r--r-- 1 jenkins jenkins  656 Apr 25 14:46 installedPlugins.xml
-rw-r--r-- 1 jenkins jenkins   94 Apr 25 13:00 jenkins.CLI.xml
-rw-r--r-- 1 jenkins jenkins  907 Apr 25 13:51 nodeMonitors.xml
-rw-r--r-- 1 jenkins jenkins  238 Apr 25 13:48 proxy.xml
-rw-r--r-- 1 jenkins jenkins 1014 Apr 25 14:46 thinBackup.xml
drwxr-xr-x 3 jenkins jenkins 4096 Apr 25 13:10 users

Bước 4: thử restore. Bạn quay lại phần menu ThinBackup chọn “Restore“.

Sau đó chọn folder cần restore ngược lại từ thư mục đã cấu hình chứa các folder sao lưu dữ liệu Jenkins.

jenkins restore

Tổng kết

Vậy là bạn đã biết cách thực hiện sao lưu (backup) và khôi phục lại (restore) cho dịch vụ Jenkins rồi phải không nào. Quá trình này cực kì đơn giản và tinh gọn, rất linh động cho các bạn lựa chọn cách thức thực hiện.

Nguồn: https://cuongquach.com/

Previous articleEbook Kubernetes in Action (PDF)
Next articleAnsible: Tìm hiểu cấu hình Handler trong Ansible Playbook
Bạn đang theo dõi website "https://cuongquach.com/" nơi lưu trữ những kiến thức tổng hợp và chia sẻ cá nhân về Quản Trị Hệ Thống Dịch Vụ & Mạng, được xây dựng lại dưới nền tảng kinh nghiệm của bản thân mình, Quách Chí Cường. Hy vọng bạn sẽ thích nơi này !