Saat ini saya menggunakan Jenkins di PC pengembangan saya. Saya menginstalnya di PC pengembangan saya, karena saya memiliki pengetahuan yang terbatas tentang alat ini; jadi saya mengujinya di PC pengembangan saya. Sekarang, saya merasa nyaman dengan Jenkins sebagai "mitra" jangka panjang saya dalam proses pembuatan dan ingin "memindahkan" Jenkins ini ke server khusus.
Sebelum ini saya telah melakukan beberapa build dan memiliki artefak yang diarsipkan dari setiap build Secara khusus, nomor build sangat penting bagi saya untuk kontrol versi.
Bagaimana saya bisa mengekspor semua informasi Jenkins dari PC saya saat ini ke server baru saya?
jenkins
data-migration
huahsin68
sumber
sumber
Jawaban:
Mengikuti wiki Jenkins , Anda harus:
chown -R jenkins:jenkins $JENKINS_HOME
JENKINS_HOME secara default terletak di
~/.jenkins
pada instalasi Linux, belum tepat menemukan di mana ia berada, pergi pada http: // your_jenkins_url / configure halaman dan memeriksa nilai dari parameter pertama:Home directory
; ini adalah JENKINS_HOME.sumber
Jika direktori JENKINS_HOME Anda terlalu besar untuk disalin , dan yang Anda perlukan hanyalah menyiapkan Pekerjaan yang sama, Konfigurasi Jenkins, dan konfigurasi Jenkins (dan tidak memerlukan artefak dan laporan Pekerjaan lama), maka Anda dapat menggunakan ThinBackup Plugin :
Konfigurasikan Direktori Cadangan di keduanya (di Kelola Jenkins -> ThinBackup -> Pengaturan)
Di Sourse Jenkins, buka ThinBackup -> Backup Now
Jika beberapa Plugin atau Pekerjaan tidak ada, salin konten cadangan langsung ke target JENKINS_HOME.
Jika Anda memiliki otentikasi pengguna pada sumber Jenkins, dan sekarang terkunci pada Jenkins target, kemudian edit Jenkins config.xml, atur
<useSecurity>
ke false, dan mulai ulang Jenkins.sumber
Ini berhasil bagi saya untuk pindah dari Ubuntu 12.04 (Jenkins ver. 1.628) ke Ubuntu 16.04 (Jenkins ver. 1.651.2). Saya pertama kali menginstal Jenkins dari repositori .
Salin
JENKINS_HOME
(misalnya / var / lib / jenkins) dari server lama ke yang baru. Dari konsol di server baru:rsync -av username@old-server-IP:/var/lib/jenkins/ /var/lib/jenkins/
Mulai server Jenkins baru Anda
Anda mungkin tidak membutuhkan ini, tetapi saya harus melakukannya
Manage Jenkins
danReload Configuration from Disk
.Configure System > Jenkins Location
,Jenkins URL
sudah ditetapkan dengan benar ke server Jenkins baru.sumber
/configureSecurity
saya mendapatkanjava.lang.AssertionError: InstanceIdentity is missing its singleton
Otomatisasi Server Jenkins:
Langkah 1:
Siapkan repositori untuk menyimpan rumah Jenkins (pekerjaan, konfigurasi, plugin, dll.) Di lokal GitLab atau di repositori pribadi GitHub dan tetap perbarui secara teratur dengan mendorong perubahan baru pada pekerjaan, plugin, dll.
Langkah 2:
Mengkonfigurasi Wayang host-kelompok / peran untuk Jenkins yang dapat digunakan untuk berputar ke atas server Jenkins baru. Lakukan semua konfigurasi dasar dalam resep Wayang dan pastikan itu menginstal Jenkins versi terbaru dan membuat direktori / mount terpisah untuk
JENKINS_HOME
.Langkah 3:
Putar mesin baru menggunakan konfigurasi boneka Jenkins di atas. Ketika semuanya sudah diinstal, ambil / klon konfigurasi Jenkins dari repositori Git ke direcotry home Jenkins dan restart Jenkins.
Langkah 4:
Buka URL Jenkins, Kelola Jenkins → Kelola Plugin dan perbarui semua plugin yang memerlukan pembaruan.
Selesai
Anda dapat menggunakan Docker Swarm atau Kubernetes untuk skala otomatis dari slave node.
sumber
Terkadang kita mungkin tidak memiliki akses ke mesin Jenkins untuk menyalin folder langsung ke instance Jenkins lain. Jadi saya menulis utilitas berbasis menu yang menggunakan panggilan REST API Jenkins untuk menginstal plugin dan pekerjaan dari satu contoh Jenkins ke yang lain.
Untuk migrasi plugin:
{SOURCE_JENKINS_SERVER}/pluginManager/api/json?depth=1
akan membuat Anda daftar plugin terinstal dengan versinya.Anda dapat mengirim permintaan POST dengan parameter berikut untuk menginstal plugin ini.
Untuk migrasi pekerjaan:
{SOURCE_JENKINS_URL}/view/All/api/json
{SOURCE_JENKINS_URL}/job/{JOB_NAME}
.Saya telah membuat utilitas berbasis menu dengan Python yang meminta pengguna untuk memulai plugin atau migrasi Jenkins dan menggunakan panggilan API Jenkins REST untuk melakukannya.
Anda dapat merujuk JenkinsMigration.docx dari URL ini Jenkinsjenkinsmigrasijenkinsrestapi
sumber