Azure DevOps – Linux Build Agent hinzufügen
In diesem Tutorial zeige ich, wie man einen Linux Build Agent zu Azure DevOps hinzufügen kann. Zuletzt habe ich bereits meinen eigenen Windows Rechner hinzugefügt, besser ist aber eine gehostete VM und da aufgrund von Lizenzkosten idealerweise ein Linux System.
Azure DevOps – Linux Build Agent hinzufügen
Wo gebaut wird benötigt man Arbeiter. Diese Weisheit von der Baustelle kann man auch auf Azure DevOps übertragen, denn die Pipelines sind nur ein Kochrezept. Um das Rezept zu kochen bedarf es eines Kochs und das ist ein Rechner. Ich zeige wie man einen beliebigen Linux Rechner als solchen Koch engagiert damit in DevOps endlich mal was gearbeitet wird.
Linux VM erstellen
Voraussetzung für die folgende Erklärung ist ein Linux System, welches man als Build Agent hinzufügen kann. Ich erstelle mir zu diesem Zweck eine neue Linux VM in der Azure Cloud. Das Ubuntu System ist nach wenigen Klicks im Azure Portal einsatzbereit. Dank Visual Studio Lizenz habe ich monatlich ein Budget für 50$, damit geht sich eine passable Ubuntu VM aus die rund um die Uhr läuft. Ich wähle also die aktuelle Ubuntu LTS Version aus:
Und wähle bei der Größe des Systems die gerade noch so passende Einstellung. Mit Kosten von 41,80€ pro Monat geht sich diese VM gerade noch so mit dem verfügbaren Budget aus und kann 24/7 laufen ohne tatsächlich Kosten zu verursachen:
Agent Pool erstellen und VM hinzufügen
In DevOps findet man in den Projekteinstellungen (bzw. den Organisationseinstellungen) den Punkt Agent pools. Dort kann man einen neuen Pool für eigens gehostete Agents erstellen. Idealerweise vergibt man bei der Wahl des Namens eine aussagekräftige Bezeichnung.
Ist der Pool erstellt findet man dort eine Übersicht aller Agents mit der Information ob diese online sind oder nicht und mit Schaltern über die man registrierte Agents aktivieren oder deaktivieren kann. In dieser Ansicht findet sich auch die „New agent“ Funktion über die man einen neuen Agent registriert. Der nun geöffnete Dialog bietet alle Informationen die man für die Konfiguration des Systems benötigt. Wie an den Reitern zu sehen sind sowohl Windows, macOS als auch Linux Agenten möglich.
Installation Agent
Im folgenden gehe ich die Konfiguration eines Agenten durch. Über den angezeigten Link (Download the agent) lädt man sich die Software für den Agent herunter. Unter Linux geht das auf der Kommandozeile wie folgt:
wget LINK
das heruntergeladene Archiv wird mit dem tar Befehl noch entpackt. Das hat auf meiner zuvor erstellten Azure Ubuntu VM wie folgt funktioniert:
In den entpackten Daten finden sich auch zwei Shell Skripte. Damit der Agent seine Arbeit aufnehmen kann, muss er konfiguriert werden. Zu diesem zweck führt man mit ./config.sh das Skript auf der virtuellen Maschine aus und bekommt folgenden Output präsentiert:
Es werden nun alle nötigen Eingabeparameter abgefragt. Nach der Bestätigung der License Agreement muss die URL zum DevOps angegeben werden. Das ist normalerweise die URL https://dev.azure.com/ORGANISATION wobei ORGANISATION mit dem Namen deiner Organisation auszutauschen ist. Die Rechte werden dem Agenten über ein PAT (personal access token) gewährt, welches man nun eintragen muss:
Rechts oben im Azure DevOps findet man neben dem Benutzerkonto ein Menü, über dieses können mit „Personal access tokens“ solche Tokens erstellt beziehungsweise verwaltet werden. Ich habe mir für meine VM ein neues Token mit folgenden Einstellungen erstellt:
Im nächsten Schritt bekommt man das Token als Zeichenkette präsentiert, welches man mit Copy & Paste der Konfiguration des Agents übergibt. Nachdem die Verbindung hergestellt wurde ist die Konfiguration abgeschlossen. Der Agent erscheint im DevOps, ist jedoch noch offline. Damit er online geht muss nur noch das ./run.sh Skript auf der VM ausgeführt werden:
Fazit
Ich habe gezeigt wie man einen neuen Linux Build Agent hinzufügen kann. Der Agent führt die in Azure DevOps definierten Pipelines aus, baut die Software und führt eventuell verfügbare Tests aus.