2016-05-24 13 views
6

मैं निम्न आदेश को चलाने के लिए कोशिश कर रहा हूँ:java.io.IOException: नहीं एक्स-जेनकींस-CLI2 पोर्ट (जेनकींस काम नहीं कर रहा CLI)

java -jar jenkins-cli.jar -s http://jenkins_URL/ --username myusername --password mypassword help

लेकिन मैं त्रुटि हो रही है:

java.io.IOException: नहीं के बीच में एक्स-जेनकींस-CLI2 पोर्ट [अशक्त, एक्स-आवश्यक-अनुमति, एक्स-जेनकींस, एक्स-आप-बनती हैं-इन-समूह, एक्स-हडसन, सामग्री- लंबाई, समाप्ति, एक्स-आप-प्रमाणीकृत-जैसे, एक्स-अनुमति-लागू, द्वारा सेट-कुकी, सर्वर, एक्स-सामग्री-प्रकार-विकल्प, दिनांक, एक्स-जेनकींस-सत्र, सामग्री-प्रकार] पर hudson.cli.C LI.getCliTcpPort (CLI.java:284) hudson.cli.CLI पर। (CLI.java:128) hudson.cli.CLIConnectionFactory.connect (CLIConnectionFactory.java:72) hudson.cli.CLI._main पर (CLI.java:473) hudson.cli.CLI.main (CLI.java:384) दबाया गया: java.io.IOException: सर्वर HTTP प्रतिक्रिया कोड लौटा: यूआरएल के लिए 403: http://52.9.217.252:8888/cli sun.net पर .www .protocol.http.HttpURLConnection.getInputStream (HttpURLConnection.java:1628) hudson.cli.FullDuplexHttpStream। (FullDuplexHttpStream.java:78) hudson.cli.CLI.connectViaHttp (CLI.java:152) पर हडसन पर पर। cli.CLI। (CLI.java:132) ... 3 और

में
<denyAnonymousReadAccess>true</denyAnonymousReadAccess> 

:

<denyAnonymousReadAccess>false</denyAnonymousReadAccess> 
अपने config में

मेरी config.xml फ़ाइल

<?xml version='1.0' encoding='UTF-8'?> 
<hudson> 
    <disabledAdministrativeMonitors/> 
    <version>1.0</version> 
    <numExecutors>2</numExecutors> 
    <mode>NORMAL</mode> 
    <useSecurity>true</useSecurity> 
    <authorizationStrategy class="hudson.security.FullControlOnceLoggedInAuthorizationStrategy"> 
    <denyAnonymousReadAccess>false</denyAnonymousReadAccess> 
    </authorizationStrategy> 
    <securityRealm class="hudson.security.HudsonPrivateSecurityRealm"> 
    <disableSignup>true</disableSignup> 
    <enableCaptcha>false</enableCaptcha> 
    </securityRealm> 
    <disableRememberMe>false</disableRememberMe> 
    <projectNamingStrategy class="jenkins.model.ProjectNamingStrategy$DefaultProjectNamingStrategy"/> 
    <workspaceDir>${ITEM_ROOTDIR}/workspace</workspaceDir> 
    <buildsDir>${ITEM_ROOTDIR}/builds</buildsDir> 
    <jdks/> 
    <viewsTabBar class="hudson.views.DefaultViewsTabBar"/> 
    <myViewsTabBar class="hudson.views.DefaultMyViewsTabBar"/> 
    <clouds/> 
    <scmCheckoutRetryCount>0</scmCheckoutRetryCount> 
    <views> 
    <hudson.model.AllView> 
     <owner class="hudson" reference="../../.."/> 
     <name>All</name> 
     <filterExecutors>false</filterExecutors> 
     <filterQueue>false</filterQueue> 
     <properties class="hudson.model.View$PropertyList"/> 
    </hudson.model.AllView> 
    </views> 
    <primaryView>All</primaryView> 
    <slaveAgentPort>-1</slaveAgentPort> 
    <label></label> 
    <crumbIssuer class="hudson.security.csrf.DefaultCrumbIssuer"> 
    <excludeClientIPFromCrumb>false</excludeClientIPFromCrumb> 
    </crumbIssuer> 
    <nodeProperties/> 
    <globalNodeProperties/> 
