2014-04-30 2 views
2

Jenkins에 익숙하지 않지만 어떤 이유로 인해 perforce 플러그인을 작동시킬 수 없습니다. 나는 문제를 나열하고 내가 더 잘 이해할 수 있도록 노력했다.Jhkins perforce 플러그인을 ssh와 함께 작동시키지 못함

젠킨스 버전 - 1.561

억지로 플러그인 버전 - 1.3.27

시스템 (필자는 젠킨스에 구성 억지로 경로가) - 우분투 10.04

문제 :에서

소스 코드 관리 프로젝트 세부 사항 섹션 (새로운 작업을 구성하려고 할 때) "저장소에 대한 작업 공간을 확인할 수 없습니다 "오류가 발생했습니다.

P4PORT(hostname:port) - rsh:ssh -q -a -x -l p4ssh -q -x xxx.xxx.com /bin/true 
Username    - ialok 
Password    - N.A (Connection to SCM is via key authentication so left it blank) 
Workspace(client)  - ialok_jenkins 

내가 젠킨스는 작업 공간을 생성하고 모두 에 대한 확인란을 선택하여 해당 뷰를 관리 할 수 ​​"젠킨스가 작업 영역을 만들 수 있습니다"

클라이언트보기 유형은 이다 "젠킨스가 작업 영역보기를 관리하자" 다음지도와지도 :

// 샌드 박스/srkamise/... // ialok_jenkins/srkamise/...

0 123,414,나는 이전 젠킨스를 시작하기로드 키가와 젠킨스 과정은 내가을 "아래에서 실행을위한 환경을 준비" envInject에게 플러그인 및 을 사용

~$ ps aux | grep jenkins 
ialok 16608 0.0 0.0 14132 552 ?  Ss 11:08 0:00 /usr/bin/daemon --name=ialok --inherit --env=JENKINS_HOME=/var/lib/jenkins --output=/var/log/jenkins/jenkins.log --pidfile=/var/run/jenkins/jenkins.pid -- /usr/bin/java -Djava.awt.headless=true -jar /usr/share/jenkins/jenkins.war --webroot=/var/cache/jenkins/war --httpPort=8080 --ajp13Port=-1 
ialok 16609 1.0 13.9 1448716 542156 ?  Sl 11:08 1:04 /usr/bin/java -Djava.awt.headless=true -jar /usr/share/jenkins/jenkins.war --webroot=/var/cache/jenkins/war --httpPort=8080 --ajp13Port=-1 

또한 내 사용자로 (ialok)를 실행 나는 에게 SSD_AGENT_PID, SSH_AUTH_SOCK, P4USER, P4PORT 환경 매개 변수를 추가했다. (나는 envInject없이 시도했지만 같은 문제에 직면했다.)

프로젝트 매핑과 내 환경에 키를 추가하는 것과 함께 p4 실행 파일의 경로를 두 번 확인하면 인증 문제가있는 것처럼 보입니다.

Started by user anonymous 
[EnvInject] - Loading node environment variables. 
[EnvInject] - Preparing an environment for the build. 
[EnvInject] - Keeping Jenkins system variables. 
[EnvInject] - Keeping Jenkins build variables. 
[EnvInject] - Injecting as environment variables the properties content 
P4CONFIG=.perforce 
P4PORT=rsh:ssh -q -a -x -l p4ssh -q -x xxx.xxx.com /bin/true 
P4USER=ialok 
SSH_AGENT_PID=25752 
SSH_AUTH_SOCK=/tmp/keyring-7GAS75/ssh 

[EnvInject] - Variables injected successfully. 
[EnvInject] - Injecting contributions. 
Building in workspace /var/lib/jenkins/jobs/fin/workspace 
Using master perforce client: ialok_jenkins 
[workspace] $ /usr/bin/p4 workspace -o ialok_jenkins 
Changing P4 Client Root to: /var/lib/jenkins/jobs/fin/workspace 
Changing P4 Client View from: 


