Кажется, вы уже знаете, что хотите сделать, и проблема заключается в большом количестве агентов и конфигураций, с которыми вам нужно иметь дело.
Почему бы не автоматизировать это с помощью TeamCity REST API? Сервер TeamCity имеет встроенный HTTP API, который вы можете использовать для редактирования / обновления (почти) любых полей, которые вы можете использовать с помощью веб-интерфейса.
Вы можете взаимодействовать с API, используя предпочитаемый язык сценариев, используя вызовы HTTP GET / PUT для получения и обновления значений. В этом случае, я думаю, что стоит потратить время на написание сценария, чтобы избежать необходимости проходить через пользовательский интерфейс для обновления всех конфигураций сборки, которые вы упомянули.
Вы напишите один сценарий (на любом языке сценариев, который вам удобно использовать), который вы можете запустить один раз, чтобы установить все требования агента. Псевдокод следующий
- Перебирайте проекты в TeamCity
Получить список проектов
curl -i -H "Accept: application/json" http://teamcity/httpAuth/app/rest/projects --user username:password
- Получить
XXX_VERSION
параметр из проектов.
Переберите все проекты, получите все параметры и проанализируйте наш XXX_VERSION
curl http://teamcity/app/rest/projects/id:PROJECT_NAME/parameters
- Задайте требование агента в конфигурациях сборки.
Для каждой конфигурации сборки в каждом проекте задайте требования агента к конфигурации сборки, используя проанализированное значение XX_VERSION
curl -X PUT http://teamcity/httpAuth/app/rest/buildTypes/<buildTypeLocator>/agent-requirements/<id> --user username:password
Это общая идея, но не полная, потратив время на то, чтобы избавиться от этого сценария, вы сэкономите много времени на управлении им с помощью TeamCity UI.