Cet article décrit comment créer un environnement d'agent auto-hébergé qui s'appuie sur votre propre machine virtuelle avec Azure DevOps.
Que sont Azure DevOps? Ou que pouvez-vous faire? Puisque d'autres personnes ont écrit en détail sur, je vais l'omettre ici et ne toucher que le sujet principal.
Dans Azure DevOps, le service de création est Azure Pipelines. Par défaut, les versions sont effectuées dans un environnement hébergé par Microsoft. De plus, ils sont fournis gratuitement.
Alors pourquoi prendre la peine de payer pour la machine virtuelle et de préparer votre propre environnement auto-hébergé? En effet, les environnements hébergés par Microsoft présentent les restrictions suivantes: (Au 20/02/2020)
Les limites des agents hébergés par Microsoft sont les suivantes:
Cependant, si vous l'utilisez dans un projet open source, vous devriez pouvoir le construire avec un agent hébergé par Microsoft, à moins qu'il ne s'agisse d'un très gros projet.
Cependant, dans les systèmes d'entreprise, le développement du système est souvent effectué à partir de sources fermées, et la contrainte d'une heure à chaque fois n'a souvent pas assez de temps pour construire et tester. Dans de tels cas, l'auto-hébergement est une option viable.
De plus, ** Self-Host vous permet de définir librement la taille de la machine virtuelle **, vous pouvez donc utiliser une grande machine virtuelle comme machine de construction et réduire le temps global de construction et de test.
Cette fois, ce que nous voulons réaliser est simple. Permet à Azure Pipelines d'appeler des agents pour qu'ils s'exécutent sur des machines virtuelles que vous avez vous-même configurées. La vue d'ensemble ressemble à la figure suivante.
La séquence des flux est exécutée dans l'ordre numérique sur la figure.
Maintenant, configurons l'environnement d'auto-hébergement à partir d'ici, mais par souci de simplicité, nous allons faire quelques prérequis.
Tout d'abord, les autorisations de l'utilisateur qui travaille doivent remplir les conditions suivantes.
Ensuite, nous supposons que vous avez également une certaine préparation pour les ressources Azure.
Ce qui suit n'est pas obligatoire, mais vous trouverez peut-être plus facile pour plus tard.
--Créez un Key Vault dans un groupe de ressources et l'utilisateur actif a l'autorisation de créer un secret
Il est important pour l'automatisation future de comprendre le flux de travail avant de se lancer dans le travail individuel. De plus, si vous comprenez ce qu'il faut définir ou ne pas définir lorsque vous travaillez, vous comprendrez mieux la signification du travail et vous pourrez sélectionner ce qui doit être automatisé et diviser le travail.
Le travail à effectuer ici peut être grossièrement divisé en trois types.
Quant à ʻazure-pipelines.yml`, qui est requis pour le dernier nouveau pipeline, Ops peut ne pas être en mesure de saisir les détails en fonction de la cible à construire, il est donc possible que Dev le décrive.
Ici, nous allons principalement créer ce dont nous avons besoin dans Azure DevOps. Voici ce qu'il faut créer:
Ensuite, je vous expliquerai étape par étape.
La tâche la plus importante cette fois est d'associer Azure Pipelines à des agents dans un environnement auto-hébergé. Sinon, Azure Pipelines ne pourra pas déterminer quel agent appeler et l'agent ne pourra pas déterminer la tâche à effectuer.
Cette fois, créez un nouvel utilisateur et inscrivez-vous en tant qu'administrateur d'agent pour Azure Pipelines. Notez que vous pouvez ignorer cette étape si vous souhaitez associer un administrateur d'agent à un utilisateur existant.
Cependant, en raison de la commodité d'utiliser le jeton d'accès personnel de l'administrateur d'agent, il peut être plus facile (peut-être) de préparer un utilisateur dédié à gérer le jeton.
C'est dommage, mais ne vous inquiétez pas des différents thèmes des captures d'écran ...
Tout d'abord, nous avons besoin d'un utilisateur pour gérer la file d'attente de l'agent, créez donc un utilisateur Azure AD avec les informations suivantes:
Éléments de réglage | Définir la valeur |
---|---|
Nom d'utilisateur | Azure-Pipelines-Agent-Queue-Admin-001 |
Nom | Azure Pipelines Queue Admin 001 |
Nom | Admin - 001 |
sexe | Azure Pipelines Agent Queue |
mot de passe | Tout mot de passe |
Lieu d'utilisation | Japon |
En outre, modifiez les informations de contact d'authentification et entrez l'adresse e-mail de votre administrateur Azure AD ou de votre liste de diffusion d'administrateur.
Ajoutez l'utilisateur créé dans Azure Active Directory à Azure DevOps. Un utilisateur avec des privilèges administratifs Azure DevOps se connecte à Azure DevOps et clique sur «Paramètres d'organisation» dans la figure suivante pour ouvrir l'écran des paramètres de l'organisation.
Ensuite, sélectionnez «Utilisateurs» dans le volet gauche.
Enfin, entrez vos informations et cliquez sur «Ajouter».
Éléments de réglage | Définir la valeur |
---|---|
Users | L'utilisateur Azure AD que vous venez de créer |
Access level | Basic |
Add to projects | Nom du projet à ajouter |
Azure DevOps Groups | Project Contributors |
Connectez-vous à Azure DevOps avec l'utilisateur que vous venez de créer. Une fois connecté, modifiez votre profil pour conserver votre adresse e-mail valide.
Une fois connecté, sélectionnez votre projet et cliquez sur «Jetons d'accès personnels» dans le profil en haut à droite de l'écran.
Ensuite, comme aucun jeton d'accès n'aurait dû être émis à ce stade, cliquez sur «Nouveau jeton» dans le volet droit.
Une boîte de dialogue de saisie s'ouvre sur le côté droit de l'écran, saisissez donc les informations requises.
Définissez les autorisations pour les étendues suivantes.
portée | Définir la valeur |
---|---|
Agent Pools | Read & manage |
Build | Read & execute |
Packaging | Read, write, & manage |
Release | Read, write, execute, & manage |
Test Management | Read & write |
Lorsque vous cliquez sur «Créer», le jeton d'accès personnel s'affiche comme indiqué ci-dessous. Cliquez sur l'icône de copie et enregistrez-le quelque part.
Veuillez noter que ** Azure DevOps ne stocke pas ce jeton d'accès personnel **. Assurez-vous de le sauvegarder quelque part pour pouvoir l'oublier.
Voici une astuce, mais c'est une bonne idée de gérer à la fois votre mot de passe et votre jeton d'accès personnel en tant que secret Key Vault. En l'associant à une stratégie personnalisée qui vérifie la date d'expiration de Key Vault et l'audit, vous pouvez émettre un nouveau jeton d'accès personnel et toujours utiliser un jeton valide avant l'expiration du jeton d'accès personnel. Je vais.
En fait, le jeton d'accès personnel n'est nécessaire qu'au moment de la création ...?
Maintenant, voici la création du pool d'agents, qui est le point de cette fois.
Sélectionnez un projet et cliquez sur «Paramètres du projet».
Cliquez sur «Pools d'agents» dans le volet gauche.
Cliquez sur «Ajouter un pool» dans le coin supérieur droit du volet droit.
Entrez les informations requises et cliquez sur «Créer». Cette fois, nous l'appellerons «Pool d'agents hébergés».
Le pool d'agents a été créé, cliquez dessus.
Cliquez sur «Nouvel agent» dans le volet droit.
Une boîte de dialogue pour l'agent apparaîtra. Cliquez sur l'onglet Linux
, assurez-vous que la plate-forme est x64
, cliquez sur l'icône de copie et enregistrez le lien de téléchargement.
Pour télécharger l'agent plus tôt, procédez comme suit:
La commande est:
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
Ensuite, configurez l'agent.
./config.sh
Vous verrez une invite semblable à la suivante:
___ ______ _ _ _
/ _ \ | ___ (_) | (_)
/ /_\ \_____ _ _ __ ___ | |_/ /_ _ __ ___| |_ _ __ ___ ___
| _ |_ / | | | '__/ _ \ | __/| | '_ \ / _ \ | | '_ \ / _ \/ __|
| | | |/ /| |_| | | | __/ | | | | |_) | __/ | | | | | __/\__ \
\_| |_/___|\__,_|_| \___| \_| |_| .__/ \___|_|_|_| |_|\___||___/
| |
agent v2.164.8 |_| (commit 99c93e1)
>>Accord de licence:
Pour créer la source à partir du référentiel TFVC, vous devez accepter le contrat de licence Team Explorer Everywhere. Cette étape n'est pas nécessaire si vous construisez la source à partir du référentiel Git.
Vous pouvez trouver une copie du contrat de licence Team Explorer Everywhere ici:
/home/hayashi_toshiki/myagent/externals/tee/license.html
(Y/N)Acceptez-vous maintenant le contrat de licence Team Explorer Everywhere??Entrer(Si N, appuyez sur Entrée) >
La procédure d'entrée est la suivante.
Hosted Agent Pool
et appuyez sur ʻEnter`.Enregistrez-vous en tant que service (Daemon) pour que l'agent de la machine virtuelle puisse s'exécuter automatiquement.
La commande pour enregistrer le service est:
cd ~/myagent
sudo ./svc.sh install
Entrez ensuite la commande pour démarrer le service.
sudo ./svc.sh start
Ceci termine la configuration de l'agent sur la machine virtuelle.
La commande pour obtenir l'état du service est la suivante.
sudo ./svc.sh status
Créez un nouveau pipeline pour vérifier qu'Azure Pipelines et l'agent auto-hébergé sont correctement associés.
Dans Azure DevOps, cliquez sur "Builds" à partir de "Pipelines" dans le volet gauche.
Cliquez sur «Nouveau pipeline» dans le volet droit.
Cette fois, nous allons parcourir le référentiel Azure Repos, donc cliquez sur ʻAzure Repos Git`.
Ensuite, vous serez invité à sélectionner un référentiel. Veuillez sélectionner n'importe quel référentiel.
Ensuite, créez un nouveau ʻazure-pipelines.yml? Ou utilisez-vous un existant? Sélectionnez environ. Cette fois, nous allons créer un simple fichier YAML, donc sélectionnez
Starter pipeline`.
Enfin, la page d'édition du fichier YAML apparaîtra. Modifiez-la comme suit.
# 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
# ----------------------------------------------------
#Il est important de spécifier ici le nom du pool d'agents.
# ----------------------------------------------------
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'
Cliquez sur «Enregistrer et exécuter» pour enregistrer le YAML et exécuter le pipeline.
Une boîte de dialogue apparaît dans laquelle vous pouvez saisir le message de validation pour le fichier YAML modifié. Cliquez simplement sur "Enregistrer et exécuter".
Après un certain temps, le Job s'exécutera et vous verrez une page similaire à la suivante, indiquant que le pool d'agents hébergés a été créé avec succès.
Vous avez maintenant vérifié que l'agent de votre environnement auto-hébergé et Azure Pipelines fonctionnent ensemble.
Cette fois, j'ai expliqué comment configurer un agent dans un environnement auto-hébergé et utiliser votre propre environnement de construction.
Les rubriques suivantes ne sont pas mentionnées par souci de concision dans cet article.
J'aimerais écrire à leur sujet si j'ai une autre chance.
Nous espérons que vous trouverez cela utile pour tous ceux qui souhaitent essayer Azure DevOps.
Recommended Posts