Server einer Azure DevOps Deployment Group hinzufügen
In diesem Tutorial zeige ich wie man einen On-Premise Server einer Azure DevOps Deployment Group hinzufügt. Sobald man das erledigt hat kann Software aus DevOps über Release Pipelines automatisiert auf diesen Server deployed werden.
Server einer Azure DevOps Deployment Group hinzufügen
Die Entwicklung hin zu Cloud Tools ist für kaum ein Unternehmen mehr zu ignorieren. Das Cloud Software Azure DevOps wird zunehmend ein zentrales Tool in jeder Software Entwicklung. Mit ihm lässt sich der komplette Lifecycle der Software abbilden. Ein zentraler Punkt ist die automatisierte Bereitstellung der aktuelle Version der Software. Das Deployment kann mit DevOps vollständig automatisiert werden, auch für eine hybride Architektur, in der die Software noch auf einem On-Premise Server ausgeführt wird. In den folgenden Absätzen beschreibe ich wie man diesen Prozess in DevOps konfiguriert.
Deployment Group
In einer Deployment Group können beliebig viele Rechner registriert werden. Unter Pipelines -> Deployment groups findet sich die Funktion „New“ über die man eine neue Gruppe anlegen kann. Relevanter Parameter ist der Name dieser Gruppe. In dieser neuen Gruppe wird ein Server über die Funktion „Register“ hinzugefügt, es erscheint folgender Dialog:
Alternativ zu einem Ziel mit einem Windows System lässt sich auch Linux auswählen. Wie man sieht ändert sich das Registration script. Was hat es damit auf sich?
Für die Registrierung eines Servers sind 3 Dinge erforderlich:
- Deployment Gruppe
Diese haben wir soeben erstellt. - Rechner auf dem der Azure VSTSAgent läuft
Die Installation und Konfiguration der Software wird auf dem Zielsystem (in unserem Fall der On-Premise Server) über das im Dialog abgebildete SKript vollständig automatisch durchgeführt. Das abgebildete Skript muss für Windows in einer PowerShell Umgebung ausgeführt werden beziehungsweise bei einem Linux System im Terminal. Der Agent wird automatisch installiert und mit den nötigen Parametern für die eigene DevOps Umgebung konfiguriert. Einzige Voraussetzung ist Internetzugriff am Server (für den Download vom Agent und zur Kommunikation mit DevOps). - Berechtigungen
Über die Checkbox „Use a personal access token in the script for authentication“ wird auch gleich ein Token in DevOps erstellt und über das Skript die nötigen Rechte vergeben, passiert also auf Wunsch auch vollständig automatisiert.
Die Ausführung des Skipts auf einem Windows Server erzeugt folgende Ausgabe:
Hat alles geklappt, dann ändert sich der Status in DevOps umgehend auf „Online“. Der Server ist nun bereit Ziel einer Release Pipeline zu werden. Wir können nun automatisch über Azure DevOps Software aus dem Repository heraus bauen und direkt auf das Zielsystem kopieren. Je nach Konfiguration kann beispielsweise ein erfolgreicher Pull Request zur Aktualisierung der Software auf dem Server führen. Alles automatisch und es ist kein manueller Eingriff mehr nötig.
Fazit
Ich habe gezeigt wie man einen On-Premise Server in Azure DevOps als Deployment Ziel hinzufügt. Diese Konfiguration ist sehr einfach und schnell durchzuführen. Mittels Tags lassen sich eine ganze Reihe von Servern für die unterschiedlichsten Deployment Ziele definieren, aber dazu ein anderes Mal mehr. Im nächsten Artikel zeige ich wie man eine Release Pipeline erstellt und den aktuellen Stand eines Git Repositories automatisch baut und auf den Server kopiert.