web-dev-qa-db-ja.com

JenkinsとHTTPS:サーバーに接続できません

https接続にSubversionリポジトリがあります。ローカルで接続できます(プロキシは必要ありません):

$ svn ls --username=qazwart --password=swordfish \
    https://svn.corpwad.com/repos/potzrebie/branches/build-test
build.xml
src
...

ここで、プロキシを必要とするビルドサーバーにログオンします。

$ ssh [email protected]
Last login: Thu Aug 14 09:22:48 2014 from qazwart.corpwad.net
$ export | egrep "JENKINS|_proxy"
declare -x JENKINS_Java_OPTIONS="-Djava.awt.headless=true -Dhttps.proxyHost=proxy.corpwad.net -Dhttp.proxyHost=proxy.corpwad.net -Dhttp.proxyPort=3128 -Dhttps.proxyPort=3128 -Dhttp.auth.preference=Basic"
declare -x http_proxy="http://proxy.corpwad.net:3128"
declare -x https_proxy="http://proxy.corpwad.net:3128"

ご覧のとおり、プロキシにはJENKINS_Java_OPTOPNSが設定されており、https_proxyが設定されています。 Subversionリポジトリにはログインが必要ですが、プロキシにはログインは必要ありません。

wgetを試してみましょう:

$ wget -O - --user=qazwart --password=swordfish https://svn.corpwad.com/repos/potzrebie/branches/build-test
--2014-08-14 09:54:09--  https://svn.corpwad.com/repos/potzrebie/branches/build-test
Resolving proxy.ilcb.tcprod.local... 10.80.12.90
Connecting to proxy.corpwad.net|10.80.12.90|:3128... connected.
Proxy request sent, awaiting response... 401 Authorization Required
Connecting to proxy.corpwad.net|10.80.12.90|:3128... connected.
Proxy request sent, awaiting response... 301 Moved Permanently
Location: https://svn.corpwad.com/repos/potzrebie/branches/build-test [following]
--2014-08-14 09:54:10--  https://svn.corpwad.com/repos/potzrebie/branches/build-test
Connecting to proxy.ilcb.tcprod.local|10.80.12.90|:3128... connected.
Proxy request sent, awaiting response... 200 OK
Length: 1130 (1.1K) [text/html]
Saving to: “STDOUT”

 0% [                                                                               ] 0            --.-K/s              <html><head><title> potzrebie - Revision 1937: /branches/build-test</title></head>
<body>
 <h2> potzrebie - Revision 1937: /branches/build-test</h2>
 <ul>
  <li><a href="../">..</a></li>
  <li><a href="build.xml">build.xml</a></li>
  ...
 </ul>
100%[==============================================================================>] 1,130       --.-K/s   in 0s      

2014-08-14 09:54:10 (51.6 MB/s) - written to stdout [1130/1130]
$

さて、wgetを介してリポジトリに接続できます。つまり、ビルドサーバーからリポジトリへのネットワーク接続があります。残念ながら、私のシステムにはテスト用のSubversionコマンドラインクライアントがありません。 IT部門にRPMのインストールを依頼する必要がありますが、現時点ではテストできません。幸い、Jenkinsは svnkit を使用するため、コマンドラインクライアントを必要としません。 :Jenkins Freestyleジョブを作成し、リポジトリとしてSubversionを選択し、リポジトリURLフィールド、https://svn.corpwad.com/repos/potzrebie/branches/build-testを入力します。ユーザーqazwartとパスワードswordfishgloabal資格情報を設定します。ただし、ビルド構成画面を表示しているときに、次のように表示されます。

Unable to access https://svn.corpwar.com/repos/potzrebie/branches/build-test : svn: E175002: OPTIONS /repos/potzrebie/branches/build-test failed 
org.tmatesoft.svn.core.SVNException: svn: E175002: OPTIONS /repos/potzrebie/branches/build-test failed
    at org.tmatesoft.svn.core.internal.io.dav.http.HTTPConnection.request(HTTPConnection.Java:388)
    at org.tmatesoft.svn.core.internal.io.dav.http.HTTPConnection.request(HTTPConnection.Java:373)
    at org.tmatesoft.svn.core.internal.io.dav.http.HTTPConnection.request(HTTPConnection.Java:361)
    at org.tmatesoft.svn.core.internal.io.dav.DAVConnection.performHttpRequest(DAVConnection.Java:707)
....
Caused by: svn: E175002: OPTIONS /repos/potzrebie/branches/build-test failed
        at org.tmatesoft.svn.core.SVNErrorMessage.create(SVNErrorMessage.Java:208)
        at org.tmatesoft.svn.core.SVNErrorMessage.create(SVNErrorMessage.Java:154)
        at org.tmatesoft.svn.core.SVNErrorMessage.create(SVNErrorMessage.Java:97)
        ... 88 more
Caused by: org.tmatesoft.svn.core.SVNException: svn: E175002: OPTIONS request failed on '/repos/potzrebie/branches/build-test'
svn: E175002: connection refused by the server
        at org.tmatesoft.svn.core.internal.wc.SVNErrorManager.error(SVNErrorManager.Java:64)
        at org.tmatesoft.svn.core.internal.wc.SVNErrorManager.error(SVNErrorManager.Java:51)
        at org.tmatesoft.svn.core.internal.io.dav.http.HTTPConnection._request(HTTPConnection.Java:777)
        at org.tmatesoft.svn.core.internal.io.dav.http.HTTPConnection.request(HTTPConnection.Java:382)
        ... 87 more
Caused by: svn: E175002: OPTIONS request failed on '/repos/potzrebie/branches/build-test'
        at org.tmatesoft.svn.core.SVNErrorMessage.create(SVNErrorMessage.Java:208)
        at org.tmatesoft.svn.core.internal.io.dav.http.HTTPConnection._request(HTTPConnection.Java:775)
        ... 88 more
Caused by: svn: E175002: connection refused by the server
        at org.tmatesoft.svn.core.SVNErrorMessage.create(SVNErrorMessage.Java:208)
        at org.tmatesoft.svn.core.internal.io.dav.http.HTTPConnection._request(HTTPConnection.Java:520)
        ... 88 more
Caused by: Java.net.ConnectException: Connection refused
        at Java.net.PlainSocketImpl.socketConnect(Native Method)

もう一つのマイナーなステップが欠けているような気がしますが、それを理解することはできません。

2
David W.

問題が見つかりました。 JENKINS_Java_OPTIONSを設定していますが、Tomcat自体の起動時に設定されていませんでした。 $CATALINA_BASE/bin/setenv.shに入り、次を追加しました。

CATALINA_OPTS="$CATALINA_OPTS $JENKINS_Java_OPTIONS -DJENKINS_HOME=...

これにより、Javaの開始時にrequiresプロパティが設定されます。

2
David W.