1
votes

API pour supprimer plusieurs agents hors ligne d'Azure DevOps

Nos agents de build Azure DevOps sont configurés sur Kubernetes. Les pods ayant échoué peuvent facilement être supprimés de kube, mais ils apparaissent comme des agents «hors ligne» de l'interface utilisateur Web Azure DevOps.

Avec le temps, la liste des agents hors ligne est devenue très longue. Existe-t-il un moyen de les supprimer par programmation?


1 commentaires

3 Réponses :


0
votes

Je pense que vous auriez besoin d'utiliser une combinaison de ces 2 appels API:

  1. Obtenir des groupes de déploiement
  2. Supprimer l'agent

3 commentaires

Je ne sais pas comment obtenir un identifiant de groupe de déploiement, alors j'ai essayé de les lister, cela est revenu avec 0 résultats: \


hm, essayez agentclouds obtenir ou lister


ça renvoie un 404



1
votes
$agents = Invoke-RestMethod -uri 'http://dev.azure.com/{organization}/_apis/distributedtask/pools/29/agents' -Method Get -UseDefaultCredentials
$agents.value |
    Where-Object { $_.status -eq 'offline' } |
    ForEach-Object {
        Invoke-RestMethod -uri "http://dev.azure.com/{organization}/_apis/distributedtask/pools/29/agents/$($_.id)?api-version=4.1" -Method Delete -UseDefaultCredentials
    }
Some assumptions for this solution:
You are looking for build agents
You know the id of the pool you are looking for already.  You can get to this programatically also, or just loop through all pools if you want
You don't have any issues deleting any offline agents
Note:  I'm using Azure DevOps Server, so replace the -UseDefaultCredentials with your authorization.

0 commentaires

0
votes

Ou vous pouvez utiliser une matrice de dénomination pour les agents, afin qu'ils utilisent le même "nom" même s'il ne s'agit pas du même conteneur.

https://github.com/julioct/azure-pipelines-kubernetes-agents


0 commentaires