J'ai une machine avec Ubuntu 12.04 et j'ai installé la version Jenkins. 1.424.6 en utilisant apt-get basé sur ce guide, mais il existe une nouvelle version:
New version of Jenkins (1.447.2) is available for download (changelog).
Si je presse le téléchargement, je reçois un fichier jenkins.war ... mais comment l'utiliser pour mettre à niveau mon installation actuelle? ou n'est-ce pas possible avant que les référentiels apt ne soient mis à jour?
Vous pouvez écraser le fichier jenkins.war
Existant avec le nouveau, puis redémarrer Jenkins.
Ce fichier se trouve généralement dans /usr/share/jenkins
.
Si ce n'est pas le cas pour votre système, dans Manage Jenkins -> System Information
, Le chemin d'accès au fichier .war
Sera affiché sous executable-war
.
Si vous avez installé Jenkins via apt-get, vous devez également mettre à jour Jenkins via apt-get pour éviter les problèmes futurs. La mise à jour devrait fonctionner via "apt-get update" puis "apt-get upgrade".
Pour plus de détails, visitez l'URL suivante:
https://wiki.jenkins-ci.org/display/JENKINS/Installing+Jenkins+on+Ubunt
#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
apt-get update apt-get upgrade
de loin le moyen le plus simple de mettre à niveau sur Linux, fonctionne comme un charme à chaque fois.
Bien que je ne considère pas cela comme une réponse valable à la question de OP, je voudrais quand même souligner que le meilleur moyen de déployer Jenkins (et probablement la plupart sinon toutes les bibliothèques/packages/logiciels) sur Ubuntu est de tirer parti d'aptitude (ou apt- obtenir) système de gestion.
Il est documenté ici: https://wiki.jenkins-ci.org/display/JENKINS/Installing+Jenkins+on+Ubunt (notez que si vous souhaitez utiliser la version LTS, cliquez sur ceci. rapport http://pkg.jenkins-ci.org/debian-stable/ )
Donc, si par hasard vous utilisiez réellement cette approche, vous feriez simplement un apt-get upgrade jenkins
J'utilise ce script groovy pour télécharger un nouveau fichier de guerre
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')
Et un autre script arrête Tomcat - copie la guerre et la redémarre
Nous l'hébergeons sur Windows 2008 et Tomcat, j'utilise sc query, sc config, sc stop, sc start pour gérer les services 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 e.g JENKINS_HOME
By default, Jenkins listen on port 8080. Access this port with your browser to start configuration.
Nous exécutons Jenkins à partir du fichier .war avec la commande suivante.
Java -Xmx2500M -jar jenkins.war --httpPort=3333 --prefix=/jenkins
Vous pouvez même exécuter la commande à partir du répertoire ~/Downloads
Le mien est installé sous/usr/share/jenkins. Je pensais qu'il avait été installé via apt-get.
Ubuntu 12.04.1
Je ne voulais pas installer x11-common et les autres composants fournis avec l'approche d'apt-get install. Je viens donc de télécharger le fichier .war et d'exécuter la commande mentionnée par François. Cela a bien fonctionné, mais vous devez écrire votre propre script démon avec cette approche. Détails complets ici: http://strem.in/stream/9488/Using-the-war-file-for-jenkins-ci
Pour mettre à niveau le fichier WAR Jenkins, suivez les étapes ci-dessous:
systemctl stop jenkins
/usr/lib/jenkins
mv jenkins.war jenkins.war_bkp
wget http://updates.jenkinsci.org/download/war/(version)/jenkins.war
systemctl start jenkins
systemctl status jenkin