Добавление и использование групп переменных
Azure DevOps Services | Azure DevOps Server 2022 — Azure DevOps Server 2019
Группы переменных хранят значения и секреты, которые может потребоваться передать в конвейер YAML или сделать доступными для нескольких конвейеров. В одном проекте можно совместно использовать группы переменных и использовать их в нескольких конвейерах.
Секретные переменные в группах переменных защищены ресурсами. Можно добавить сочетания утверждений, проверок и разрешений конвейера, чтобы ограничить доступ к секретным переменным в группе переменных. Доступ к несекретным переменным не ограничивается утверждениями, проверками и разрешениями конвейера.
Создание группы переменных
Нельзя создавать группы переменных в YAML, но их можно использовать, как описано в разделе "Использование группы переменных".
Использование группы переменных
Чтобы использовать переменную из группы переменных, добавьте ссылку на группу в файле YAML:
variables:
- group: my-variable-group
Затем переменные из группы переменных можно использовать в файле YAML.
Если вы используете как переменные, так и группы переменных, используйте name
/value
синтаксис для отдельных негруппированных переменных:
variables:
- group: my-variable-group
- name: my-bare-variable
value: 'value of my-bare-variable'
Чтобы ссылаться на группу переменных, используйте синтаксис макроса или выражение среды выполнения. В следующем примере группа my-variable-group
имеет переменную с именем myhello
.
variables:
- group: my-variable-group
- name: my-passed-variable
value: $[variables.myhello] # uses runtime expression
steps:
- script: echo $(myhello) # uses macro syntax
- script: echo $(my-passed-variable)
Вы можете ссылаться на несколько групп переменных в одном конвейере. Если несколько групп переменных включают одну и ту же переменную, то группа переменных, включенная в файл YAML, задает значение переменной.
variables:
- group: my-first-variable-group
- group: my-second-variable-group
Вы также можете ссылаться на группу переменных в шаблоне. В шаблоне variables.yml
указана ссылка на группу my-variable-group
. Группа переменных содержит переменную с именем myhello
.
# variables.yml
variables:
- group: my-variable-group
В этом конвейере переменная $(myhello)
из группы my-variable-group
переменных включена и variables.yml
ссылается.
# azure-pipeline.yml
stages:
- stage: MyStage
variables:
- template: variables.yml
jobs:
- job: Test
steps:
- script: echo $(myhello)
Авторизация группы переменных
Чтобы работать с группой переменных, необходимо авторизовать группу. Если имя только группы переменных в YAML, любой пользователь, который может отправить код в репозиторий, может извлечь содержимое секретов в группе переменных. Чтобы авторизовать группу, используйте один из следующих методов:
Чтобы авторизовать группу переменных для определенного конвейера, откройте конвейер, нажмите кнопку "Изменить", а затем в очереди сборки вручную. Вы увидите ошибку авторизации ресурса и действие "Авторизовать ресурсы" для ошибки. Выберите это действие, чтобы явно добавить конвейер в качестве авторизованного пользователя группы переменных.
Чтобы авторизовать любой конвейер для использования группы переменных, перейдите в Azure Pipelines. Это может быть хорошим вариантом, если у вас нет секретов в группе. Выберите группы переменных библиотеки>, а затем выберите группу переменных и включите параметр Разрешить доступ ко всем конвейерам.
Примечание.
Если вы добавляете группу переменных в конвейер и не получаете в сборке ошибку авторизации ресурсов, если ожидается одна, отключите параметр Allow access to all pipelines setting.
Доступ к значениям переменной в связанной группе переменных так же, как и переменные, которые определяются в самом конвейере.
Например, чтобы получить доступ к значению переменной с именем клиента в группе переменных, связанной с конвейером, используйте $(customer)
в параметре задачи или скрипте. Но вы не можете получить доступ к секретным переменным (зашифрованным переменным и переменным хранилища ключей) непосредственно в скриптах. Вместо этого они должны быть переданы в качестве аргументов в задачу. Дополнительные сведения см. в разделе секретов
Изменения, внесенные в группу переменных, автоматически доступны для всех определений или этапов, с которыми связана группа переменных.
Вывод списка групп переменных
Используйте интерфейс командной строки для перечисления групп переменных для конвейеров с помощью команды az pipelines variable-group list . Если расширение Azure DevOps для CLI является новым для вас, см. статью "Начало работы с Azure DevOps CLI".
az pipelines variable-group list [--action {manage, none, use}]
[--continuation-token]
[--group-name]
[--org]
[--project]
[--query-order {Asc, Desc}]
[--top]
Необязательные параметры
- действие. Указывает действие, которое можно выполнить в группах переменных. Допустимые значения управляются, нет и используются.
- токен продолжения: перечисляет группы переменных после предоставления маркера продолжения.
- имя группы: имя группы переменных. Подстановочные знаки принимаются, например
new-var*
. - org: URL-адрес организации Azure DevOps. Настройте организацию по умолчанию с помощью
az devops configure -d organization=ORG_URL
. Требуется, если не настроено как по умолчанию или выбрано с помощьюgit config
. Пример:--org https://dev.azure.com/MyOrganizationName/
. - проект: имя или идентификатор проекта. Настройте проект по умолчанию с помощью
az devops configure -d project=NAME_OR_ID
. Требуется, если не настроено как по умолчанию или выбрано с помощьюgit config
. - порядок запросов: выводит результаты по возрастанию или убыванию (по умолчанию). Допустимые значения: Asc и Desc.
- top: число групп переменных для списка.
Пример
Следующая команда содержит три первые группы переменных в порядке возрастания и возвращает результаты в формате таблицы.
az pipelines variable-group list --top 3 --query-order Asc --output table
ID Name Type Number of Variables
---- ----------------- ------ ---------------------
1 myvariables Vsts 2
2 newvariables Vsts 4
3 new-app-variables Vsts 3
Отображение сведений о группе переменных
Отображение сведений о группе переменных в проекте с помощью команды az pipelines variable-group show . Если расширение Azure DevOps для CLI является новым для вас, см. статью "Начало работы с Azure DevOps CLI".
az pipelines variable-group show --group-id
[--org]
[--project]
Параметры
- идентификатор группы: обязательный. Идентификатор группы переменных. Чтобы найти идентификатор группы переменных, см. статью "Список групп переменных".
- org: URL-адрес организации Azure DevOps. Настройте организацию по умолчанию с помощью
az devops configure -d organization=ORG_URL
. Требуется, если не настроено как по умолчанию или выбрано с помощьюgit config
. Пример:--org https://dev.azure.com/MyOrganizationName/
. - проект: имя или идентификатор проекта. Настройте проект по умолчанию с помощью
az devops configure -d project=NAME_OR_ID
. Требуется, если не настроено как по умолчанию или выбрано с помощьюgit config
.
Пример
Следующая команда содержит сведения о группе переменных с идентификатором 4 и возвращает результаты в формате YAML.
az pipelines variable-group show --group-id 4 --output yaml
authorized: false
description: Variables for my new app
id: 4
name: MyNewAppVariables
providerData: null
type: Vsts
variables:
app-location:
isSecret: null
value: Head_Office
app-name:
isSecret: null
value: Fabrikam
Удаление группы переменных
Удалите группу переменных в проекте с помощью команды az pipelines variable-group delete . Если расширение Azure DevOps для CLI является новым для вас, см. статью "Начало работы с Azure DevOps CLI".
az pipelines variable-group delete --group-id
[--org]
[--project]
[--yes]
Параметры
- идентификатор группы: обязательный. Идентификатор группы переменных. Чтобы найти идентификатор группы переменных, см. статью "Список групп переменных".
- org: URL-адрес организации Azure DevOps. Настройте организацию по умолчанию с помощью
az devops configure -d organization=ORG_URL
. Требуется, если не настроено как по умолчанию или выбрано с помощьюgit config
. Пример:--org https://dev.azure.com/MyOrganizationName/
. - проект: имя или идентификатор проекта. Настройте проект по умолчанию с помощью
az devops configure -d project=NAME_OR_ID
. Требуется, если не настроено как по умолчанию или выбрано с помощьюgit config
. - Да: Необязательно. Без запроса подтверждения.
Пример
Следующая команда удаляет группу переменных с идентификатором 1 и не запрашивает подтверждение.
az pipelines variable-group delete --group-id 1 --yes
Deleted variable group successfully.
Добавление переменных в группу переменных
С помощью Интерфейса командной строки Azure DevOps можно добавить переменную в группу переменных в конвейере с помощью команды создания переменной az pipelines variable-group. Если расширение Azure DevOps для CLI является новым для вас, см. статью "Начало работы с Azure DevOps CLI".
az pipelines variable-group variable create --group-id
--name
[--org]
[--project]
[--secret {false, true}]
[--value]
Параметры
- идентификатор группы: обязательный. Идентификатор группы переменных. Чтобы найти идентификатор группы переменных, см. статью "Список групп переменных".
- name: обязательное поле. Имя добавляемой переменной.
- org: URL-адрес организации Azure DevOps. Настройте организацию по умолчанию с помощью
az devops configure -d organization=ORG_URL
. Требуется, если не настроено как по умолчанию или выбрано с помощьюgit config
. Пример:--org https://dev.azure.com/MyOrganizationName/
. - проект: имя или идентификатор проекта. Настройте проект по умолчанию с помощью
az devops configure -d project=NAME_OR_ID
. Требуется, если не настроено как по умолчанию или выбрано с помощьюgit config
. - секрет: необязательный. Указывает, является ли значение переменной секретом. Допустимые значения — false и true.
- значение: обязательный для переменной, отличной от секрета. Значение переменной. Для секретных переменных, если параметр значения не указан, он выбирается из префикса переменной среды или
AZURE_DEVOPS_EXT_PIPELINE_VAR_
пользователю предлагается ввести его через стандартные входные данные. Например, переменная с именем MySecret может быть введена с помощью переменнойAZURE_DEVOPS_EXT_PIPELINE_VAR_MySecret
среды.
Пример
Следующая команда создает переменную в группе переменных с идентификатором 4. Новая переменная называется "требуется для входа " и имеет значение True, а результат отображается в формате таблицы.
az pipelines variable-group variable create --group-id 4 --name requires-login --value True --output table
Name Is Secret Value
-------------- ----------- -------
requires-login False True
Перечисление переменных в группе переменных
Вы можете перечислить переменные в группе переменных с помощью команды az pipelines variable-group variable list. Если расширение Azure DevOps для CLI является новым для вас, см. статью "Начало работы с Azure DevOps CLI".
az pipelines variable-group variable list --group-id
[--org]
[--project]
Параметры
- идентификатор группы: обязательный. Идентификатор группы переменных. Чтобы найти идентификатор группы переменных, см. статью "Список групп переменных".
- org: URL-адрес организации Azure DevOps. Настройте организацию по умолчанию с помощью
az devops configure -d organization=ORG_URL
. Требуется, если не настроено как по умолчанию или выбрано с помощьюgit config
. Пример:--org https://dev.azure.com/MyOrganizationName/
. - проект: имя или идентификатор проекта. Настройте проект по умолчанию с помощью
az devops configure -d project=NAME_OR_ID
. Требуется, если не настроено как по умолчанию или выбрано с помощьюgit config
.
Пример
Следующая команда содержит список всех переменных в группе переменных с идентификатором 4 и отображает результат в формате таблицы.
az pipelines variable-group variable list --group-id 4 --output table
Name Is Secret Value
-------------- ----------- -----------
app-location False Head_Office
app-name False Fabrikam
requires-login False True
Обновление переменных в группе переменных
Обновите переменную в группе переменных с помощью команды az pipelines variable-group update . Если расширение Azure DevOps для CLI является новым для вас, см. статью "Начало работы с Azure DevOps CLI".
az pipelines variable-group variable update --group-id
--name
[--new-name]
[--org]
[--project]
[--prompt-value {false, true}]
[--secret {false, true}]
[--value]
Параметры
- идентификатор группы: обязательный. Идентификатор группы переменных. Чтобы найти идентификатор группы переменных, см. статью "Список групп переменных".
- name: обязательное поле. Имя добавляемой переменной.
- new-name: необязательный. Укажите, чтобы изменить имя переменной.
- org: URL-адрес организации Azure DevOps. Настройте организацию по умолчанию с помощью
az devops configure -d organization=ORG_URL
. Требуется, если не настроено как по умолчанию или выбрано с помощьюgit config
. Пример:--org https://dev.azure.com/MyOrganizationName/
. - проект: имя или идентификатор проекта. Настройте проект по умолчанию с помощью
az devops configure -d project=NAME_OR_ID
. Требуется, если не настроено как по умолчанию или выбрано с помощьюgit config
. - значение запроса: задайте значение true, чтобы обновить значение секретной переменной с помощью переменной среды или запроса с помощью стандартных входных данных. Допустимые значения — false и true.
- секрет: необязательный. Указывает, хранится ли значение переменной в секрете. Допустимые значения — false и true.
- значение: обновляет значение переменной. Для секретных переменных используйте параметр запроса-значение , чтобы ввести его с помощью стандартных входных данных. Для неинтерактивных консолей его можно выбрать из префикса переменной среды с
AZURE_DEVOPS_EXT_PIPELINE_VAR_
префиксом . Например, переменная с именем MySecret может быть введена с помощью переменнойAZURE_DEVOPS_EXT_PIPELINE_VAR_MySecret
среды.
Пример
Следующая команда обновляет переменную обязательного входа с новым значением False в группе переменных с идентификатором 4. Он указывает, что переменная является секретом и отображает результат в формате YAML. Обратите внимание, что выходные данные показывают значение null вместо False, так как это скрытое значение секрета.
az pipelines variable-group variable update --group-id 4 --name requires-login --value False --secret true --output yaml
requires-login:
isSecret: true
value: null
Удаление переменных из группы переменных
Удалите переменную из группы переменных с помощью команды az pipelines variable-group delete . Если расширение Azure DevOps для CLI является новым для вас, см. статью "Начало работы с Azure DevOps CLI".
az pipelines variable-group variable delete --group-id
--name
[--org]
[--project]
[--yes]
Параметры
- идентификатор группы: обязательный. Идентификатор группы переменных. Чтобы найти идентификатор группы переменных, см. статью "Список групп переменных".
- name: обязательное поле. Имя удаляемой переменной.
- org: URL-адрес организации Azure DevOps. Настройте организацию по умолчанию с помощью
az devops configure -d organization=ORG_URL
. Требуется, если не настроено как по умолчанию или выбрано с помощьюgit config
. Пример:--org https://dev.azure.com/MyOrganizationName/
. - проект: имя или идентификатор проекта. Настройте проект по умолчанию с помощью
az devops configure -d project=NAME_OR_ID
. Требуется, если не настроено как по умолчанию или выбрано с помощьюgit config
. - Да: Необязательно. Без запроса подтверждения.
Пример
Следующая команда удаляет переменную обязательного входа из группы переменных с идентификатором 4 и запросами на подтверждение.
az pipelines variable-group variable delete --group-id 4 --name requires-login
Are you sure you want to delete this variable? (y/n): y
Deleted variable 'requires-login' successfully.
Связывание секретов из Azure Key Vault
Примечание.
Key Vaults с помощью управления доступом на основе ролей Azure (Azure RBAC) не поддерживаются.
Связывание существующего хранилища ключей Azure с группой переменных и сопоставлением секретов выборочного хранилища с группой переменных.
На странице групп переменных включите секреты link из хранилища ключей Azure в качестве переменных. Вам потребуется существующее хранилище ключей, содержащее секреты. Создайте хранилище ключей с помощью портал Azure.
Укажите конечную точку подписки Azure и имя хранилища, содержащего секреты.
Убедитесь, что подключение службы Azure имеет по крайней мере разрешения на получение и вывод списка в хранилище для секретов. Включите Azure Pipelines, чтобы задать эти разрешения, выбрав "Авторизовать " рядом с именем хранилища. Или задайте разрешения вручную в портал Azure:
- Откройте параметры хранилища и выберите политики>Доступа.
- Выберите субъект и выберите субъект-службу для учетной записи клиента.
- Выберите разрешения секрета и убедитесь, что у get and List есть флажки.
- Нажмите ОК, чтобы сохранить изменения.
На странице групп переменных нажмите кнопку +Добавить, чтобы выбрать определенные секреты из хранилища для сопоставления с этой группой переменных.
Управление секретами хранилища ключей
См. следующий список полезных советов по управлению секретами.
Только имена секретов сопоставляются с группой переменных, а не значения секретов. Последнее значение секрета, полученное из хранилища, используется в выполнении конвейера, связанном с группой переменных.
Все изменения, внесенные в существующие секреты в хранилище ключей, автоматически доступны для всех конвейеров, используемых группой переменных.
При добавлении или удалении новых секретов из хранилища связанные группы переменных не обновляются автоматически. Секреты, включенные в группу переменных, должны быть явно обновлены, чтобы конвейеры, использующие группу переменных, выполнялись правильно.
Azure Key Vault поддерживает хранение и управление криптографическими ключами и секретами в Azure. В настоящее время интеграция группы переменных Azure Pipelines поддерживает сопоставление только секретов из хранилища ключей Azure. Криптографические ключи и сертификаты не поддерживаются.
Развертывание переменных в группе
При установке переменной в группе и ее использовании в YAML-файле он равен другим определенным переменным в ФАЙЛЕ YAML. Дополнительные сведения о приоритете переменных см. в разделе "Переменные".
Связанные статьи
Обратная связь
https://aka.ms/ContentUserFeedback.
Ожидается в ближайшее время: в течение 2024 года мы постепенно откажемся от GitHub Issues как механизма обратной связи для контента и заменим его новой системой обратной связи. Дополнительные сведения см. в разделеОтправить и просмотреть отзыв по