Добавление и использование групп переменных

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.

Примечание.

Key Vaults с помощью управления доступом на основе ролей Azure (Azure RBAC) не поддерживаются.

Связывание существующего хранилища ключей Azure с группой переменных и сопоставлением секретов выборочного хранилища с группой переменных.

  1. На странице групп переменных включите секреты link из хранилища ключей Azure в качестве переменных. Вам потребуется существующее хранилище ключей, содержащее секреты. Создайте хранилище ключей с помощью портал Azure.

    Снимок экрана: группа переменных с интеграцией хранилища ключей Azure.

  2. Укажите конечную точку подписки Azure и имя хранилища, содержащего секреты.

    Убедитесь, что подключение службы Azure имеет по крайней мере разрешения на получение и вывод списка в хранилище для секретов. Включите Azure Pipelines, чтобы задать эти разрешения, выбрав "Авторизовать " рядом с именем хранилища. Или задайте разрешения вручную в портал Azure:

    1. Откройте Параметры для хранилища и выберите политики>доступа.
    2. Выберите субъект и выберите субъект-службу для учетной записи клиента.
    3. Выберите разрешения секрета и убедитесь, что у get и list есть проверка метки.
    4. Нажмите ОК, чтобы сохранить изменения.
  3. На странице групп переменных нажмите кнопку +Добавить, чтобы выбрать определенные секреты из хранилища для сопоставления с этой группой переменных.

Управление секретами хранилища ключей

См. следующий список полезных советов по управлению секретами.

  • Только имена секретов сопоставляются с группой переменных, а не значения секретов. Последнее значение секрета, полученное из хранилища, используется в выполнении конвейера, связанном с группой переменных.

  • Все изменения, внесенные в существующие секреты в хранилище ключей, автоматически доступны для всех конвейеров, используемых группой переменных.

  • При добавлении или удалении новых секретов из хранилища связанные группы переменных не обновляются автоматически. Секреты, включенные в группу переменных, должны быть явно обновлены, чтобы конвейеры, использующие группу переменных, выполнялись правильно.

  • Azure Key Vault поддерживает хранение и управление криптографическими ключами и секретами в Azure. В настоящее время интеграция группы переменных Azure Pipelines поддерживает сопоставление только секретов из хранилища ключей Azure. Криптографические ключи и сертификаты не поддерживаются.

Развертывание переменных в группе

При установке переменной в группе и ее использовании в YAML-файле он равен другим определенным переменным в ФАЙЛЕ YAML. Дополнительные сведения о приоритете переменных см. в разделе "Переменные".