Jawaban:
Ada banyak cara untuk melakukan ini, tetapi cara termudah yang dapat saya pikirkan adalah melakukan backup folder Home Jenkins.
Anda dapat melihat di mana rumah Jenkins Anda dengan:
echo $JENKINS_HOME
Dan misalnya, jika Anda hanya ingin membuat cadangan pekerjaan Anda dapat pergi ke:
cd $JENKINS_HOME/jobs
Dan buat cadangan untuk folder itu.
Semua konfigurasi itu akan menjadi banyak file XML .
Jika Anda menggunakan gambar buruh pelabuhan Jenkins resmi , rumah akan berada di:
/var/jenkins_home
$JENKINS_HOME
variabel lingkungan:, sudo su -s /bin/bash jenkins
dan kemudian echo $JENKINS_HOME
, yang bagi saya adalah/var/lib/jenkins
Semua pekerjaan ( jobs/
) dan file konfigurasi master ( config.xml
) dapat ditemukan di folder rumah Jenkins ( JENKINS_HOME
) dalam struktur berikut:
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)
Sebagian besar konfigurasi dalam format XML, jadi mencadangkan semua .xml
file sudah cukup.
Semua pengaturan, log bangunan, arsip artefak disimpan di bawah direktori JENKINS_HOME. Cukup arsipkan direktori ini untuk membuat cadangan. Demikian pula, memulihkan data hanya mengganti konten direktori JENKINS_HOME dari cadangan.
Pencadangan dapat dilakukan tanpa menghentikan server, tetapi saat Anda memulihkan, harap hentikan server.
Untuk pencadangan yang konsisten itu adalah praktik yang baik untuk menyimpan JENKINS_HOME
direktori di bawah repositori Git.
Sebagai contoh:
cd $JENKINS_HOME
git init
shopt -s globstar
git add **/config.xml
git commit -m'Added job config files' -a
dan mendorong file ke repositori eksternal. Anda juga dapat menambahkan .gitignore
file berikut untuk mengabaikan beberapa file.
Terkait: Apakah ada cara untuk menjaga file konfigurasi Hudson / Jenkins di kontrol sumber?
Jika pekerjaan Jenkins Anda didefinisikan dalam Jenkinsfile, Anda dapat menyimpannya di repositori git dan memuatnya menggunakan Pipeline .
Sayangnya, karena tidak semua plugin Jenkins mendukung Jenkinsfile dan Pipeline, Anda perlu secara manual membuat Jenkinsfile baru jika Anda ingin memindahkan pekerjaan yang ada ke format ini.
The SCM Sync Konfigurasi Plugin tidak persis apa yang Anda inginkan. Bekerja dengan svn atau git untuk mencadangkan inti jenkins dan konfigurasi pekerjaan Anda, sehingga memberi Anda pelacakan mudah tentang siapa yang membuat perubahan, serta cadangan.
Ada beberapa cara untuk membuat cadangan data jenkins dan konfigurasi master. Cara terbaik untuk cadangan adalah menggunakan plugin Thinbackup. Anda dapat menjadwalkan pencadangan tepat waktu menggunakan ekspresi cron. Anda dapat mengonfigurasi cadangan lengkap dan cadangan tambahan juga.
Cara lain untuk membuat cadangan data dan konfigurasi adalah dengan mengambil snapshot disk dari server master jenkins Anda. Cara ideal untuk melakukan ini dengan memasang disk dan menautkan direktori konfigurasi jenkins ke titik pemasangan disk
Kedua skenario dijelaskan dengan baik di posting blog ini . Anda akan mendapatkan ide dan langkah-langkah yang lebih baik untuk konfigurasi.
Saya menggunakan skrip dari sue445/jenkins-backup-script
.
Ini arsip pengaturan dan plugin Jenkins seperti:
$JENKINS_HOME/*.xml
$JENKINS_HOME/jobs/*/*.xml
$JENKINS_HOME/nodes/*
$JENKINS_HOME/plugins/*.jpi
$JENKINS_HOME/secrets/*
$JENKINS_HOME/users/*
./jenkins-backup.sh /path/to/jenkins_home archive.tar.gz
# add timestamp suffix
./jenkins-backup.sh /path/to/jenkins_home backup_`date +"%Y%m%d%H%M%S"`.tar.gz
Anda dapat mencoba plugin thinBackup (meskipun tidak dipelihara secara aktif) [jika hanya mengambil cadangan logis yang Anda inginkan] (yaitu sebagian besar file xml konfigurasi, pekerjaan, node, dll.). Ukuran cadangan tidak akan terlalu besar.
Saya perlu memigrasi Jenkins dari satu contoh Windows Server ke yang lain. Akhirnya saya berhasil melakukannya seperti itu:
C:\Program Files x86\Jenkins
)jenkins.exe install
Ini akan mendaftarkan Jenkins yang baru saja disisipkan sebagai layanan pada mesin baru dan akan bekerja 100% sama.
Jika ini berhasil maka jika Anda memerlukan cadangan hanya untuk keamanan di masa depan, salin folder Jenkins di suatu tempat. Ini akan berfungsi seperti snapshot.