In diesem Artikel wird beschrieben, wie Sie mit Azure DevOps eine selbst gehostete Agentenumgebung erstellen, die auf Ihrer eigenen virtuellen Maschine aufbaut.
Was sind Azure DevOps? Oder was kannst du tun? Da andere Leute ausführlich darüber geschrieben haben, werde ich es hier weglassen und nur das Hauptthema ansprechen.
In Azure DevOps ist der Gebäudedienst Azure Pipelines. Standardmäßig werden Builds in einer von Microsoft gehosteten Umgebung ausgeführt. Darüber hinaus werden sie kostenlos zur Verfügung gestellt.
Warum also für die virtuelle Maschine bezahlen und Ihre eigene selbst gehostete Umgebung vorbereiten? Dies liegt daran, dass von Microsoft gehostete Umgebungen die folgenden Einschränkungen aufweisen: (Stand 20.02.2020)
Die Grenzwerte für von Microsoft gehostete Agenten sind wie folgt:
Wenn Sie es jedoch in einem Open Source-Projekt verwenden, sollten Sie es mit einem von Microsoft gehosteten Agenten erstellen können, es sei denn, es handelt sich um ein sehr großes Projekt.
In Unternehmenssystemen erfolgt die Systementwicklung jedoch häufig aus geschlossenen Quellen, und der einstündigen Einschränkung fehlt häufig die Zeit zum Erstellen und Testen. In solchen Fällen ist Self-Hosting eine praktikable Option.
Darüber hinaus können Sie mit ** Self-Hosting die Größe der virtuellen Maschine frei festlegen **, sodass Sie eine große virtuelle Maschine als Build-Maschine verwenden und die Gesamt-Build- und Testzeit verkürzen können.
Dieses Mal ist das, was wir erreichen wollen, einfach. Ermöglicht Azure Pipelines, Agenten aufzurufen, die auf von Ihnen selbst eingerichteten virtuellen Maschinen ausgeführt werden sollen. Das Gesamtbild sieht wie in der folgenden Abbildung aus.
Die Abfolge der Flüsse wird in der Abbildung in numerischer Reihenfolge ausgeführt.
Lassen Sie uns nun die Self-Hosting-Umgebung von hier aus einrichten, aber der Einfachheit halber werden wir einige Voraussetzungen schaffen.
Erstens müssen die Berechtigungen des Benutzers, der arbeitet, die folgenden Bedingungen erfüllen.
Als Nächstes gehen wir davon aus, dass Sie auch einige Vorbereitungen für Azure-Ressourcen getroffen haben.
Das Folgende ist nicht erforderlich, aber Sie können es für später einfacher finden.
--Erstellen Sie einen Schlüsseldepot in einer Ressourcengruppe, und der arbeitende Benutzer hat die Berechtigung, ein Geheimnis zu erstellen
Für die zukünftige Automatisierung ist es wichtig, den Arbeitsfluss zu verstehen, bevor Sie mit der Einzelarbeit beginnen. Wenn Sie verstehen, was während der Arbeit festgelegt werden soll oder nicht, verstehen Sie die Bedeutung der Arbeit besser und können auswählen, was automatisiert werden soll, und die Arbeit aufteilen.
Die hier zu erledigende Arbeit kann grob in die folgenden drei Typen unterteilt werden.
Was die für die letzte neue Pipeline erforderliche "azure-pipelines.yml" betrifft, kann Ops die Details je nach zu erstellendem Ziel möglicherweise nicht kennen, sodass Dev sie möglicherweise beschreiben kann.
Hier erstellen wir hauptsächlich das, was wir in Azure DevOps benötigen. Folgendes muss erstellt werden:
Dann werde ich Schritt für Schritt erklären.
Die wichtigste Aufgabe besteht diesmal darin, Azure-Pipelines mit Agenten in einer selbst gehosteten Umgebung zu verknüpfen. Andernfalls kann Azure Pipelines nicht bestimmen, welcher Agent aufgerufen werden soll, und der Agent kann nicht bestimmen, welche Aufgabe ausgeführt werden soll.
Erstellen Sie dieses Mal einen neuen Benutzer und registrieren Sie sich als Agentenadministrator für Azure Pipelines. Beachten Sie, dass Sie diesen Schritt überspringen können, wenn Sie einem vorhandenen Benutzer einen Agentenadministrator zuordnen möchten.
Aufgrund der bequemen Verwendung des persönlichen Zugriffstokens des Agentenadministrators ist es jedoch (möglicherweise) einfacher, einen dedizierten Benutzer auf die Verwaltung des Tokens vorzubereiten.
Es ist eine Schande, aber mach dir keine Sorgen über die verschiedenen Themen in den Screenshots ...
Zunächst benötigen wir einen Benutzer zum Verwalten der Agentenwarteschlange. Erstellen Sie daher einen Azure AD-Benutzer mit den folgenden Informationen:
Elemente einstellen | Wert einstellen |
---|---|
Nutzername | Azure-Pipelines-Agent-Queue-Admin-001 |
Name | Azure Pipelines Queue Admin 001 |
Name | Admin - 001 |
Sex | Azure Pipelines Agent Queue |
Passwort | Beliebiges Passwort |
Verwendungsort | Japan |
Bearbeiten Sie außerdem die Authentifizierungskontaktinformationen und geben Sie die E-Mail-Adresse Ihres Azure AD-Administrators oder Ihrer Administrator-Mailingliste ein.
Fügen Sie den in Azure Active Directory erstellten Benutzer zu Azure DevOps hinzu. Ein Benutzer mit Azure DevOps-Administratorrechten meldet sich bei Azure DevOps an und klickt in der folgenden Abbildung auf "Organisationseinstellungen", um den Bildschirm "Organisationseinstellungen" zu öffnen.
Wählen Sie dann im linken Bereich "Benutzer" aus.
Geben Sie abschließend die Benutzerinformationen ein und klicken Sie auf "Hinzufügen".
Elemente einstellen | Wert einstellen |
---|---|
Users | Der gerade erstellte Azure AD-Benutzer |
Access level | Basic |
Add to projects | Projektname zum Hinzufügen |
Azure DevOps Groups | Project Contributors |
Melden Sie sich mit dem gerade erstellten Benutzer bei Azure DevOps an. Bearbeiten Sie nach der Anmeldung Ihr Profil, damit Ihre E-Mail-Adresse gültig bleibt.
Wählen Sie nach der Anmeldung Ihr Projekt aus und klicken Sie im Profil oben rechts auf dem Bildschirm auf "Persönliche Zugriffstoken".
Da zu diesem Zeitpunkt keine Zugriffstoken ausgegeben werden sollten, klicken Sie im rechten Bereich auf "Neues Token".
Auf der rechten Seite des Bildschirms wird ein Eingabedialog geöffnet. Geben Sie daher die erforderlichen Informationen ein.
Legen Sie Berechtigungen für die folgenden Bereiche fest.
Umfang | Wert einstellen |
---|---|
Agent Pools | Read & manage |
Build | Read & execute |
Packaging | Read, write, & manage |
Release | Read, write, execute, & manage |
Test Management | Read & write |
Wenn Sie auf "Erstellen" klicken, wird das persönliche Zugriffstoken wie unten gezeigt angezeigt. Klicken Sie auf das Kopiersymbol und speichern Sie es irgendwo.
Bitte beachten Sie, dass ** Azure DevOps dieses persönliche Zugriffstoken nicht speichert **. Stellen Sie sicher, dass Sie es irgendwo speichern, damit Sie es vergessen können.
Hier ist ein Tipp, aber es ist eine gute Idee, sowohl Ihr Passwort als auch Ihr persönliches Zugriffstoken als Key Vault-Geheimnis zu verwalten. Wenn Sie dies einer benutzerdefinierten Richtlinie zuordnen, die das Ablaufdatum von Key Vault überprüft und überwacht, können Sie ein neues persönliches Zugriffstoken ausstellen und immer ein gültiges Token verwenden, bevor das persönliche Zugriffstoken abläuft. Ich werde.
Tatsächlich wird das persönliche Zugriffstoken nur zum Zeitpunkt der Erstellung benötigt ...?
Hier ist die Erstellung des Agentenpools, der Punkt dieser Zeit.
Wählen Sie ein Projekt aus und klicken Sie auf "Projekteinstellungen".
Klicken Sie im linken Bereich auf "Agentenpools".
Klicken Sie oben rechts im rechten Bereich auf "Pool hinzufügen".
Geben Sie die erforderlichen Informationen ein und klicken Sie auf "Erstellen". Dieses Mal werden wir es "Hosted Agent Pool" nennen.
Der Agentenpool wurde erstellt. Klicken Sie darauf.
Klicken Sie im rechten Bereich auf "Neuer Agent".
Ein Dialogfeld für den Agenten wird angezeigt. Klicken Sie auf die Registerkarte "Linux", stellen Sie sicher, dass die Plattform "x64" ist, klicken Sie auf das Kopiersymbol und speichern Sie den Download-Link.
Gehen Sie folgendermaßen vor, um den Agenten früher herunterzuladen:
Der Befehl lautet:
mkdir myagent && cd myagent
wget https://vstsagentpackage.azureedge.net/agent/2.164.8/vsts-agent-linux-x64-2.164.8.tar.gz
tar zxvf vsts-agent-linux-x64-2.164.8.tar.gz
Konfigurieren Sie als Nächstes den Agenten.
./config.sh
Sie sehen eine Eingabeaufforderung ähnlich der folgenden:
___ ______ _ _ _
/ _ \ | ___ (_) | (_)
/ /_\ \_____ _ _ __ ___ | |_/ /_ _ __ ___| |_ _ __ ___ ___
| _ |_ / | | | '__/ _ \ | __/| | '_ \ / _ \ | | '_ \ / _ \/ __|
| | | |/ /| |_| | | | __/ | | | | |_) | __/ | | | | | __/\__ \
\_| |_/___|\__,_|_| \___| \_| |_| .__/ \___|_|_|_| |_|\___||___/
| |
agent v2.164.8 |_| (commit 99c93e1)
>>Lizenzvereinbarung:
Um die Quelle aus dem TFVC-Repository zu erstellen, müssen Sie die Lizenzvereinbarung für Team Explorer Everywhere akzeptieren. Dieser Schritt ist nicht erforderlich, wenn Sie die Quelle aus dem Git-Repository erstellen.
Eine Kopie der Team Explorer Everywhere-Lizenzvereinbarung finden Sie hier:
/home/hayashi_toshiki/myagent/externals/tee/license.html
(Y/N)Akzeptieren Sie jetzt die Lizenzvereinbarung für Team Explorer Everywhere??Eingeben(Wenn N, drücken Sie die Eingabetaste) >
Das Eingabeverfahren ist wie folgt.
Registrieren Sie sich als Dienst (Daemon), damit der Agent der virtuellen Maschine automatisch ausgeführt werden kann.
Der Befehl zum Registrieren des Dienstes lautet:
cd ~/myagent
sudo ./svc.sh install
Geben Sie dann den Befehl ein, um den Dienst zu starten.
sudo ./svc.sh start
Damit ist die Agenteneinrichtung auf der virtuellen Maschine abgeschlossen.
Der Befehl zum Abrufen des Servicestatus lautet wie folgt.
sudo ./svc.sh status
Erstellen Sie eine neue Pipeline, um zu überprüfen, ob Azure-Pipelines und der selbst gehostete Agent ordnungsgemäß zugeordnet sind.
Klicken Sie in Azure DevOps im linken Bereich auf "Builds" aus "Pipelines".
Klicken Sie im rechten Bereich auf "Neue Pipeline".
Dieses Mal durchsuchen wir das Azure Repos-Repository. Klicken Sie also auf "Azure Repos Git".
Anschließend werden Sie aufgefordert, ein Repository auszuwählen. Bitte wählen Sie ein Repository aus.
Als nächstes erstellen Sie eine neue azure-pipelines.yml
? Oder verwenden Sie eine vorhandene? Wählen Sie ungefähr. Dieses Mal erstellen wir eine einfache YAML-Datei. Wählen Sie also "Starter-Pipeline".
Schließlich wird die Bearbeitungsseite für die YAML-Datei angezeigt. Bearbeiten Sie sie wie folgt.
# Starter pipeline
# Start with a minimal pipeline that you can customize to build and deploy your code.
# Add steps that build, run tests, deploy, and more:
# https://aka.ms/yaml
trigger:
- master
# ----------------------------------------------------
#Es ist wichtig, hier den Namen des Agentenpools anzugeben.
# ----------------------------------------------------
pool: Hosted Agent Pool
steps:
- script: echo Hello, world!
displayName: 'Run a one-line script'
- script: |
echo Add other tasks to build, test, and deploy your project.
echo See https://aka.ms/yaml
displayName: 'Run a multi-line script'
Klicken Sie auf "Speichern und ausführen", um die YAML zu speichern und die Pipeline auszuführen.
Ein Dialogfeld wird angezeigt, in dem Sie die Festschreibungsnachricht für die bearbeitete YAML-Datei eingeben können. Klicken Sie einfach auf "Speichern und ausführen".
Nach einer Weile wird der Job ausgeführt und es wird eine Seite ähnlich der folgenden angezeigt, die angibt, dass der Hosted Agent Pool erfolgreich erstellt wurde.
Sie haben jetzt überprüft, ob der Agent in Ihrer selbst gehosteten Umgebung und Azure Pipelines zusammenarbeiten.
Dieses Mal habe ich erklärt, wie Sie einen Agenten in einer selbst gehosteten Umgebung einrichten und Ihre eigene Build-Umgebung verwenden.
Die folgenden Themen werden der Kürze halber in diesem Artikel nicht erwähnt.
Ich würde gerne darüber schreiben, wenn ich noch eine Chance habe.
Wir hoffen, dass Sie dies für alle hilfreich finden, die Azure DevOps ausprobieren möchten.
Recommended Posts