Blog

Erstellen eines Build.vNext-Agenten unter Linux

Kees Verhaar

Aktualisiert Oktober 22, 2025
6 Minuten

In den letzten Monaten hat Microsoft sehr deutlich gemacht, dass es nicht mehr nur ein Windows-Unternehmen ist. Dinge wie die Xamarin-Integration, das neue plattformübergreifende ASP.Net 5 und die plattformübergreifende .Net CLR sind alles Ergebnisse dieser neuen Strategie. Dies eröffnet Entwicklern, die bisher an eine einzige Plattform gebunden waren, eine Fülle neuer Möglichkeiten. Es kommen aufregende Zeiten auf uns zu!

Der neue Build-Agent für das Build vNext-System ist ein weiteres Beispiel für diese plattformübergreifende Strategie. Der neue Build-Agent basiert auf Node.js, d.h. er sollte auf jeder Plattform laufen, die Node.js unterstützt. Dazu gehört auch Linux. Also habe ich beschlossen, das auszuprobieren. Und wissen Sie was? Es funktioniert! Einen Microsoft-Build-Agent auf Linux laufen zu lassen, finde ich ziemlich cool!

Und der neue Build-Agent ist vollständig Open-Source! Sie können sich den Code auf der GitHub-Seite des VSO-Agenten ansehen.

Erstellen Sie einen Build-Agent-Pool

Obwohl es technisch nicht erforderlich ist, halte ich es für sinnvoll, einen separaten Build-Agent-Pool für Linux-Build-Server anzulegen. Melden Sie sich bei Ihrem VSO-Konto an und klicken Sie auf das Zahnradsymbol oben rechts, um zur Einstellungsseite zu gelangen. Gehen Sie dann auf die Registerkarte "Agentenpools" und klicken Sie auf "Neuer Pool".

Bild Geben Sie einen Namen für Ihren neuen Pool ein und stellen Sie sicher, dass Sie das Kontrollkästchen "Automatische Bereitstellung" aktiviert lassen. Damit stellen Sie sicher, dass Ihr neuer Pool für Ihre Team Project Collection verfügbar ist.

Bild Ihr neuer Pool wird erstellt. Natürlich befinden sich darin noch keine Agenten.

Bild

Berechtigungen festlegen

Bevor wir unseren neuen Agenten hinzufügen und ausführen können, müssen wir noch einige Berechtigungen festlegen. Idealerweise erstellen Sie ein neues (Dienst-)Konto für Ihre Agenten. Leider habe ich keins zur Verfügung, also werde ich mein persönliches Konto verwenden. Zunächst müssen wir alternative Anmeldedaten für das Konto aktivieren. Melden Sie sich mit Ihrem Konto bei VSO an und öffnen Sie Ihre Profileinstellungen.

Bild Gehen Sie dann auf die Registerkarte "Zugangsdaten" und aktivieren Sie dort Ihre alternativen Zugangsdaten.

Bild Gehen Sie nun zurück zur Verwaltungsseite "Agentenpools" und klicken Sie auf das kleine Dreieck vor Ihrem neu erstellten Pool.

Bild Es gibt dort zwei Sicherheitsgruppen. Wir müssen unser Konto zu beiden hinzufügen.

  • Agent-Pool-Administratoren: ermöglicht das Hinzufügen von Agenten zum Pool
  • Agent Pool Service Accounts: ermöglicht es dem Agenten, die Build-Warteschlange abzuhören

Einen Server erstellen

Als nächstes brauchen wir einen Server! Der einfachste Weg, einen zu bekommen, ist, einen in Azure zu erstellen. Ich habe mich für die neueste Ubuntu-Version entschieden, die derzeit verfügbar ist.

Bild Im Moment habe ich mich für die Passwort-Authentifizierung entschieden. Wenn Sie möchten, können Sie eine Schlüsseldatei erstellen und diese verwenden. Es wird ein paar Minuten dauern, bis der Server bereit ist. Für die Anmeldung benötigen wir einen SSH-Client. Ein guter Client für Windows ist PuTTY. Laden Sie ihn herunter, falls Sie das noch nicht getan haben. Starten Sie PuTTY, und geben Sie den Hostnamen Ihres Servers ein. Klicken Sie dann auf "Öffnen", um eine Verbindung herzustellen.

Bild Sie erhalten eine Meldung, in der Sie gefragt werden, ob Sie dem Computer, mit dem Sie sich verbinden, vertrauen. Klicken Sie auf "Ja" und es wird eine Anmeldeaufforderung angezeigt. Melden Sie sich mit den Anmeldedaten an, die Sie bei der Erstellung der virtuellen Maschine angegeben haben.

Bild Voilà, Sie sind bei Ihrem brandneuen Linux-Server angemeldet!

Voraussetzungen für die Installation

Wir müssen einige Voraussetzungen auf unserem neuen Server installieren. Wir müssen Node.js und npm installieren. Geben Sie "sudo apt-get install nodejs npm" ein, um alles in Gang zu bringen.

Bild Sobald Sie Enter drücken, kümmert sich apt-get um die Auflösung der Abhängigkeiten. Wie Sie feststellen werden, gibt es eine ganze Menge... Geben Sie "Y" ein, um die Installation zu starten.

