API для удаления нескольких автономных агентов из DevOps Azure
Наши агенты сборки Azure DevOps настраиваются в Kubernetes. Сбойные модули можно легко удалить из куба, но они отображаются как "автономные" агенты из веб-интерфейса Azure DevOps.
С течением времени список оффлайн-агентов вырос очень долго. Есть ли способ их программно удалить?
2 ответа
$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
}
Некоторые предположения для этого решения:
- Вы ищете агентов по сборке
- Вы знаете идентификатор пула, который вы ищете уже. Вы можете получить это также программно, или просто перебрать все пулы, если хотите
- У вас нет проблем с удалением каких-либо автономных агентов
Примечание. Я использую Azure DevOps Server, поэтому замените -UseDefaultCredentials
с вашего разрешения.
Я думаю, вам нужно будет использовать комбинацию из этих двух вызовов API:
Или вы можете использовать некоторую матрицу имен для агентов, чтобы они использовали одно и то же "имя", даже если это не один и тот же контейнер.
https://github.com/julioct/azure-pipelines-kubernetes-agents