Did you know that you can navigate the posts by swiping left and right?

Weitere Agents in Teamcity einrichten

08 Sep 2009 . Unknown . Comments

TeamCity Ein häufig eingesetzt Programm für die “Kontinuierliche Integration” in der Softwareentwicklung ist sicherlich TeamCity der Firma Jetbrains. Grundvoraussetzung ist dabei eine Versionsverwaltung. Auch habe ich vor einiger Zeit mal einen Weg beschrieben, wie man beispielsweise nach jedem Hochladen von Änderungen das Projekt automatisch neu erstellen kann. Die dort beschriebene Methode hat allerdings einige Nachteile, beispielsweise muss man bei jedem Check-In warten bis der Build abgeschlossen wurde bevor man weiter arbeiten kann. Um diesen Prozess auszulagern setzt man normalerweise stattdessen unabhängige Programme ein. TeamCity ist ein solches Werkzeug und für Privatpersonen und kleine Teams kostenlos erhältlich. Vor allem die einfache Erstinstallation und Konfiguration des Servers machen es so beliebt (wenn ein kleines Tutorial hierzu gewünscht ist hinterlasst einfach einen Kommentar hier unter dem Beitrag und ich schaue das ich eins vorbereite).

Ein weiterer großer Vorteil von TeamCity als “Distributed Build Management and Continuous Integration Server” sind neben vielen anderen Dingen die Möglichkeit mehr als einen so genannten Build-Agent einzusetzen. Denn der eigentliche Server ist für das Kompilieren von Projekten überhaupt nicht zuständig. Er stellt lediglich alle notwendigen Daten bereit und übergibt die Aufgabe dann an einen so genannten Agenten. Diese Agenten sind kleine Systemdienste auf Entwicklungs- oder Testrechnern und können somit ganz unterschiedliche Szenarien und Konfigurationen abdecken, beispielsweise das automatische Ausführen von Tests unter verschiedenen Betriebssystemen, Sprachversionen, älterer Hardware, …

Standartmäßig wird bei der Installation von TeamCity bereits ein Agent auf dem selben Server mit installiert und eingerichtet, man kann jedoch auch weitere hinzufügen. In der kostenlosen Version von Teamcity sind bis zu 3 autorisierte Agenten gleichzeitig möglich. Ich habe beispielsweise einen Agenten auf dem Server installiert, auf dem aber Visual Studio fehlt. Ohne weiteres ist dort also das Ausführen von Unit-Tests bspw. mit MS-Test nicht möglich. Ein zweiter Agent ist auf meiner Arbeitsstation im Büro installiert; hier habe ich nicht nur eine vollständige Entwicklungsumgebung sondern auch Zugriff auf das interne Netzwerk um beispielsweise Kundenwebs automatisch vom Agenten per Script zu veröffentlichen. Der letzte Agent ist auf meinem Rechner zu Hause unter Windows 7 64bit installiert, um auch Builds und Tests in einer 64-Bit Umgebung durchführen zu können.

Um einen Agenten mit dem TeamCity -Server zu verbinden muss dieser über eine IP und einen Port erreichbar sein. Doch zumindestens bei mir schlug die automatische Erkennung eben dieser IP-Adresse immer fehl, so dass der Agent sich nicht beim Server anmelden konnte. Das Problem tritt innerhalb des selben Netzwerkers vermutlich seltener auf, im aufgezeigten Szenario haben wir jedoch drei geographisch vollständig getrennte Netze, die über eine VPN-Verbindung miteinander vernetzt sind. Man muss also die automatische IP-Detektion des Agenten umgehen und ihm eine feste IP-Adresse zuweisen mit der er sich beim Server meldet und unter der er dann auch erreichbar ist. [more]

Am einfachsten kann man das direkt bei der Installation des Agenten machen. Nach dem Kopieren aller notwendigen Dateien (Bild 3) erscheint eine Abfrage der Konfiguration (Bild 4). Hier klickt man auf den Button “Add” und erstellt eine neue Eigenschaft “ownAddress” mit der zu verwendenden IP-Adresse als Wert. Ansonsten findet man die Konfigurationsdatei auch unter “<BuildAgent Installation-Path>confbuildAgent.properties” und fügt dort entsprechend eine weitere Zeile hinzu, beispielsweise “ownAddress=5.100.178.174”. Der Agent erkennt automatisch, dass die Konfiguration geändert wurde und startet sich selbständig neu.

Für die Vernetzung der drei unterschiedlichen Netzwerke habe ich übrigens das kostenlose ProgrammHamachi” eingesetzt, welches über das Internet ein geschütztes VPN bereitstellt. In Unternehmen ist jedoch vor dem Einsatz eines solchen Programmes unbedingt zunächst Rücksprache mit dem Netzwerk- bzw. Systemadministrator zu halten ob die Installation gestattet wird. Immerhin öffnet man mit dem Programm bei unsachgemäßer Konfiguration ein unter Umständen ungeschütztes Tor in das Unternehmensnetzwerk!

Questions/Suggestions
As always, for questions or feedback, contact me or leave a comment.

Octocat by GitHubEdit this page on GitHub