Saya perlu membuat beberapa perubahan konfigurasi pada instance Jenkins kami yang akan melibatkan restart Jenkins beberapa kali. Namun, pengembang kami cukup sering berkomitmen sehingga saya belum melihat Jenkins tanpa pekerjaan berjalan dalam tiga hari.
Apakah ada cara asli (baik melalui GUI atau melalui baris perintah) untuk memulai ulang Jenkins dengan aman? IE: menunggu pekerjaan saat ini selesai sebelum turun, dan melacak pekerjaan yang antri untuk memulai setelah Jenkins kembali.
Saya tahu ada plugin tetapi untuk menginstalnya saya perlu me-restart Jenkins ...
Jawaban:
Jika Anda menavigasi ke
$YOUR_JENKINS_URL/updateCenter/
Anda harus melihat halaman berikut:Di sini Anda dapat memeriksa
Restart Jenkins when installation is complete and no jobs are running
mana yang seharusnya cukup aman.sumber
/safeRestart
dan/restart
titik akhir.IE: wait for current jobs to finish before going down, and keep track of queued jobs to start once Jenkins comes back up.
ini adalah persis apa yang terjadi ketika Anda mencentang kotak itu.Jenkins without jobs running in three days
- yang berarti akan ada dampak karena beberapa pekerjaan akan tertunda. Tapi tetap saja, lebih baik daripada kehilangan pekerjaan.Mengunjungi https: // youjenkinsdomain / safeRestart akan mengaturnya dalam mode ketika menunggu pekerjaan berhenti dan kemudian restart.
sumber
Anda dapat menjalankan perintah safeRestart menggunakan Jenkins Rest API ( [jenkins_url] / safeRestart ) atau Anda dapat mengeksekusi perintah melalui Jenkins CLI .
CATATAN: Saat menjalankan perintah safeRestart, setiap pekerjaan yang diatur untuk dieksekusi selama restart akan di-antri dan dieksekusi ketika server kembali online. Pastikan ini tidak menyebabkan konflik saat reboot!
sumber
Saya pikir ini adalah masalah nyata yang coba dipecahkan oleh banyak orang. Ada saat-saat di mana lebih disukai untuk me-restart Jenkins setelah instalasi plugin. Salah satu saran yang bisa saya berikan berdasarkan pengalaman saya adalah:
Saya mengerti bahwa ini membutuhkan upaya manual dan koordinasi. Tetapi ini telah berhasil sejauh ini dalam proyek kami, berpikir tidak ada salahnya menyebutkan.
sumber
Untuk memulai ulang Jenkins secara manual, Anda dapat menggunakan salah satu dari perintah berikut (dengan memasukkan URL mereka di browser):
(jenkins_url)/safeRestart
- Mengizinkan semua pekerjaan yang sedang berjalan selesai. Pekerjaan baru akan tetap dalam antrian untuk berjalan setelah restart selesai.(jenkins_url)/restart
- Memaksa restart tanpa menunggu build selesai.sumber
Mengunjungi " https: // jenkins / safeRestart " tidak menunggu "pekerjaan / pembangunan" selesai sepenuhnya jika ada pekerjaan pipa.
Tampaknya menunggu langkah-langkah untuk menyelesaikan dan melakukan restart jenkins dan melanjutkan pipa setelah jenkins muncul lagi.
sumber
Jenkins dirancang untuk tidak terpengaruh oleh restart. Dari pengalaman saya, mungkin saja build gagal karena restart, tetapi jarang.
Di tempat saya bekerja dulu kami harus memulai kembali Jenkins secara teratur. Kami memiliki segala jenis pekerjaan yang dapat Anda bayangkan, sebagian kecil, sebagian besar. Hanya sekali kita melihat bangunan gagal di mana acar tidak direhidrasi.
Setelah itu, kami selalu melakukan restart dengan aman sekarang.
sumber