2013-08-22 30 views
1

當我嘗試通過post-commit腳本調用Jenkins構建時,svn返回一個拒絕訪問失敗。使用方向在https://wiki.jenkins-ci.org/display/JENKINS/Subversion+Plugin我的第一次嘗試,隨後與特定的配置詹金斯在svn post-commit調用jenkins構建http失敗

首先詹金斯配置:
[X]啓用安全=>詹金斯自己的用戶數據庫
[X]防止跨站請求僞造攻擊( W/&瓦特/啓用默認克拉姆發行人
這回

Error: Connecting to SERVER_IP:8080... failed: Permission denied. 

在此之後用各種wget的幾次都失敗了選項,如http用戶,用戶,http密碼,密碼等我改變了詹金斯服務器配置,以停止使用CSRF。這也失敗了。我傳遞了用戶API令牌,作業API令牌和普通用戶名/密碼。當這些失敗時,我試圖從命令行本身調用作業,使用wget,並且令人驚訝地成功。

當前詹金斯配置:
所有安全選項被禁用。我「米不使用的用戶,我沒有使用令牌或任何東西。

的SVN後提交的文件只有在它有一個命令。

wget http://SERVER_IP:8080/job/JOB_trunk/build?token=BUILD --tries=2 --timeout=2 

這個工作的命令行。詹金斯構建Jenkins並沒有像我提供的用戶那樣運行構建wget--http-user--http-password雖然它不是以用戶身份構建的,但我希望它至少可以構建,並且沒有?令牌選項。

如果我使用sudo /var/svn/JOB/hooks/post-commit運行post-commit hook,則Jenkins構建運行。

每次我向svn提交時,post-commit鉤子都會運行,並嘗試觸發Jenkins構建,並返回下面的錯誤。

Error: post-commit hook failed (exit code 1) with output: 
Error: --2013-08-21 21:36:37-- http://SERVER_IP:8080/job/JOB_trunk/build?token=BUILD 
Error: Connecting to SERVER_IP:8080... failed: Permission denied. 

雖然我可以手動生成的東西,輪詢SVN變化,或等等......我感興趣的只是觸發建立從post-commit鉤子。

SVN服務器在CentOS6上運行。
Jenkins在Win7上運行。

出於測試目的,我試圖通過使用腳本中的su命令來觸發構建並繼續出現問題。如果我從命令行運行腳本,它會成功構建作業,而當svn提交觸發掛鉤時它不會觸發構建。

/bin/su -c `wget http://SERVER_IP:8080/job/JOB_trunk/build --tries=2 --timeout=2 

任何有識之士爲所發生的事情會讓我試圖得到它的工作的一個很快樂的人,一個星期後,非常感激和小時。

回答

1

(我認爲你的提交後文件中的「wget wget」是一個錯字。)

對我來說,你的CentOS6服務器有一些網絡內核問題。

現在我想知道哪個命令打印「失敗:權限被拒絕」。我從來沒有見過wget失敗,它看起來更像是一個本地系統故障(如open()系統調用失敗)。

要確認這樣的問題,請嘗試將wget作爲非root用戶的其他地址(如google.com)執行。它工作嗎?

也可以使用strace來了解更多。

strace wget etc 

並注意到失敗線。

如果是這樣,你編譯了你自己的內核嗎? Have you set CONFIG_ADROID_PARANOID_NETWORK to true

注:CSRF保護的站點,你需要添加額外的參數下載屑(這是在Subversion plugin page

+0

定義是,它是一個錯字,我會解決這個問題謝謝指點出來。 。我還沒有編譯我自己的內核,我將在完成後添加你的建議結果。感謝您的幫助@coffeebreaks,非常感謝。 – Riana

+0

我收到錯誤錯誤:strace:ptrace(PTRACE_TRACEME,...) :使用命令時,權限被拒絕 – Riana

+1

您的CentOS6配置對於其用戶來說非常嚴格,無論是在配置級還是使用像SELinux這樣的安全服務,您自己安裝了系統嗎?您是否重新編譯了內核?像SELinux?它適用於例子允許你禁用跟蹤(閱讀http://danwalsh.livejournal.com/49336.htm和http://wiki.centos.org/HowTos/SELinuxl)。這現在可能成爲一個SELinux的問題,並且可能與svn,jenkins和顛覆無關...... – coffeebreaks