So lösen Sie eine Zeitüberschreitungsausnahme, wenn TeamCity Änderungen von einem SSH-Git-Repository abruft

9

Ich habe ein Git-Repository von einem freigegebenen Ordner im Netzwerk auf einen SSH-Server verschoben, auf dem Gitolite läuft. Ich habe einen öffentlichen / privaten Schlüssel für TeamCity hinzugefügt und den VCS-Root darauf gesetzt. Das alles funktioniert OK, da Test Connection erfolgreich ist und meine Build-Konfiguration die ausstehenden Änderungen anzeigt.

Wenn TeamCity jedoch versucht, diese ausstehenden Änderungen abzurufen, erhalte ich den folgenden Fehler:

%Vor%

Zur ausführlichen Protokollierung wechseln Ich sehe, dass es nach 90 Sekunden abgelaufen ist - ich würde unter normalen Umständen erwarten, dass es nur ein paar Sekunden dauert, diese Änderungen zu holen.

Seit ich versucht habe, das Problem zu beheben, habe ich meinen VCS-Stamm auf "Default Private Key" geändert und den erforderlichen .ssh-Ordner mit den Dateien config, id_rsa und known_hosts hinzugefügt. Ich habe den Fingerabdruck und dann die Passwort-Nachrichten im Log gesehen, bis ich die notwendigen Sachen in diese Dateien gelegt habe, und jetzt gibt mein Server wieder die Timeout-Ausnahme wieder, genau wie wenn ich den Schlüssel im VCS-Root festlege.

>

Wenn ich Git über die Kommandozeile starte, kann ich das Repository ohne Eingabeaufforderungen klonen (wenn ich den .ssh-Ordner wie oben eingerichtet habe). Dies ist von einem anderen Benutzerkonto, da TC als Dienst unter dem Standardsystemkonto ausgeführt wird, aber ich denke nicht, dass das der Grund ist, weil, wie gesagt, ich sehe, dass TC die Änderungen im .ssh-Ordner dafür aufgenommen hat Konto.

Was könnte falsch sein?

    
GraemeF 08.08.2011, 16:13
quelle

3 Antworten

2

Sie haben die Schlüssel für den TeamCity-Server eingerichtet, aber haben Sie es auch für den Agenten getan? Das würde erklären, warum in der Konfiguration die Testverbindung funktioniert, aber sie funktioniert nicht, wenn der Agent ausgeführt wird.

Schnelle Möglichkeit, das Problem zu beheben:

Ändern Sie in den VCS-Einstellungen VCS Checkout mode in Automatically on server und sehen Sie, ob es funktioniert?

Aktualisierung:

Können Sie sich auf dem TeamCity Server anmelden und eine Manula git clone von Ihrem Git Repo als teamcity user ausführen? Auf diese Weise können Sie sehen, wie es funktioniert und auch als vertrauenswürdige Hosts usw. speichern.

    
manojlds 08.08.2011 16:17
quelle
0

Ich habe Team City nicht benutzt, aber ich habe GO (von thoughtworks) für die kontinuierliche Integration verwendet, wo ich auf ein ähnliches Problem gestoßen bin.

Können Sie den Umgebungsvariablenpfad für den Benutzer überprüfen, der die Aufgabe auf dem Erstellungsagenten ausführt. Wenn Sie msysgit verwenden, sollte sich sowohl der Ordner bin als auch der Ordner cmd von msysgit im Pfad befinden.

    
manoj 25.06.2012 06:21
quelle
0

Es passiert, wenn Sie große Repo haben. Sie können der folgenden Empfehlung folgen:

Erhöhen Sie das Zeitlimit in der Benutzermaschine für OSX oder Linux:

  1. Erstellen Sie ~ / .ssh / config-Datei (falls sie noch nicht existiert)
  2. Fügen Sie SSH ServerAliveInterval ServerAliveCountMax-Einstellungen in die Datei ein, z. B .:
  

Gastgeber *
  ServerAliveInterval 86400
  ServerAliveCountMax 4

    
Alexander Kukla 07.10.2016 07:50
quelle

Tags und Links