Perbarui Jenkins dari file perang

92

Saya memiliki mesin dengan Ubuntu 12.04 dan telah menginstal Jenkins ver. 1.424.6 menggunakan apt-get berdasarkan panduan ini , tetapi ada versi baru:

New version of Jenkins (1.447.2) is available for download (changelog).

Jika saya menekan unduh, saya mendapatkan file jenkins.war ... tetapi bagaimana cara menggunakannya untuk memutakhirkan instalasi saya saat ini? atau apakah itu tidak mungkin sebelum repositori apt diperbarui?

u123
sumber

Jawaban:

162

Anda dapat menimpa jenkins.warfile yang ada dengan yang baru dan kemudian memulai ulang Jenkins.

File ini biasanya terletak di /usr/share/jenkins.

Jika ini tidak terjadi pada sistem Anda, di Manage Jenkins -> System Information, ini akan menampilkan jalur ke .warfile di bawah executable-war.

bcmcfc.dll
sumber
16
Di komputer saya itu terletak di / usr / share / jenkins /. Setelah menyalin dan memulai ulang dengan "service jenkins restart", ini masih menampilkan versi lama dan menyarankan pembaruan - apa yang saya lakukan salah?
u123
2
Bagaimana dengan konsistensi file konfigurasi setelah peningkatan? Apakah Anda perlu menyiapkan semuanya lagi? Apakah mereka mendukung kompatibilitas ke belakang?
Denys S.
@Tokopedia itu akan menyimpan semua konfigurasi Anda. Saya menghapus file perang yang ada dan memindahkan yang baru dari Unduhan ke / usr / share / jenkins dan itu bekerja dengan sempurna. (Aptitude tidak menunjukkan pembaruan untuk jenkins)
Whitney Imura
+1 Ini banyak membantu saya, karena versi saat ini di Ubuntu adalah 1.6 sedangkan versi perang adalah 2.4. Ini adalah perbedaan besar dalam tampilan dan nuansa serta ketersediaan plugin. Jadi ini banyak membantu saya. Khawatir saya harus menginstal tomcat dan melakukannya dengan cara yang sulit.
Caperneoignis
1
langkah demi langkah jawaban @bcmcfc di sini: stackoverflow.com/a/46733405/1404135
3z33etm
32

Jika Anda telah menginstal Jenkins melalui apt-get, Anda juga harus memperbarui Jenkins melalui apt-get untuk menghindari masalah di masa mendatang. Pembaruan harus bekerja melalui "apt-get update" dan kemudian "apt-get upgrade".

Untuk detailnya kunjungi URL berikut:

https://wiki.jenkins-ci.org/display/JENKINS/Installing+Jenkins+on+Ubuntu

dunni
sumber
13
+1 b / c Anda tidak pernah tahu apa yang diubah Ubuntu tentang konfigurasi Jenkins. Menambahkan ke ini: pkg.jenkins-ci.org/debian menyediakan paket yang diperbarui yang dapat diinstal melalui apt-get langsung dari proyek.
mabi
Tidak perlu memperbarui jenkins dari file perang jika Anda melakukan itu di atas. Saya pikir ini adalah cara yang lebih baik di Ubuntu.
Ripon Al Wasim
10
Jika Anda sebelumnya diinstal jenkins dengan apt-get tetapi melalui default Ubuntu paket repositori (yaitu tanpa pkg.jenkins-ci.org/debian), Anda harus menghapus default paket Ubuntu sebelum menginstal yang baru sudo apt-get remove jenkins jenkins-commonkemudian sudo apt-get install jenkins. Jika Anda tidak melakukannya, pembaruan akan gagal ditrying to overwrite '/usr/share/jenkins/jenkins.war', which is also in package jenkins-common 1.424.6+dfsg-1ubuntu0.1
Matthieu Rouget
31
#on ubuntu, in /usr/share/jenkins:

sudo service jenkins stop
sudo mv jenkins.war jenkins.war.old
sudo wget https://updates.jenkins-ci.org/latest/jenkins.war
sudo service jenkins start
3z33etm
sumber
1
Bagus! Terakhir hubungan yang stabil juga berguna: updates.jenkins-ci.org/stable/latest/jenkins.war
ℛɑƒæĿᴿᴹᴿ
Praktik Terbaik, mudah dilakukan. Terima kasih atas jawaban ini
Jinna Balu
Fiuh! Anda membantu saya terkena serangan jantung di tengah malam dengan Jenkins kami memaksa kami untuk meningkatkan dan tidak menjalankan pluginnya
Emjey
12
pembaruan apt-get
peningkatan apt-get 

