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


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

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

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

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

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

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

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

Примечание.

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Примечание.

Хранилища ключей, использующие управление доступом на основе ролей Azure (Azure RBAC), не поддерживаются.

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

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

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

  1. В проекте Azure DevOps выберите группу "Библиотека> конвейеров>+ переменная".
  2. На странице групп переменных введите имя и необязательное описание для группы переменных.
  3. Включите секреты ссылки из хранилища ключей Azure в качестве переключателя переменных.
  4. Выберите конечную точку подписки Azure и имя хранилища ключей.
  5. Включите Azure DevOps для доступа к хранилищу ключей, выбрав "Авторизовать " рядом с именем хранилища.
  6. На экране "Выбор секретов" выберите определенные секреты из хранилища для сопоставления с этой группой переменных и нажмите кнопку "ОК".
  7. Нажмите кнопку "Сохранить", чтобы сохранить группу секретных переменных.

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

Примечание.

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

  1. Откройте параметры для хранилища ключей и выберите " Перейти к конфигурации>Access" для политик доступа.
  2. На странице политик доступа, если проект Azure Pipelines не указан в разделе "Приложения" с разрешениями "Получить" и "Список", нажмите кнопку "Создать".
  3. В разделе "Секретные разрешения" выберите "Получить" и "Список", а затем нажмите кнопку "Далее".
  4. Выберите субъект-службу и нажмите кнопку "Далее".
  5. Снова нажмите кнопку "Далее ", просмотрите параметры и нажмите кнопку "Создать".

Дополнительные сведения см. в разделе "Использование секретов Azure Key Vault".

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

Группы переменных можно обновить с помощью пользовательского интерфейса 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 для использования группы переменных можно использовать в конвейере группу переменных или переменные.

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

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

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

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

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

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

Использование группы переменных в конвейере 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)

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

Вы обращаетесь к значениям переменных в связанной группе переменных так же, как и к переменным, заданным в конвейере. Например, чтобы получить доступ к значению переменной, именованной 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)

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

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

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

  1. Откройте классический конвейер.

  2. Выберите группы переменных переменных и выберите "Связать группу переменных>".

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

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

    Снимок экрана: связывание группы переменных.

При установке переменной с одинаковым именем в нескольких областях используется следующая приоритетность:

  1. Переменная, заданная во время очереди.
  2. Переменная, заданная в конвейере
  3. Переменная, заданная в группе переменных

Дополнительные сведения о приоритете переменных см. в разделе "Расширение переменных".

Примечание.

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