जेनकींस को एक युद्ध फ़ाइल से अपडेट करें


92

मेरे पास उबंटू 12.04 के साथ एक मशीन है और जेनकिंस वेर स्थापित किया है। इस गाइड के आधार पर apt-get का उपयोग करते हुए 1.424.6 , लेकिन एक नया संस्करण है:

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

यदि मैं डाउनलोड दबाता हूं, तो मुझे jenkins.war फ़ाइल मिलती है ... लेकिन मैं अपने वर्तमान इंस्टॉलेशन को अपग्रेड करने के लिए इसका उपयोग कैसे करूं? या क्या यह संभव नहीं है इससे पहले कि उपयुक्त भंडार अपडेट हो जाएं?

जवाबों:


162

आप मौजूदा jenkins.warफ़ाइल को नए के साथ अधिलेखित कर सकते हैं और फिर जेनकिंस को पुनः आरंभ कर सकते हैं।

यह फ़ाइल आमतौर पर में स्थित है /usr/share/jenkins

यदि यह आपके सिस्टम के लिए मामला नहीं है Manage Jenkins -> System Information, तो, यह .warफ़ाइल के लिए पथ प्रदर्शित करेगा executable-war


16
मेरी मशीन पर इसके / usr / शेयर / जेनकींस / में स्थित है। "सेवा जेनकींस पुनरारंभ" के साथ कॉपी और पुनरारंभ करने के बाद भी यह पुराने संस्करण को दिखाता है और एक अपडेट का सुझाव देता है - मैं क्या गलत कर रहा हूं?
u123

2
उन्नयन के बाद कॉन्फ़िगरेशन फ़ाइलों की स्थिरता के बारे में क्या? क्या आपको पूरी चीज़ फिर से सेट करने की ज़रूरत है? क्या वे पिछड़ी अनुकूलता का समर्थन करते हैं?
डेनिस एस।

@DEnysS। यह आपके सभी विन्यास रखेगा। मैंने मौजूदा युद्ध फाइल को हटा दिया और डाउनलोड से / usr / शेयर / जेनकींस में नए को स्थानांतरित कर दिया और यह पूरी तरह से काम किया। (एप्टीट्यूड ने
जेनकिंस के

+1 इससे मुझे बहुत मदद मिली, क्योंकि उबंटू का वर्तमान संस्करण 1.6 है जबकि युद्ध का संस्करण 2.4 है। लुक और फील और प्लगइन उपलब्धता में इसका बहुत बड़ा अंतर है। तो इससे मुझे बहुत मदद मिली। मैं चिंतित था कि मुझे tomcat स्थापित करना होगा और इसे कठिन तरीके से करना होगा।
Caperneoignis

1
@bcmcfc के उत्तर के चरण यहाँ दिए गए हैं: stackoverflow.com/a/46733405/1404135
3z33etm

32

अगर आपने apt-get के माध्यम से Jenkins स्थापित किया है, तो आपको भविष्य की समस्याओं से बचने के लिए apt-get के माध्यम से Jenkins को अपडेट करना चाहिए। अपडेट करने के लिए "एप-गेट अपडेट" और फिर "एप-गेट अपग्रेड" के माध्यम से काम करना चाहिए।

विवरण के लिए निम्नलिखित URL पर जाएँ:

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


13
+1 b / c आपको कभी नहीं पता कि उबंटू जेनकिंस कॉन्फ़िगरेशन के बारे में क्या बदल गया है। इसके साथ जोड़ना: pkg.jenkins-ci.org/debian अपडेट किए गए पैकेज को सीधे प्रोजेक्ट के माध्यम से इंस्टॉल करने योग्य प्रदान करता है।
मबी

युद्ध की फ़ाइल से जेनकींस को अपडेट करने की आवश्यकता नहीं है यदि आप ऊपर उल्लेख करते हैं। मुझे लगता है कि यह उबंटू पर बेहतर तरीका है।
रिपन अल वसीम

10
यदि आप पहले से जेनकींस स्थापित किया है apt-get लेकिन डिफ़ॉल्ट Ubuntu पैकेज भंडार (यानी बिना pkg.jenkins-ci.org/debian) के माध्यम से, आप नए स्थापित करने से पहले डिफ़ॉल्ट 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
मैथ्यू रूज

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

1
महान! अंतिम स्थिर लिंक भी उपयोगी है: updates.jenkins-ci.org/stable/latest/jenkins.war
at

सर्वश्रेष्ठ अभ्यास, करने में आसान। इस उत्तर के लिए धन्यवाद
जिन्ना बालू

ओह! आपने मुझे हमारे जेनकिन्स के साथ रात के मध्य में दिल का दौरा पड़ने से बचाने में मदद की और हमें इसके किसी भी प्लगइन्स को अपग्रेड नहीं करने के लिए मजबूर किया
Emjey

12
apt-get update
उपयुक्त-अपग्रेड प्राप्त करें 

अब तक लिनक्स पर अपग्रेड करने का सबसे आसान तरीका, हर बार एक आकर्षण की तरह काम करता है।


रास्ते में CentOS पर भी yum update jenkinsऐसा ही करना चाहिए।
नागदेव

4

हालाँकि, मैं इसे ओपी के प्रश्न के वैध उत्तर के रूप में नहीं मानूंगा, फिर भी मैं इस बात पर जोर दूंगा कि उबंटू में जेनकिंस (और संभवतः सभी लाइब्रेरी / पैकेज / सॉफ्टवेयर नहीं) को तैनात करने का सबसे अच्छा तरीका उत्तोलन (या उपयुक्त) का लाभ उठाना है मिल) प्रबंधन प्रणाली।

