2017-05-11 4 views
2

우리는 우리의 데이터 센터와 우리의 프록시 뒤에 젠킨스 서버 설정이 있습니다.
우리는 그 기계가 SonarQube Scanner를 repo에서 실행시키고 결과를 우리 네트워크 외부의 SonarQube 서버 (AWS에서)에 공개하려고합니다.젠킨스 SonarQube 스캐너 프록시 뒤에

22:12:31.612 DEBUG: keyStore is : 22:12:31.613 DEBUG: keyStore type is : jks 22:12:31.613 DEBUG: keyStore provider is : 22:12:31.613 DEBUG: init keystore 22:12:31.613 DEBUG: init keymanager of type SunX509 22:12:31.682 INFO: User cache: /zdata/jenkins/.sonar/cache 22:12:31.683 DEBUG: Extract sonar-scanner-api-batch in temp... 22:12:31.687 DEBUG: Get bootstrap index... 22:12:31.687 DEBUG: Download: http://my-sq-server.com/batch/index 22:12:31.713 ERROR: SonarQube server [http://my-sq-server.com] can not be reached

나는 Sonar Runner Behind a Proxy를 읽고 섹션을 JVM 옵션 섹션에서 해당 값을 넣고 추가 옵션 시도 : 우리 SonarQube 서버에 연결하려고 할 때

작업이 제대로 수중 음파 탐지기 스캐너를 시작하지만 실패 그러나 그들은 어떤 차이도없는 것처럼 보입니다.

이 문제를 조금 해결하기 위해 나는 단지 bash 스크립트를 통해 Jenkins 작업에 간단한 curl 단계를 추가했으며, 동일한 서버에 충돌하여 정상적으로 작동했습니다.

나는 여기에 아주 작은 세부 사항을 놓치고 있지만 나는 SQ를 처음 접했고 다른 곳을 알지 못한다고 확신한다.

UPDATE는

는 현재 출력이 표시됩니다 :

/zdata/jenkins/tools/hudson.plugins.sonar.SonarRunnerInstallation/scanner-3.0.1.733/bin/sonar-scanner -Dhttp.proxyHost=proxy.hostname.com -Dhttp.proxyPort=8080 -e -Dsonar.host.url=http://my-sonarqube-server.com ******** -Dsonar.sourceEncoding=UTF-8 -Dsonar.sources=. -Dsonar.language=js -Dsonar.exclusions=__tests__/**,**/node_modules/**,coverage/** -Dsonar.projectVersion=1.0 -Dsonar.projectKey=repo-key -Dsonar.verbose=true -Dsonar.javascript.lcov.reportPath=coverage/lcov.info -Dsonar.tests=__tests__ "-Dsonar.projectName=Project Name" -Dsonar.projectBaseDir=/zdata/jenkins/workspace/my-project

+0

사용중인 스캐너의 버전을 정확하게 지정할 수 있습니까? 최근 버전에서는 프록시와 관련하여 몇 가지 개선 사항을 수행했습니다. –

+0

3.0.1.733 (및 SonarQube Scanner for Jenkins 2.6.1) – arsdehnel

+0

JVM 옵션에'-Djavax.net.debug = all'을 전달하십시오. 이렇게하면 네트워크 관련 작업이 기록됩니다. 이는 매우 장황하지만 어떤 일이 발생하는지 이해하는 데 도움이됩니다. "출력"을 관리하지 않으면 SonarQube 사용자 그룹에 새 스레드를 만드는 것이 좋습니다. 그래서 문제를 조사하는 것은 적절하지 않습니다. –

답변

3

프록시 인증이 필요합니다 확인하는 경우 : 당신이

-Dhttp.proxyUser=username -Dhttp.proxyPassword=password 

가 프록시 확인 추가해야 할 수도 있습니다 http://없이 프록시 서버 이름으로 참조됩니다.

-Dhttp.proxyHost=myproxy (not -Dhttp.proxyHost=http://myproxy) 
+0

Jenkins의 현재 로그 출력을 추가했습니다. 프록시에는 인증이 필요하지 않습니다. – arsdehnel

관련 문제