sejauh ini cara termudah untuk memutakhirkan di linux, bekerja seperti pesona setiap saat.

Vasan Ramani
sumber
Ngomong-ngomong, serupa di CentOS, yum update jenkinsharus melakukannya.
Nagev
4

Meskipun saya tidak akan menganggap ini sebagai jawaban yang valid untuk pertanyaan OP, saya masih menekankan bahwa cara terbaik untuk menyebarkan Jenkins (dan kemungkinan besar jika tidak semua perpustakaan / paket / perangkat lunak) di Ubuntu adalah dengan memanfaatkan bakat (atau apt- mendapatkan) sistem manajemen.

Ini didokumentasikan di sini: https://wiki.jenkins-ci.org/display/JENKINS/Installing+Jenkins+on+Ubuntu (perhatikan bahwa jika Anda ingin menggunakan LTS build, klik repo ini http: // pkg. jenkins-ci.org/debian-stable/ )

Jadi jika kebetulan Anda benar-benar menggunakan pendekatan ini, Anda cukup melakukan a apt-get upgrade jenkins

woozyking
sumber
Secara teori Anda benar tetapi itu tidak berfungsi saat memutakhirkan dari pemasangan stok. Setelah instalasi paket terbaru itu dimulai tetapi memberikan kesalahan 503. Saya mengikuti prosedur yang tertulis di sana dan saya harus menerapkan solusi Matthieu Rouget untuk mendapatkan status pkg yang konsisten.
Glenn Plas
3

ketika Anda membuka panel Jenkins, itu akan menunjukkan paket yang tersedia dari versi terbaru mereka. Anda dapat mengunduhnya melalui perintah wget di server. setelah mengunduh paket terbaru Anda harus mengambil file cadangan .war.

Misalnya-: wget http://updates.jenkins-ci.org/download/war/2.205/jenkins.war

Jalur file perang Jenkins untuk Ubuntu - / usr / share / jenkins /

Path file perang Jenkins untuk centos - / usr / lib / jenkins /

setelah mengambil cadangan, timpa file perang dan mulai ulang layanan jenkins.

Ubuntu - layanan jenkins restart, centos - systemctl restart jenkins.service

Sudesh Lakmal Pathirana
sumber
2

Kami menjalankan jenkins dari file .war dengan perintah berikut.

java -Xmx2500M -jar jenkins.war --httpPort=3333 --prefix=/jenkins

Anda bahkan dapat menjalankan perintah dari direktori ~ / Downloads

Francois Lacoursiere
sumber
2

Saya menggunakan skrip groovy ini untuk mengunduh file perang baru

import java.util.concurrent.atomic.AtomicInteger

class ThreadHelper{
    static done = false;
    static starttime = System.currentTimeMillis()
    static synchronized printx (message) {    printf ("%5s seconds: %20s",(System.currentTimeMillis()-starttime)/1000.0 , message); println("") }
    def download(address)
    {
    def filename = new File(System.getenv()['CI_HOME'] + '/' + address.tokenize("/")[-1])
    println(filename.getCanonicalPath())
    def file = new FileOutputStream(filename)
    def out = new BufferedOutputStream(file)
    out << new URL(address).openStream()
    out.close()
    done=true;
    }

}

println("executing from ... "+ new File(".").getCanonicalPath())

def counter = new AtomicInteger();
    th = Thread.start {
    while(!ThreadHelper.done) {
    sleep 1000
    counter.incrementAndGet()
    print '.'
    }
}

th2 = Thread.start { new ThreadHelper().download("http://mirrors.jenkins-ci.org/war/latest/jenkins.war") }
th.join()
th2.join()

ThreadHelper.printx('done')

Dan skrip lain mematikan kucing jantan - menyalin perang dan memulai ulang

Kami menyimpannya di windows 2008 dan tomcat, saya menggunakan kueri sc, sc config, sc stop, sc start untuk mengelola layanan windows

    set warname=jenkins

if '%name%' == 'trak' set warname=trak