इसे यहाँ प्रलेखित किया गया है: 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 का समाधान लागू करना पड़ा।
ग्लेन प्लास

3

जब आप जेनकिन्स पैनल खोलते हैं तो यह उनके नवीनतम संस्करण से उपलब्ध पैकेज दिखाएगा। आप इसे सर्वर में wget कमांड के जरिए डाउनलोड कर सकते हैं। इसके बाद आपको लेटेस्ट पैकेज डाउनलोड करना चाहिए।

जैसे-: wget http://updates.jenkins-ci.org/download/war/2.205/jenkins.war

Ubuntu के लिए जेनकींस युद्ध फ़ाइल पथ - / usr / शेयर / जेनकींस /

जेंकिंस वार सेंटो के लिए युद्ध का रास्ता - / usr / lib / jenkins /

बैकअप लेने के बाद युद्ध फ़ाइल को अधिलेखित करें और जेनकिंस सेवा को पुनरारंभ करें।

उबंटू - सर्विस जेनकिंस रिस्टार्ट, सेंटोस - सिस्टेक्टल रिस्टार्ट जेनकेन्स. सर्विस


2

हम निम्न कमांड के साथ .war फ़ाइल से जेनकिंस चलाते हैं।

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

आप कमांड को ~ / डाउनलोड निर्देशिका से भी चला सकते हैं


2

मैं नए युद्ध फ़ाइल को डाउनलोड करने के लिए इस ग्रूवी स्क्रिप्ट का उपयोग करता हूं

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

और एक और स्क्रिप्ट शटडाउन टोमकैट - युद्ध की प्रतिलिपि बनाता है और इसे पुनरारंभ करता है

हम इसे विंडोज़ 2008 और टॉमकैट पर होस्ट करते हैं, मैं विंडोज़ सेवाओं का प्रबंधन करने के लिए sc क्वेरी, sc config, sc stop, sc start का उपयोग करता हूं

    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

मेरा / usr / share / jenkins के तहत स्थापित है मुझे लगा कि इसे एप के माध्यम से स्थापित किया गया है, इसलिए वहां भी जांच करना चाहते हैं।

उबुन्टु 12.04.1


1

मैं x11- आम और अन्य घटकों को स्थापित नहीं करना चाहता था जो कि उपयुक्त तरीके से इंस्टॉल किए गए दृष्टिकोण में आते हैं, इसलिए बस .war फ़ाइल डाउनलोड करें और कमांड फ्रैंकोइस का उल्लेख करें। यह अच्छी तरह से काम किया है, लेकिन आपको उस दृष्टिकोण के साथ अपनी खुद की डेमॉन स्क्रिप्ट लिखनी होगी। यहां पूरा विवरण: http://strem.in/stream/9488/Using-the-war-file-for-jenkins-ci


1

जेनकिंस WAR फ़ाइल को अपग्रेड करने के लिए, नीचे दिए गए चरणों का पालन करें:

  • कमांड का उपयोग कर जेनकिंस सर्वर बंद करें: systemctl stop jenkins
  • जेनकिंस युद्ध स्थान पर जाएं: पूर्व: /usr/lib/jenkins
  • Jenkins.war से बैकअप लें: mv jenkins.war jenkins.war_bkp
  • डाउनलोड जेनकींस wget या कर्ल कमांड का उपयोग कर: wget http://updates.jenkinsci.org/download/war/(version)/jenkins.war
  • कमांड का उपयोग कर जेनकिंस सर्वर शुरू करना: systemctl start jenkins
  • कमांड का उपयोग कर जेनकिंस सर्वर स्थिति की जाँच करें: systemctl status jenkin
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.