Управление группами переменных
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.
Войдите в организацию Azure DevOps с помощью команды az login .
az login
Если появится запрос, выберите подписку из списка, отображаемого в окне терминала.
Убедитесь, что вы используете последнюю версию Azure CLI и расширение Azure DevOps, выполнив следующие команды.
az upgrade az extension add --name azure-devops --upgrade
В командах ИНТЕРФЕЙСА командной строки Azure DevOps можно задать организацию и проект по умолчанию с помощью:
az devops configure --defaults organization=<YourOrganizationURL> project=<Project Name or ID>`
Если вы не установили организацию и проект по умолчанию, можно использовать
detect=true
параметр в командах для автоматического обнаружения контекста организации и проекта на основе текущего каталога. Если значения по умолчанию не настроены или обнаружены, необходимо явно указатьorg
параметры иproject
параметры в командах.
Создание группы переменных
Группы переменных для конвейера можно создать в проекте.
Примечание.
Чтобы создать группу секретных переменных для связывания секретов из хранилища ключей Azure в качестве переменных, следуйте инструкциям в статье "Связывание группы переменных с секретами в Azure Key Vault".
В проекте Azure DevOps выберите библиотеку Pipelines>в меню слева.
На странице Библиотека выберите + Группа переменных.
На странице новой группы переменных в разделе "Свойства" введите имя и необязательное описание для группы переменных.
В разделе "Переменные" выберите + Добавить, а затем введите имя и значение переменной для включения в группу. Если вы хотите зашифровать и безопасно сохранить значение, щелкните значок блокировки рядом с переменной.
Нажмите кнопку +Добавить, чтобы добавить каждую новую переменную. После завершения добавления переменных нажмите кнопку "Сохранить".
Теперь эту группу переменных можно использовать в конвейерах проекта.
Обновление групп переменных
Группы переменных можно обновить с помощью пользовательского интерфейса Azure Pipelines.
- В проекте Azure DevOps выберите библиотеку Pipelines>в меню слева.
- На странице библиотеки выберите группу переменных, которую вы хотите обновить. Вы также можете наведите указатель мыши на список групп переменных, выберите значок "Дополнительные параметры " и выберите " Изменить " в меню.
- На странице группы переменных измените любой из свойств и нажмите кнопку "Сохранить".
Удаление группы переменных
Группы переменных можно удалить в пользовательском интерфейсе Azure Pipelines.
- В проекте Azure DevOps выберите библиотеку Pipelines>в меню слева.
- На странице библиотеки наведите указатель мыши на группу переменных, которую вы хотите удалить, и выберите значок "Дополнительные параметры".
- Выберите "Удалить" в меню и нажмите кнопку "Удалить" на экране подтверждения.
Управление переменными в группах переменных
Вы можете изменять, добавлять или удалять переменные в группах переменных с помощью пользовательского интерфейса Azure Pipelines.
- В проекте Azure DevOps выберите библиотеку Pipelines>в меню слева.
- На странице библиотеки выберите группу переменных, которую вы хотите обновить. Вы также можете наведите указатель мыши на список групп переменных, выберите значок "Дополнительные параметры " и выберите " Изменить " в меню.
- На странице группы переменных можно:
- Измените любое из имен или значений переменной.
- Удалите любые переменные, выбрав значок мусора рядом с именем переменной.
- Измените переменные на секретные или несекретные, выбрав значок блокировки рядом со значением переменной.
- Добавьте новые переменные, нажав кнопку +Добавить.
- После внесения изменений нажмите кнопку "Сохранить".
Использование групп переменных в конвейерах
Группы переменных можно использовать в yamL или классических конвейерах. Изменения, внесенные в группу переменных, автоматически доступны для всех определений или этапов, с которыми связана группа переменных.
Если вы назовете только группу переменных в конвейерах YAML, любой пользователь, который может отправить код в репозиторий, может извлечь содержимое секретов в группе переменных. Таким образом, чтобы использовать группу переменных с конвейерами YAML, необходимо авторизовать конвейер для использования группы. Конвейер можно авторизовать для использования группы переменных в пользовательском интерфейсе Azure Pipelines или с помощью Azure DevOps CLI.
Авторизация с помощью пользовательского интерфейса Конвейеров
Конвейеры можно авторизовать для использования групп переменных с помощью пользовательского интерфейса Azure Pipelines.
- В проекте Azure DevOps выберите библиотеку Pipelines>в меню слева.
- На странице библиотеки выберите группу переменных, которую требуется авторизовать.
- На странице группы переменных перейдите на вкладку "Разрешения конвейера ".
- На экране разрешений конвейера выберите + и выберите конвейер для авторизации. Или щелкните значок "Дополнительные действия", выберите "Открыть доступ" и снова выберите "Открыть доступ", чтобы подтвердить.
Выбор конвейера разрешает этот конвейер использовать группу переменных. Чтобы авторизовать другой конвейер, снова выберите + значок. При выборе "Открыть доступ" все конвейеры проектов разрешаются использовать группу переменных. Открытый доступ может быть хорошим вариантом, если у вас нет секретов в группе.
Еще одним способом авторизации группы переменных является выбор конвейера, нажатие кнопки "Изменить", а затем очередь сборки вручную. Вы увидите ошибку авторизации ресурса и можете явно добавить конвейер в качестве авторизованного пользователя группы переменных.
Авторизация с помощью интерфейса командной строки Azure DevOps
В Azure DevOps Services можно авторизовать группы переменных с помощью Azure DevOps CLI.
Команды Интерфейса командной строки Azure DevOps не поддерживаются для Azure DevOps Server.
Чтобы авторизовать все конвейеры проекта для использования группы переменных, задайте authorize
параметр в команде true
az 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)
Доступ к секретным переменным, включая зашифрованные переменные и переменные хранилища ключей, нельзя получить непосредственно в скриптах. Эти переменные необходимо передать в качестве аргументов в задачу. Дополнительные сведения см. в разделе "Секретные переменные".