pushd .
if '%name%'=='' goto badname
if '%warname%'=='' goto badname

if '%ci_home%'=='' goto badcihome

REM =====================================================
REM stop windows service
sc stop %name%

REM sleep for 5 seconds see http:\\stackoverflow.com\questions\1672338\how-to-sleep-for-5-seconds-in-windowss-command-prompt-or-dos
ping 1.1.1.1 -n 1 -w 3000 > nul

rem replace forward slash with backward slash
set tomcat_dir=%ci_home:/=\%\instances\tomcat7-%name%

REM Create sub directory called bak-yymmdd-hhmmss
REM where yymmdd-hhmmss is a date-time stamp like 120601-142907

set hh=%time:~0,2%

REM Since there is no leading zero for times before 10 am, have to put in
REM a zero when this is run before 10 am.

if "%time:~0,1%"==" " set hh=0%hh:~1,1%

set yymmdd_hhmmss=%date:~12,2%%date:~4,2%%date:~7,2%-%hh%%time:~3,2%%time:~6,2%

set backupdir=bak-%yymmdd_hhmmss%

REM =====================================================
md %tomcat_dir%\logs\%backupdir%

cd %tomcat_dir%\logs

dir bak*
echo "nothing-to-log" >> force.log

REM move command will fail if there is nothing to move hence the force log statement above

call move *.* %backupdir%

REM =====================================================
rmdir %tomcat_dir%\webapps\%name% /q/s

echo f|xcopy %ci_home%\%warname%.war %tomcat_dir%\webapps\%name%.war /y

REM TODO===== something about jenkins plugins

REM =====================================================
cd "%tomcat_dir%\bin"
call catalina version

echo =====================================================
echo ====== removing %name%
call service remove %name%

echo =====================================================
echo ====== installing %name%
call service install %name%

echo on

REM setting service to start automatically, note that space before the word auto IS REQUIRED
sc config %name% start= auto

REM =====================================================
sc start %name%

popd

exit 0

goto done

:badname
echo 'name required - this will be used as windows service name as well'
pause
exit 1

:badcihome
echo 'CI home env var required - ci_home'
pause
exit 1

:done
Kalpesh Soni
sumber
2
https://wiki.jenkins.io/display/JENKINS/Installing+Jenkins+on+Ubuntu

Once installed like this, you can update to the later version of Jenkins (when it comes out) by running the following commands:
-------
sudo apt-get update
sudo apt-get install jenkins
-------
(aptitude or apt-get doesn't make any difference.)
What does this package do?
Jenkins will be launched as a daemon up on start. See /etc/init.d/jenkins for more details.
The 'jenkins' user is created to run this service.
Log file will be placed in /var/log/jenkins/jenkins.log. Check this file if you are troubleshooting Jenkins.
/etc/default/jenkins will capture configuration parameters for the launch like e.g JENKINS_HOME
By default, Jenkins listen on port 8080. Access this port with your browser to start configuration.
Ran Adler
sumber
1

Milik saya diinstal di bawah / usr / share / jenkins. Saya pikir itu diinstal melalui apt-get jadi mungkin ingin memeriksanya juga.

Ubuntu 12.04.1

dan
sumber
1

Saya tidak ingin menginstal x11-common dan komponen lain yang dibundel dalam pendekatan instal apt-get, jadi saya baru saja mengunduh file .war dan menjalankan perintah yang disebutkan Francois. Itu bekerja dengan baik, tetapi Anda harus menulis skrip daemon Anda sendiri dengan pendekatan itu. Rincian lengkap di sini: http://strem.in/stream/9488/Using-the-war-file-for-jenkins-ci

John
sumber
1

Untuk mengupgrade file Jenkins WAR, ikuti langkah-langkah di bawah ini:

  • Hentikan server Jenkins menggunakan perintah: systemctl stop jenkins
  • Pergi ke lokasi perang Jenkins: mis: /usr/lib/jenkins
  • Ambil cadangan dari jenkins.war: mv jenkins.war jenkins.war_bkp
  • Unduh Jenkins menggunakan perintah wget atau curl: wget http://updates.jenkinsci.org/download/war/(version)/jenkins.war
  • Memulai server Jenkins menggunakan perintah: systemctl start jenkins
  • Periksa status server Jenkins menggunakan perintah: systemctl status jenkin
Omar Khaled
sumber