2016-05-24 10 views
6

私は、次のコマンドを実行しようとしています:にjava.io.IOException:</p> <p><code>java -jar jenkins-cli.jar -s http://jenkins_URL/ --username myusername --password mypassword help</code></p> <p>しかし、私はエラーを取得しています:いいえX-ジェンキンス-CLI2ポート(ジェンキンスが動作していないCLI)

にjava.io.IOException:[ヌル、X-必要な許可、X-ジェンキンス、X-あなた-ARE-グループ内、X-ハドソン、のContent間にはX-ジェンキンス-CLI2ポート長さ、有効期限、X-あなた-ARE-認証-として、X-許可暗黙することにより、のSet-Cookie、サーバー、X-Content-Typeの-オプション、日付、X-ジェンキンス・セッション、Content-Typeの] でhudson.cli.C LI.getCliTcpPort(CLI.java:284) at hudson.cli.CLI。(CLI.java:128) at hudson.cli.CLIConnectionFactory.connect(CLIConnectionFactory.java:72) at hudson.cli.CLI._main (CLI.java:473) hudson.cli.CLI.main(CLI.java:384) java.io.IOException:サーバーがHTTP応答コード:403を返しました。URL:http://52.9.217.252:8888/cli at 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もっと

私の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

それはユーザ名および/またはパスワードエラーの変更このラインではありません確認するには:あなたの設定に

<denyAnonymousReadAccess>false</denyAnonymousReadAccess> 

:へ

<denyAnonymousReadAccess>true</denyAnonymousReadAccess> 

.xmlファイル。

今、あなたは

がtrueにそれをリセットすることを忘れないでください、あなたの資格情報をデバッグするために、あなたのジェンキンスインターフェイスに接続することができます。 strace/dtrussデバッガの下で実行

+0

を再起動する必要があります。 CLIコマンドを実行できません。私はあなたが言ったことをやってみました、私はまだCLIコマンドを実行することができません/ –

+0

あなたは403のエラーがある、それはあなたのWebサーバーの設定に関する多分クレデンシャルの問題ではない場合。あなたのWebサーバーの設定を置くことができますか?詳細情報(ポート、プロキシポートなど...) –

+0

説明に自分のconfig.xmlを追加しました。 –

0

それが失敗した理由が明確でない場合、例えば

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

あなたが持っている場合:有効なクラムが要求

エラーには含まれなかった

HTTP/1.1 403、その後は、リクエストにクラムを提供するために、いずれかの必要がありますまたはCSRF Protectionを無効にします。

ジェンキンスCLI it's not working yetを使用するとcrumb発行者が有効になるので、代わりに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

ソリューション

  • Goが管理する(ジェンキンスUIで)ジェンキンスある
  • - >設定グローバルセキュリティ
  • - > "JNLPエージェントのTCPポート":どのようにミリアンペアまでにお探しの方のために、固定またはランダム
+0

は魅力的に働いた!ありがとうございました! – Mamun

1

を選択この仕事を計画的に(無人で)行う。 あなたは/var/lib/jenkins/jenkins.CLI.xmlで

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

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

を変更し、私はジェンキンスインタフェースを参照することができるよジェンキンス

+0

これはセキュリティを有効にせずに-remotingオプションを許可し、何も手動で変更することはありません。 –

関連する問題

 関連する問題