Могу ли я перечислить переменную группу в VSTS? - PullRequest
0 голосов
/ 30 мая 2019

TL; DR: Поиск и замена заполнителей в текстовом файле на расшифрованные значения секретов в группе переменных.

Я хотел бы использовать сценарий PowerShell для получения переменнойгруппа в конвейере выпуска и затем итерация по списку, выполняя поиск и замену для выпускаемого файла.

Переменные в списке переменных являются секретами , поэтому я хочу перезаписатьзаполнители в файле с расшифрованным значением переменных.

Значения переменных зависят от среды, поэтому я не хочу предоставлять значения во время сборки и не хочу включать дешифрованные значения всохраненный артефакт.

Файл с заменой при поиске будет использоваться при выполнении во время выпуска, но не будет развернут на хосте, поэтому будет уничтожен после завершения конвейерного выполнения.

Ответы [ 2 ]

1 голос
/ 05 июня 2019

Итак, я обнаружил, что, пока у меня есть Base64 , настроенный для групп переменных (нажмите «Показать все области» при создании нового PAT), тогда я могу вызвать GET https://dev.azure.com/{organization}/{project}/_apis/distributedtask/variablegroups/{groupId}?api-version=5.1-preview.1 для получить группу переменных , в которой я нуждаюсь.

Однако приведенное выше не вернет значение для секретов, хотя для этого существует хак / обходной путь (включающий несколько шагов конвейера).

Рекомендуется создать хранилище ключей в Azure и выполнить обработку либо в Powershell, либо в коде.

Поскольку мне нужны расшифрованные значения ключейпереданный в мое приложение с помощью повторного поиска-замены, я реализовал скрипт Powershell в одном шаге конвейера Release и получаю вывод на следующем шаге.

1 голос
/ 31 мая 2019

Задача Tokenization из Visual Studio Marketplace хорошо справляется с этой задачей.Вам нужно будет установить его в своей организации DevOps Azure, он доступен по номеру https://marketplace.visualstudio.com/items?itemName=TotalALM.totalalm-tokenization

. По умолчанию задача Tokenization использует двойные подчеркивания для идентификации заполнителей.Он заменит любой текст, который соответствует имени переменной в определении выпуска, если он окружен двойным подчеркиванием.

Так что если вы хотите записать значение переменной с именем MySecretVariable в ваш файл, вы 'Вам нужно будет добавить заполнитель типа __MySecretVariable__ в файл, куда бы вы ни захотели записать это значение.

Задача Tokenization запишет все зашифрованные значения в файл в виде простого текста, но в журналах выпуска онибудет запутан.

Если вы храните свои переменные в группе переменных, просто свяжите это с определением релиза и установите область в соответствующей среде.

...