2017-05-11 4 views
2

Wir haben ein Jenkins Server-Setup in unserem Rechenzentrum und hinter unserem Proxy.
Wir versuchen, den SonarQube Scanner mit diesem Computer auf einem Repo laufen zu lassen und die Ergebnisse auf einem SonarQube-Server außerhalb unseres Netzwerks (in AWS) zu veröffentlichen.Jenkins SonarQube Scanner hinter einem Proxy

Der Job startet Sonar Scanner richtig, aber nicht dann, wenn sie versuchen zu unserem Sonarqube Server zu verbinden:

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

Ich las Sonar Runner Behind a Proxy und versucht, diese Werte in der JVM-Optionen Abschnitt und die zusätzlichen Optionen Abschnitte setzen aber sie scheinen keinen Unterschied zu machen.

Um dies ein wenig zu beheben, fügte ich einen einfachen curl Schritt zum Jenkins-Job nur durch ein Bash-Skript und hatte den gleichen Server getroffen und das hat gut funktioniert.

Ich bin mir sicher, ich verpasse hier nur ein winziges Detail, aber ich bin neu in SQ und weiß nicht genau wo ich sonst hinschauen soll.

UPDATE

Die aktuelle Ausgabe zeigt dies:

/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

Können Sie die Version des verwendeten Scanners präzisieren? In den letzten Versionen haben wir einige Verbesserungen am Proxy vorgenommen. –

+0

3.0.1.733 (und SonarQube Scanner für Jenkins 2.6.1) – arsdehnel

+0

Versuchen Sie, '-Djavax.net.debug = all 'an die JVM-Optionen zu übergeben. Dies protokolliert netzwerkbezogene Vorgänge. Dies ist sehr ausführlich, sollte aber helfen zu verstehen, was passiert. Wenn Sie die Ausgabe nicht "lesen" können, schlage ich vor, dass Sie einen neuen Thread in der SonarQube-Benutzergruppe erstellen. SO ist nicht geeignet, Probleme zu untersuchen. –

Antwort

3

Überprüfen Sie, ob Ihre Proxy erfordert Authentifizierung: Sie könnten

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

Stellen Sie sicher, Ihre Proxy hinzufügen müssen ist der Name des Proxyservers, ohne http://:

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

Ich habe die aktuelle Protokollausgabe von Jenkins hinzugefügt. Unser Proxy erfordert keine Authentifizierung. – arsdehnel