Changing P4 Client View to: 
    //sandbox/srkamise/... //ialok_jenkins/srkamise/... 
Saving new client ialok_jenkins 
[workspace] $ /usr/bin/p4 -s client -i 
Caught exception communicating with perforce. TCP receive failed. read: socket: Connection reset by peer 
For Command: /usr/bin/p4 -s client -i 
With Data: 
=================== 
Client: ialok_jenkins 
Description: 
Root: /var/lib/jenkins/jobs/fin/workspace 
Options: noallwrite clobber nocompress unlocked nomodtime rmdir 
LineEnd: local 
View: 
    //sandbox/srkamise/... //ialok_jenkins/srkamise/... 


=================== 
com.tek42.perforce.PerforceException: TCP receive failed. read: socket: Connection reset by peer 
For Command: /usr/bin/p4 -s client -i 
With Data: 
=================== 
Client: ialok_jenkins 
Description: 
Root: /var/lib/jenkins/jobs/fin/workspace 
Options: noallwrite clobber nocompress unlocked nomodtime rmdir 
LineEnd: local 
View: 
    //sandbox/srkamise/... //ialok_jenkins/srkamise/... 


=================== 

    at com.tek42.perforce.parse.AbstractPerforceTemplate.saveToPerforce(AbstractPerforceTemplate.java:270) 
    at com.tek42.perforce.parse.Workspaces.saveWorkspace(Workspaces.java:77) 
    at hudson.plugins.perforce.PerforceSCM.saveWorkspaceIfDirty(PerforceSCM.java:1787) 
    at hudson.plugins.perforce.PerforceSCM.checkout(PerforceSCM.java:895) 
    at hudson.model.AbstractProject.checkout(AbstractProject.java:1251) 
    at hudson.model.AbstractBuild$AbstractBuildExecution.defaultCheckout(AbstractBuild.java:604) 
    at jenkins.scm.SCMCheckoutStrategy.checkout(SCMCheckoutStrategy.java:86) 
    at hudson.model.AbstractBuild$AbstractBuildExecution.run(AbstractBuild.java:513) 
    at hudson.model.Run.execute(Run.java:1709) 
    at hudson.model.FreeStyleBuild.run(FreeStyleBuild.java:43) 
    at hudson.model.ResourceController.execute(ResourceController.java:88) 
    at hudson.model.Executor.run(Executor.java:231) 
ERROR: Unable to communicate with perforce. TCP receive failed. read: socket: Connection reset by peer 
For Command: /usr/bin/p4 -s client -i 
With Data: 
=================== 
Client: ialok_jenkins 
Description: 
Root: /var/lib/jenkins/jobs/fin/workspace 
Options: noallwrite clobber nocompress unlocked nomodtime rmdir 
LineEnd: local 
View: 
    //sandbox/srkamise/... //ialok_jenkins/srkamise/... 


=================== 

Finished: FAILURE 
+1

자신을보기를 설정하고 젠킨스가 그것을 제어 두지 않을보십시오. tek42 래퍼 + rsh 포트 + STDIN (-i 명령) == 통증처럼 보입니다. 클라이언트를 직접 관리하는 경우 -i 플래그로 명령을 실행할 필요가 없습니다. – Matt

답변

1

P4PORT 일반적 형태 'hostname.port'이다 : 여기

실패한 실행을 표시하는 로그 파일입니다. 예를 들면 다음과 같습니다

여기
workshop.perforce.com:1666 

myserver.mycompany.net:2500 

몇 가지 문서를이다 : http://www.perforce.com/perforce/doc.current/manuals/cmdref/P4PORT.html

+0

rsh를 사용하여 perforce에 연결하는 방법에 대한 문서 링크는 거의 없습니다. 해킹처럼 보이지만 여기에는 scm을 제어 할 권한이 없습니다. [link1] (http : //public.perforce.com/guest/tony_smith/perforce/p4u/main/README) [link2] (http://00photo.co.uk/paul/?p=15) – ialok

관련 문제