warファイルからJenkinsを更新する


91

Ubuntu 12.04を搭載したマシンでJenkins verをインストールしました。1.424.6 このガイドに基づいてapt-getを使用しますが、新しいバージョンがあります:

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

ダウンロードを押すと、jenkins.warファイルが表示されますが、現在のインストールをアップグレードするためにそれをどのように使用しますか?それともaptリポジトリが更新される前にそれは不可能ですか?

回答:


161

既存のjenkins.warファイルを新しいファイルで上書きしてから、Jenkinsを再起動できます。

このファイルは通常、にあり/usr/share/jenkinsます。

これがシステムに当てはまらない場合、ではManage Jenkins -> System Information、の.war下にあるファイルへのパスが表示されexecutable-warます。


16
私のマシンでは/ usr / share / jenkins /にあります。「service jenkins restart」でコピーして再起動した後も、古いバージョンが表示され、アップデートが提案されます-何が問題なのですか?
u123 2012年

2
アップグレード後の構成ファイルの整合性はどうですか?すべてをもう一度セットアップする必要がありますか?下位互換性をサポートしていますか?
Denys S.

@DEnysS。すべての構成が保持されます。既存のwarファイルを削除し、新しいファイルをDownloadsから/ usr / share / jenkinsに移動しましたが、完全に機能しました。(Aptitudeはjenkinsの更新を表示しませんでした)
ホイットニーイムラ

+1これは私に大いに役立ちました。なぜなら、Ubuntuの現在のバージョンは1.6であり、戦争のバージョンは2.4だからです。ルックアンドフィールとプラグインの可用性の大きな違いです。だからこれは私をたくさん助けてくれました。Tomcatをインストールし、難しい方法で実行する必要があるのではないかと心配していました。
Caperneoignis

1
ここでの@bcmcfcの回答の段階的な説明:stackoverflow.com/a/46733405/1404135
3z33etm

32

apt-getを使用してJenkinsをインストールした場合は、将来の問題を回避するために、apt-getを介してJenkinsも更新する必要があります。更新は、「apt-get update」と「apt-get upgrade」で機能するはずです。

詳細については、次のURLにアクセスしてください。

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


13
+1 b / cあなたは、Jenkinsの設定に関してUbuntuが何を変更したのか決して知りません。これに追加:pkg.jenkins-ci.org/debianは、プロジェクトから直接apt-getを介してインストール可能な更新パッケージを提供します。
mabi 2012

上記のようにすれば、戦争ファイルからジェンキンスを更新する必要はありません。私はこれがUbuntuのより良い方法だと思います。
Ripon Al Wasim 2013

10
あなたは以前に(すなわちpkg.jenkins-ci.org/debianなし)を取得-aptのが、デフォルトのUbuntuのパッケージリポジトリ経由でジェンキンスをインストールした場合は、新しいものをインストールする前に、デフォルトのUbuntuのパッケージを削除する必要がありsudo apt-get remove jenkins jenkins-common、その後sudo apt-get install jenkins。そうしないと、更新は失敗しますtrying to overwrite '/usr/share/jenkins/jenkins.war', which is also in package jenkins-common 1.424.6+dfsg-1ubuntu0.1
Matthieu Rouget、2013年

30
#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

1
すごい!最後の安定したリンクも役に立ちます。updates.jenkins
ci.org

ベストプラクティス、簡単です。この回答をありがとう
Jinna Balu

ふew!Jenkinsがプラグインをアップグレードせずにプラグインを実行しないようにして、真夜中に心臓発作を起こすのを助けてくれました
Emjey

12
apt-get update
apt-getアップグレード 

Linuxでアップグレードする最も簡単な方法は、常に魅力のように動作します。


ちなみにCentOSでも同様yum update jenkinsです。
Nagev

4

これをOPの質問に対する有効な回答とは見なしませんが、Jenkins(およびすべてのライブラリ/パッケージ/ソフトウェア)をUbuntuにデプロイする最良の方法は、aptitude(またはapt- get)管理システム。

それはここに文書化されています:https : //wiki.jenkins-ci.org/display/JENKINS/Installing+Jenkins+on+Ubuntu(LTSビルドを使用する場合は、このリポジトリhttp:// pkgにアクセスしてください。 jenkins-ci.org/debian-stable/

したがって、万が一実際にこのアプローチを使用した場合は、単に apt-get upgrade jenkins


理論的にはあなたは正しいですが、ストックインストールからアップグレードする場合は機能しません。最新のパッケージのインストール後、起動していますが、503エラーが発生します。そこで書かれている手順に従い、一貫したpkg状態を得るためにMatthieu Rougetのソリューションを適用する必要がありました。
Glenn Plas 14年

3

Jenkinsパネルを開くと、最新バージョンの利用可能なパッケージが表示されます。あなたは経由でダウンロードすることができますwgetの server.afterダウンロードにコマンドを使用すると、バックアップ.warファイル取る必要があり、最新のパッケージを。

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

UbuntuのJenkins warファイルパス-/ usr / share / jenkins /

CentosのJenkins warファイルパス-/ usr / lib / jenkins /

バックアップを取った後、warファイルを上書きし、jenkinsサービスを再起動します。

Ubuntu-service jenkins restart、centos-systemctl restart jenkins.service


2

次のコマンドを使用して、.warファイルからjenkinsを実行します。

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

〜/ Downloadsディレクトリからコマンドを実行することもできます


2

このグルーヴィーなスクリプトを使用して、新しいwarファイルをダウンロードします

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')

そして別のスクリプトはTomcatをシャットダウンします-戦争をコピーして再起動します

私たちはそれをWindows 2008とTomcatでホストしています。私はscクエリ、sc構成、sc停止、sc開始を使用して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

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.

1

Mineは/ usr / share / jenkinsの下にインストールされているので、apt-getを使用してインストールしたので、そこで確認することもできます。

Ubuntu 12.04.1


1

apt-getインストールアプローチにバンドルされているx11-commonおよびその他のコンポーネントをインストールしたくなかったので、.warファイルをダウンロードして、Francoisというコマンドを実行しました。それはうまくいきましたが、あなたはそのアプローチであなた自身のデーモンスクリプトを書かなければなりません。詳細はこちら:http : //strem.in/stream/9488/Using-the-war-file-for-jenkins-ci


1

Jenkins WARファイルをアップグレードするには、以下の手順に従います。

  • 次のコマンドを使用してJenkinsサーバーを停止します。 systemctl stop jenkins
  • Jenkins戦争の場所に移動します。例: /usr/lib/jenkins
  • jenkins.warからバックアップを取得します。 mv jenkins.war jenkins.war_bkp
  • wgetまたはcurlコマンドを使用してJenkinsをダウンロードします。 wget http://updates.jenkinsci.org/download/war/(version)/jenkins.war
  • コマンドを使用したJenkinsサーバーの起動: systemctl start jenkins
  • 次のコマンドを使用して、Jenkinsサーバーのステータスを確認します。 systemctl status jenkin
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.