Bild Jetzt haben Sie Geduld, während alles installiert wird...

Aufgrund eines Namenskonflikts mit einem anderen Programm namens "Node" wird Node.js bei der Standardinstallation in Ubuntu als "nodejs" installiert. Das Skript des Build-Agenten erwartet jedoch eine ausführbare Datei "node"... Um dieses Problem zu lösen, wurde das Paket "nodejs-legacy" erstellt. Installieren Sie es, indem Sie "sudo apt-get install nodejs-legacy" eingeben.

Bild Überprüfen Sie nun die installierten Versionen von Node.js und npm, indem Sie "node -v && npm -v" eingeben.

Bild Damit der Build-Agent funktioniert, benötigen Sie Node.js >= v0.10 und npm >= 1.4. In meinem Fall ist alles in Ordnung!

Installieren Sie den Agenten

Als Nächstes müssen Sie den Agenten installieren. Wie bei TFS ist der gesamte Prozess in zwei Teile aufgeteilt: Zuerst installieren wir die Software-Bits, und dann führen wir die Konfiguration aus. Um die Software-Bits zu installieren, können wir npm verwenden. Geben Sie "sudo npm install vsoagent-installer -g" ein und drücken Sie die Eingabetaste. Dadurch wird die neueste Version des Installationsprogramms aus dem Repository geholt.

Bild

Agent konfigurieren

Wir haben es fast geschafft... Jetzt müssen wir nur noch unseren Agenten konfigurieren. Mit dem Agent-Installationsprogramm können wir ganz einfach mehrere Agenten auf einem einzigen Server erstellen. Jeder Agent wird in seinem eigenen Ordner ausgeführt. Zunächst müssen wir also einen Ordner erstellen. Geben Sie "mkdir linuxagent1" ein, um einen solchen zu erstellen, und wechseln Sie dann mit "cd linuxagent1" in diesen Ordner.

BildInstallieren Sie nun den Agenten in diesen Ordner, indem Sie "vsoagent-installer" eingeben.

Bild Dadurch wird der Agent in dem Verzeichnis installiert, das Sie gerade erstellt haben.  Jetzt können wir ihn starten und eine Verbindung zu VSO herstellen! Geben Sie "node agent/vsoagent" ein, um die Konfiguration zu starten. Geben Sie Ihre Anmeldedaten (dies sind Ihre alternativen Anmeldedaten!), Ihre VSO-URL, einen Agentennamen (optional) und Ihren Poolnamen ("Linux" in meinem Fall) ein und der Agent sollte starten!

Bild Hinweis: Der Agent läuft jetzt im interaktiven Modus. Das bedeutet, dass der Agent beendet wird, wenn Sie Ihre Sitzung schließen. Das ist zwar für Tests und Demonstrationen gut, aber für die Produktion ist es nicht so gut geeignet. Derzeit unterstützt der Agent nicht die Ausführung als Dienst unter Linux. Das Entwicklungsteam arbeitet daran. In der Zwischenzeit können Sie diesen Trick anwenden, um den Agenten im Hintergrund laufen zu lassen: Nachdem Sie den Agenten gestartet haben, drücken Sie "Strg+z". Dadurch wird der Prozess angehalten und eine Jobnummer angezeigt (in meinem Fall 1). Geben Sie dann "disown -h %1" ein (wobei 1 die Jobnummer ist). Dies stellt sicher, dass der Auftrag nicht beendet wird, wenn Sie sich abmelden. Geben Sie schließlich "bg 1" ein (auch hier ist 1 die Auftragsnummer). Dadurch wird der Prozess erneut gestartet, dieses Mal im Hintergrund.

Bild Sie können sich jetzt sicher abmelden und der Agent wird weiter ausgeführt. Natürlich müssen Sie diese Schritte wiederholen, wenn Sie den Server neu starten.

Überprüfen Sie

Sie können Ihren neuen Agenten überprüfen, indem Sie die Verwaltungsseite "Agentenpools" auf VSO aufrufen und dort Ihre Warteschlange überprüfen. Ihr neuer Agent sollte dort auftauchen. Und er wird sich als Linux-Server zu erkennen geben!

Bild

Nächste Schritte

In diesem Beitrag habe ich Ihnen gezeigt, wie Sie einen Build vNext-Agenten unter Linux ausführen und ihn mit VSO verbinden können. Wir haben zwar noch nichts Nützliches damit gemacht, aber es zeigt die echte Multiplattform-Richtung, die Microsoft einschlägt. Theoretisch sollten wir damit zum Beispiel eine Java-Anwendung auf Linux erstellen können. Während ich darüber nachdenke, juckt es mir schon in den Fingern, das auszuprobieren... Mehr dazu in einem späteren Beitrag!

Viel Spaß beim Bauen!

Verfasst von

Kees Verhaar

Welcome to my blog! I am an ALM consultant for Xpirit Netherlands B.V. Sounds fancy, doesn’t it? Basically it means I help people to do their work as a software engineer better, faster and easier. In the past couple of years of working in the field, I have encountered many things of which I thought: “I should share this!”. This blog is my way of doing that. You’ll find real life stories, tips & tricks, examples and probably even some code here. Hope you enjoy! If you have any suggestions, please feel free to drop me a line.

Contact

Let’s discuss how we can support your journey.