Wir können nicht von überall auf Jenkins zugreifen

17445
fische

Wir haben gerade Jenkins auf unserem Server installiert (Debian 7 Wheezy). Es funktioniert im lokalen Netzwerk, aber nicht im externen Netzwerk. Wir suchen, finden jedoch keine Lösung für dieses Problem.

Wir können unseren Server pingen, aber wenn wir die Adresse für Jenkins angeben, funktioniert das nicht.

3
Haben Sie Ihre Firewall-Einstellungen überprüft? vor 10 Jahren 0
Läuft Tomcat auf Port 80 oder wird es von Apache angezeigt? David Levesque vor 10 Jahren 0
Ich glaube, Jenkins haben einen eigenen Container? Nein? fische vor 10 Jahren 0
Es hängt davon ab, wie Sie es installiert haben. David Levesque vor 10 Jahren 0

2 Antworten auf die Frage

2
William LAM

Wahrscheinlich aus folgenden Gründen:

1) Ihre Webserver-Konfig

Für Apache: von allen zulassen

Für Kater:

<Host name="localhost" appBase="webapps" unpackWARs="true" autoDeploy="true" xmlValidation="false" xmlNamespaceAware="false"> 

sollte sein

<Host name="www.example.com" appBase="webapps" unpackWARs="true" autoDeploy="true" xmlValidation="false" xmlNamespaceAware="false"> 

2) Ihre Firewall-Einstellungen (offener Port für externe Verbindung)

3) Jenkins Config

Zuerst ändern Sie für Debien / etc / default / jenkins und fügen Sie eine Zeile HTTP_HOST = externe Adresse hinzu (z. B. HTTP_HOST = www.example.com).

Fügen Sie dann --httpListenAddress = $ HTTP_HOST zu Ihrem JENKINS_ARGS hinzu (JENKINS_ARGS = "- webroot = / var / cache / jenkins / war_httpPort = $ HTTP_PORT --ajp13Port = $ AJP_PORT --httpListenAddress = $ HTTP_HOST").

Starten Sie schließlich Ihre Jenkins neu

Wir haben bereits eine Redmine mit Apache installiert und es funktioniert gut. Und mit dem iptables -L-Befehl lautet das Ergebnis: Chain INPUT (Policy ACCEPT) Zielprotokoll-Quellziel Chain FORWARD (Policy ACCEPT) Zielprotokoll-Quellziel Kette OUTPUT (Policy ACCEPT) Zielprotopt-Quellziel Normalerweise sind alle Ports geöffnet . Nein? fische vor 10 Jahren 0
Deaktivieren Sie Ihre Firewall wie folgt: # /etc/init.d/iptables save # /etc/init.d/iptables stop Ist Ihre Redmine über ein externes Netzwerk erreichbar? Sind Ihre Jenkins und Redmine auf demselben Webserver installiert? Standardmäßig verfügt Jenkins über einen eigenen Standalone-Webserver, der an Port 8080 ausgeführt wird. William LAM vor 10 Jahren 0
Ja, die Redmine ist immer über das externe Netzwerk erreichbar. Redmine und Jenkins befinden sich nicht auf demselben Server (dh Apache und Tomcat). Ich verstehe das wirklich nicht. Gibt es etwas zu ändern in der Konfiguration des Jenkins? fische vor 10 Jahren 0
Wenn ich den Port von Jenkins auf 80 (dh den Port von Redmine) ändere, stoppe ich den Apache. Jenkins funktionieren auch nicht. fische vor 10 Jahren 0
Wie wäre es mit der Jenkins-Konfiguration? unter / etc / default / jenkins JENKINS_ARGS = "- webroot = / var / run / jenkins / war --httpPort = $ HTTP_PORT --ajp13Port = $ AJP_PORT --httpListenAddress = $ HTTP_HOST" $ HTTP_HOST sollte nicht localhost oder 127.0 sein. 0,1 William LAM vor 10 Jahren 0
Ich habe gerade JENKINS_ARGS = "- webroot = / var / cache / jenkins / war --httpPort = $ HTTP_PORT --ajp13Port = $ AJP_PORT". Das ist gut? Ich muss $ HTTP_HOST angeben. und wenn ich sie angeben muss, was muss ich schreiben? fische vor 10 Jahren 0
Prüfen Sie, ob die aktualisierte Antwort Ihr Problem lösen kann William LAM vor 10 Jahren 0
es geht nicht! > <. Ich gebe für den HTTP_HOST meine externe Adresse meines Servers an. Es ist richtig? fische vor 10 Jahren 0
wie wäre es mit einem Kater? Kannst du auf die Kater-Homepage oder einen anderen Krieg als Jenkins zugreifen? Es kann kein Jenkins Problem sein. Siehe aktualisierte Antwort. William LAM vor 10 Jahren 0
Ich ändere meine Konfiguration von Tomcat. Und ich kann keinen Kater haben. Ich habe Tomcat6. fische vor 10 Jahren 0
Möchten Sie Ihre server.xml zu Ihrer Frage posten? William LAM vor 10 Jahren 0
0
Gary

a) Öffnen Sie eine Bash-Shell (Git Bash unter Windows reicht aus) auf Ihrem Heimcomputer (nicht dem Jenkins-Computer).

b) Führen Sie einen PORT-VORWÄRTS über einen SICHEREN SSH-TUNNEL durch, um den Port 8080 des Jenkins-Computers mit dem Port 8080 Ihres Heimcomputers zu "zuordnen". Der Befehl dazu in der Git Bash-Shell lautet:

ssh -L 127.0.0.1:8080:localhost:8080 YourAdminName@xx.yyy.zzz.ab -i "C: \ PathToFolderContainingMySecretKey"

Hier ist xx.yyy.zzz.ab Ihre öffentliche Internetadresse (zB 62.187.151.9). Beachten Sie, dass der Pfad nach -i der Pfad auf Ihrem Computer ist, in dem Sie den privaten Schlüssel gespeichert haben, der dem auf dem Jenkins-Computer verwendeten öffentlichen Schlüssel entspricht.

c) Und jetzt können Sie sich auf Ihrem Heimcomputer wie folgt verbinden: http: // localhost: 8080

d) Wenn Sie Jenkins zum ersten Mal konfigurieren, benötigen Sie das anfängliche Administratorkennwort. So bekommen Sie es. In der Git-Bash-Shell auf dem Heimcomputer (denken Sie daran, dass Sie bereits über SSH mit dem Jenkins-Computer verbunden sind):

sudo cat / var / lib / jenkins / secrets / initialAdminPassword

Kopieren Sie es und fügen Sie es in Ihren Browser ein.