18387


Jenkinsをsvnのcommitからhookできません。

【環境】

  * CentOS 6.7(VirtualBox)
  * apache＋tomcat8(ajp連携)
  * Jenkins(warファイルをtomcatのwebappsに配置、rpmのインストールはしていない)
  * subversion

【症状】

  * svnのpost-commitファイルにJenkinsのジョブ呼び出し(wget)を記述していますが、ジョブが実行されません。svnをコミット後、「コミット中」がずっと続き、タイムアウトするかキャンセルするまでずっとその状態です。タイムアウト後にジョブの状態を見ても、ビルド失敗にはなっていないので、そもそも接続できていないようです。

【その他検証結果】

  * post-commitファイルを、コミットをトリガーとせず直接シェル実行すると、無事jenkinsのジョブは実行され、ビルドも成功します。Jenkinsのビルド実行ボタンを選択しても、同様に成功します。

  * post-commitでwhoamiしてみると、 **コミットトリガー時はapache** 、 **シェル実行時はroot** となっています。( **これが原因？)**

  * Jenkins側では、ポーリング設定しています(スケジュールは空)。

  * セキュリティ認証はしていません。

  * wget呼び出し
[code]     wget http://localhost/jenkins/job/<ジョブ>/build?delay=0sec

    
[/code]

です。

八方塞がりで困っています。  
ご指摘や疑義などありましたら、お聞かせください。

※ yahoo社の質問サービスも使用したのですが、回答が得られなかったため、こちらで質問させてください。※

**2015-11-04 9:37 追記**

※ コメント欄の内容を転記します。

> > post-commit スクリプト内の wget の実行部分を
>>

>> `wget --timeout=5 -o /tmp/svn_commit.log
http://localhost/jenkins/job/<ジョブ>/build?delay=0sec`

>>

>> とした上で svn commit を実行してみてはどうでしょうか。

>
> 下記のログを取得することができました。
[code]

    --2015-11-04 09:02:09--
    (try:1) localhost/jenkins/job/<;ジョブ>/build?delay=0sec
    Connecting to localhost|::1|:80... failed: Permission denied.
    Connecting to localhost|127.0.0.1|:80... failed: Permission denied. Retrying. ……
    --2015-11-04 09:02:19--
    (try:20) localhost/jenkins/job/<;ジョブ>/build?delay=0sec
    Connecting to localhost|::1|:80... failed: Permission denied.
    Connecting to localhost|127.0.0.1|:80... failed: Permission denied. Giving up. 
    
[/code]


CC BY-SA 3.0
2015-11-03T01:18:17.660
18342
2015-11-04T01:22:48.720
2015-11-04T00:37:39.630
13078
question
centos apache tomcat svn jenkins
Jenkinsをsvnのcommitからhookできません


コメント欄より転記

> > もしかするとこれは SELinux 関連の問題かもしれません。root 権限で
>>

>> `/usr/sbin/setsebool -P httpd_can_network_connect on`

>>

>> を実行して、svn commit を試してみていただけますか。

>
> 無事に解決することができました。


CC BY-SA 3.0
2015-11-04T01:22:48.720
18387
2015-11-04T01:22:48.720
18342
answer