2015-06-09 198 views
1

當rsync的使用與詹金斯作爲在CentOS 6.4執行shell命令,它失敗:爲什麼rsync的失敗,詹金斯

[workspace] $ /bin/sh -xe /tmp/hudson3424899639384884888.sh 
+ rsync -av /var/lib/jenkins/jobs/myjob/workspace/target/classes/ [email protected]:/home/myuser/test 
rsync: Failed to exec ssh: Permission denied (13) 
rsync error: error in IPC code (code 14) at pipe.c(84) [sender=3.0.6] 
rsync: connection unexpectedly closed (0 bytes received so far) [sender] 
rsync error: error in IPC code (code 14) at io.c(600) [sender=3.0.6] 

然而,在命令行工作:

su jenkins 
rsync -av /var/lib/jenkins/jobs/myjob/workspace/target/classes/ [email protected]:/home/myuser/test 
sending incremental file list 

sent 17875 bytes received 83 bytes 3990.67 bytes/sec 
total size is 1981027 speedup is 110.31 

什麼都有爲了讓它在詹金斯工作也要做?

+0

你有ssh密鑰複製到遠程機器嗎?當你從命令行執行它時,你是否必須鍵入你的用戶名和密碼? – davidrv87

+0

ssh密鑰在遠程機器上,當我從命令行執行時,我不必鍵入我的用戶名和密碼。 – miloxe

回答

0

問題出在安裝在CentOS上的SElinux上,因爲某些原因阻塞了rsync的ssh。

這裏是在/ var/log/messages中的線,其表示,SSH被封鎖:

Jun 12 13:45:59 myserver kernel: type=1400 audit(1434109559.911:33346): avc: denied { execute } for pid=11862 comm="rsync" name="ssh" dev=dm-1 ino=11931741 scontext=unconfined_u:system_r:rsync_t:s0 tcontext=system_u:object_r:ssh_exec_t:s0 tclass=file 

在我們的服務器上,現在我們禁用SELinux的,妥善的解決方案是創建自定義的策略模塊(1

0

我有類似的問題。

在我來說,詹金斯並沒有執行與預期用戶的rsync(詹金斯),但與另一個(在我的情況的JBoss) 加入「whoami」的腳本,並使用SSH詳細:

rsync -e "ssh -v" ....... 

幫助發現問題。