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
とパスワードswordfish
でgloabal資格情報を設定します。ただし、ビルド構成画面を表示しているときに、次のように表示されます。
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)
もう一つのマイナーなステップが欠けているような気がしますが、それを理解することはできません。
問題が見つかりました。 JENKINS_Java_OPTIONS
を設定していますが、Tomcat自体の起動時に設定されていませんでした。 $CATALINA_BASE/bin/setenv.sh
に入り、次を追加しました。
CATALINA_OPTS="$CATALINA_OPTS $JENKINS_Java_OPTIONS -DJENKINS_HOME=...
これにより、Javaの開始時にrequiresプロパティが設定されます。