从战争文件更新jenkins

我有一台Ubuntu 12.04的机器,并安装了Jenkins版本。 1.424.6使用基于本指南的 apt-get,但有一个新的版本:

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

如果我按下载,我得到一个jenkins.war文件…但我如何使用它来升级我目前的安装? 或者在apt库更新之前是不可能的?

您可以用新的覆盖现有的jenkins.war文件,然后重新启动Jenkins。

这个文件通常位于/usr/share/jenkins

如果您的系统不是这种情况,请在Manage Jenkins -> System Information显示executable-war .war下的.war文件的path。

如果你已经通过apt-get安装了Jenkins,你还应该通过apt-get来更新Jenkins,以避免将来出现问题。 更新应该通过“apt-get update”然后“apt-get upgrade”来工作。

有关详细信息,请访问以下URL:

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

尽pipe我不认为这是对OP问题的有效答案,但我仍然强调,在Ubuntu上部署Jenkins(以及可能的大部分,如果不是全部的库/软件包/软件)的最佳方式是利用aptitude(或apt-得到)pipe理系统。

这是logging在这里: https : //wiki.jenkins-ci.org/display/JENKINS/Installing+Jenkins+on+Ubuntu (注意,如果你想使用LTS构build,点击这个回购http:// pkg。 jenkins-ci.org/debian-stable/ )

所以,如果你真的使用这种方法,你只需要做一个apt-get upgrade jenkins

我们使用以下命令从.war文件运行jenkins。

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

你甚至可以从〜/ Downloads目录运行命令

我安装在/ usr / share / jenkins下我以为是通过apt-get安装的,所以也可以在那里查看。

Ubuntu 12.04.1

我用这个groovy脚本来下载新的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') 

而另一个脚本closurestomcat – 复制战争,并重新启动它

我们在Windows 2008和Tomcat上托pipe它,我使用sc query,sc config,sc stop,sc start来pipe理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 
 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 eg JENKINS_HOME By default, Jenkins listen on port 8080. Access this port with your browser to start configuration. 
 apt-get更新
 apt-get升级 

到目前为止,在Linux上升级的最简单的方法,每次都像一个魅力。

我不想安装捆绑apt-get install方法的x11-common和其他组件,所以我只是下载了.war文件,然后运行Francois提到的命令。 这很好,但你必须用这种方法编写你自己的守护进程脚本。 全部细节在这里: http : //strem.in/stream/9488/Using-the-war-file-for-jenkins-ci

 #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