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
    }

Некоторые предположения для этого решения:

  1. Вы ищете агентов по сборке
  2. Вы знаете идентификатор пула, который вы ищете уже. Вы можете получить это также программно, или просто перебрать все пулы, если хотите
  3. У вас нет проблем с удалением каких-либо автономных агентов

Примечание. Я использую Azure DevOps Server, поэтому замените -UseDefaultCredentials с вашего разрешения.

Я думаю, вам нужно будет использовать комбинацию из этих двух вызовов API:

  1. Получить группы развертывания
  2. Удалить агент

Или вы можете использовать некоторую матрицу имен для агентов, чтобы они использовали одно и то же "имя", даже если это не один и тот же контейнер.

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

Другие вопросы по тегам