Поделиться через


Управление группами переменных

Azure DevOps Services | Azure DevOps Server 2022 — Azure DevOps Server 2019

В этой статье объясняется, как создавать и использовать группы переменных в Azure Pipelines. Группы переменных хранят значения и секреты, которые можно передать в конвейер YAML или сделать доступными для нескольких конвейеров в проекте.

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

Группы переменных соответствуют модели безопасности библиотеки для ролей и разрешений.

Необходимые компоненты

  • Организация и проект Azure DevOps Services, где у вас есть разрешения на создание конвейеров и переменных.
  • Проект в организации Azure DevOps или коллекции Azure DevOps Server. Создайте проект , если у вас его нет.
  • Если вы используете интерфейс командной строки Azure DevOps, вам потребуется Azure CLI версии 2.30.0 или более поздней с расширением Azure DevOps CLI. Дополнительные сведения см. в статье "Начало работы с Azure DevOps CLI".
  • Коллекция и проект Azure DevOps Server, где у вас есть разрешения на создание конвейеров и переменных.
  • Проект в организации Azure DevOps или коллекции Azure DevOps Server. Создайте проект , если у вас его нет.

Настройка CLI

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

  1. Войдите в организацию Azure DevOps с помощью команды az login .

    az login
    
  2. Если появится запрос, выберите подписку из списка, отображаемого в окне терминала.

  3. Убедитесь, что вы используете последнюю версию Azure CLI и расширение Azure DevOps, выполнив следующие команды.

    az upgrade
    az extension add --name azure-devops --upgrade
    
  4. В командах ИНТЕРФЕЙСА командной строки Azure DevOps можно задать организацию и проект по умолчанию с помощью:

    az devops configure --defaults organization=<YourOrganizationURL> project=<Project Name or ID>`
    

    Если вы не установили организацию и проект по умолчанию, можно использовать detect=true параметр в командах для автоматического обнаружения контекста организации и проекта на основе текущего каталога. Если значения по умолчанию не настроены или обнаружены, необходимо явно указать org параметры и project параметры в командах.

Создание группы переменных

Группы переменных для конвейера можно создать в проекте.

Примечание.

Чтобы создать группу секретных переменных для связывания секретов из хранилища ключей Azure в качестве переменных, следуйте инструкциям в статье "Связывание группы переменных с секретами в Azure Key Vault".

  1. В проекте Azure DevOps выберите библиотеку Pipelines>в меню слева.

  2. На странице Библиотека выберите + Группа переменных.

    Снимок экрана: экран библиотеки и кнопка

  3. На странице новой группы переменных в разделе "Свойства" введите имя и необязательное описание для группы переменных.

  4. В разделе "Переменные" выберите + Добавить, а затем введите имя и значение переменной для включения в группу. Если вы хотите зашифровать и безопасно сохранить значение, щелкните значок блокировки рядом с переменной.

  5. Нажмите кнопку +Добавить, чтобы добавить каждую новую переменную. После завершения добавления переменных нажмите кнопку "Сохранить".

    Снимок экрана: настройка и сохранение группы переменных.

Теперь эту группу переменных можно использовать в конвейерах проекта.

Обновление групп переменных

Группы переменных можно обновить с помощью пользовательского интерфейса Azure Pipelines.

  1. В проекте Azure DevOps выберите библиотеку Pipelines>в меню слева.
  2. На странице библиотеки выберите группу переменных, которую вы хотите обновить. Вы также можете наведите указатель мыши на список групп переменных, выберите значок "Дополнительные параметры " и выберите " Изменить " в меню.
  3. На странице группы переменных измените любой из свойств и нажмите кнопку "Сохранить".

Удаление группы переменных

Группы переменных можно удалить в пользовательском интерфейсе Azure Pipelines.

  1. В проекте Azure DevOps выберите библиотеку Pipelines>в меню слева.
  2. На странице библиотеки наведите указатель мыши на группу переменных, которую вы хотите удалить, и выберите значок "Дополнительные параметры".
  3. Выберите "Удалить" в меню и нажмите кнопку "Удалить" на экране подтверждения.

Управление переменными в группах переменных

Вы можете изменять, добавлять или удалять переменные в группах переменных с помощью пользовательского интерфейса Azure Pipelines.

  1. В проекте Azure DevOps выберите библиотеку Pipelines>в меню слева.
  2. На странице библиотеки выберите группу переменных, которую вы хотите обновить. Вы также можете наведите указатель мыши на список групп переменных, выберите значок "Дополнительные параметры " и выберите " Изменить " в меню.
  3. На странице группы переменных можно:
    • Измените любое из имен или значений переменной.
    • Удалите любые переменные, выбрав значок мусора рядом с именем переменной.
    • Измените переменные на секретные или несекретные, выбрав значок блокировки рядом со значением переменной.
    • Добавьте новые переменные, нажав кнопку +Добавить.
  4. После внесения изменений нажмите кнопку "Сохранить".

Использование групп переменных в конвейерах

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

Если вы назовете только группу переменных в конвейерах YAML, любой пользователь, который может отправить код в репозиторий, может извлечь содержимое секретов в группе переменных. Таким образом, чтобы использовать группу переменных с конвейерами YAML, необходимо авторизовать конвейер для использования группы. Конвейер можно авторизовать для использования группы переменных в пользовательском интерфейсе Azure Pipelines или с помощью Azure DevOps CLI.

Авторизация с помощью пользовательского интерфейса Конвейеров

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

  1. В проекте Azure DevOps выберите библиотеку Pipelines>в меню слева.
  2. На странице библиотеки выберите группу переменных, которую требуется авторизовать.
  3. На странице группы переменных перейдите на вкладку "Разрешения конвейера ".
  4. На экране разрешений конвейера выберите + и выберите конвейер для авторизации. Или щелкните значок "Дополнительные действия", выберите "Открыть доступ" и снова выберите "Открыть доступ", чтобы подтвердить.

Выбор конвейера разрешает этот конвейер использовать группу переменных. Чтобы авторизовать другой конвейер, снова выберите + значок. При выборе "Открыть доступ" все конвейеры проектов разрешаются использовать группу переменных. Открытый доступ может быть хорошим вариантом, если у вас нет секретов в группе.

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

Авторизация с помощью интерфейса командной строки Azure DevOps

В Azure DevOps Services можно авторизовать группы переменных с помощью Azure DevOps CLI.

Команды Интерфейса командной строки Azure DevOps не поддерживаются для Azure DevOps Server.

Чтобы авторизовать все конвейеры проекта для использования группы переменных, задайте authorize параметр в команде trueaz pipelines variable-group create. Этот открытый доступ может быть хорошим вариантом, если у вас нет секретов в группе.

После авторизации конвейера YAML для использования группы переменных можно использовать переменные в группе в конвейере.

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

variables:
- group: my-variable-group

Вы можете ссылаться на несколько групп переменных в одном конвейере. Если несколько групп переменных включают переменные с одинаковым именем, последняя группа переменных, использующая переменную в файле, задает значение переменной. Дополнительные сведения о приоритете переменных см. в разделе "Расширение переменных".

Вы также можете ссылаться на группу переменных в шаблоне. Следующий файл шаблона variables.yml ссылается на группу my-variable-groupпеременных. Группа переменных содержит переменную с именем myhello.

variables:
- group: my-variable-group

Конвейер YAML ссылается на шаблон variables.yml и использует переменную $(myhello) из группы my-variable-groupпеременных.

stages:
- stage: MyStage
  variables:
  - template: variables.yml
  jobs:
  - job: Test
    steps:
    - script: echo $(myhello)

Использование переменных в связанной группе переменных

Вы обращаетесь к значениям переменных в связанной группе переменных так же, как и к переменным, заданным в конвейере. Например, чтобы получить доступ к значению переменной, именованной customer в группе переменных, связанной с конвейером, можно использовать $(customer) в параметре задачи или скрипте.

Если в файле конвейера используются как автономные переменные, так и группы переменных, используйте name-value синтаксис для автономных переменных.

variables:
- group: my-variable-group
- name: my-standalone-variable
  value: 'my-standalone-variable-value'

Чтобы ссылаться на переменную в группе переменных, можно использовать синтаксис макросов или выражение среды выполнения. В следующих примерах группа my-variable-group имеет переменную с именем myhello.

Чтобы использовать выражение среды выполнения, выполните приведенные действия.

variables:
- group: my-variable-group
- name: my-passed-variable
  value: $[variables.myhello]
- script: echo $(my-passed-variable)

Чтобы использовать синтаксис макроса, выполните следующее:

variables:
- group: my-variable-group

steps:
- script: echo $(myhello)

Доступ к секретным переменным, включая зашифрованные переменные и переменные хранилища ключей, нельзя получить непосредственно в скриптах. Эти переменные необходимо передать в качестве аргументов в задачу. Дополнительные сведения см. в разделе "Секретные переменные".