</hudson> 

उत्तर

1

यह एक उपयोगकर्ता नाम नहीं है और/या पासवर्ड त्रुटि परिवर्तन इस लाइन यह सुनिश्चित हो .xml फ़ाइल।

अब आप अपने क्रेडेंशियल्स

डिबग करने के लिए मत भूलना सच करने के लिए इसे रीसेट करने के लिए अपने जेनकींस इंटरफ़ेस से कनेक्ट कर सकते हैं।

+0

मैं जेनकींस इंटरफेस देखने के लिए सक्षम हूँ पुनः आरंभ करना। मैं सीएलआई कमांड चलाने में सक्षम नहीं हूं। मैंने जो कहा है, मैंने कोशिश करने की कोशिश की, मैं अभी भी सीएलआई कमांड/ –

+0

चलाने में सक्षम नहीं हूं, यदि आपके पास कोई क्रेडेंशियल समस्या नहीं है, तो आपके पास 403 त्रुटि है, हो सकता है कि यह आपके वेब सर्वर कॉन्फ़िगरेशन के बारे में हो। क्या आप अपना वेब सर्वर कॉन्फ़िगर कर सकते हैं? अधिक जानकारी के साथ (पोर्ट, प्रॉक्सी पोर्ट आदि ...) –

+0

मैंने विवरण में my config.xml जोड़ा है। –

0

यदि आप स्पष्ट नहीं हैं कि यह क्यों विफल रहता है, strace/dtruss डीबगर के तहत चलाएं, उदा।

$ strace -fs1000 -e trace=network java -jar jenkins-cli.jar -s http://localhost:8080/ help 

यदि आपने:

HTTP/1.1 403 कोई मान्य टुकड़ा अनुरोध

त्रुटि में शामिल किया गया है, तो आप या तो अनुरोध में टुकड़ा प्रदान करने के लिए, की जरूरत है या CSRF Protection अक्षम करें।

क्रैंक जारीकर्ता सक्षम होने पर जेनकींस सीएलआई it's not working yet का उपयोग करके, ताकि आप इसके बजाय curl का उपयोग कर सकें। उदाहरण के लिए (अपने जेनकींस पते के साथ localhost डालें):

  1. नोट अपने उपयोगकर्ता API टोकन (/user/USER/configure)।
  2. जाओ अपने टुकड़ा:

    CRUMB=$(curl -s 'http://USER:[email protected]:8080/crumbIssuer/api/xml?xpath=concat(//crumbRequestField,":",//crumb)') 
    
  3. कुछ कमांड आह्वान (जैसे सूची नौकरियों):

    curl -H $CRUMB http://USER:[email protected]:8080/api/json 
    

संबंधित: Jenkins REST API Create job

5

वहाँ एक अधिकारी समाधान है पर Jenkins Wiki Page for CLI

समाधान

  • पर जाएं प्रबंधित है जेनकींस (जेनकींस यूआई में)
  • ->कॉन्फ़िगर वैश्विक सुरक्षा
  • -> "JNLP एजेंटों के लिए TCP पोर्ट": तय या यादृच्छिक
+0

एक आकर्षण की तरह काम किया! धन्यवाद! – Mamun

1

उन लोगों के लिए जो माँ को देख रहे हैं के इस कार्यक्रम को प्रोग्रामिक रूप से (अनुपयुक्त)। आप /var/lib/jenkins/jenkins.CLI.xml में

<jenkins.CLI> 
     <enabled>false</enabled> 
    </jenkins.CLI> 

को
<jenkins.CLI> 
     <enabled>true</enabled> 
    </jenkins.CLI> 

बदल सकते हैं और जेनकींस

+0

इससे सुरक्षा को सक्षम किए बिना -remoting विकल्प को अनुमति मिलेगी, मैन्युअल रूप से कुछ भी नहीं बदलेगी। –

संबंधित मुद्दे