Создание повторно используемых настроек поля разработки

Настройка Microsoft Dev Box — это подход к настройке полей разработки как кода. В этой статье вы узнаете, как настроить поля разработки с помощью каталога задач и файла конфигурации для установки программного обеспечения, добавления расширений, клонированных репозиториев и т. д. Эти задачи применяются к новому поле разработки на последнем этапе процесса создания. Вы можете добавлять параметры и программное обеспечение, не создавая пользовательский образ виртуальной машины.

Настройки полезны для команд разработчиков. Потенциальные разработчики могут использовать настройки для предварительной настройки программного обеспечения, необходимого для конкретной команды разработки, и создавать файлы конфигурации, которые применяют только задачи, относящиеся к их командам. Этот метод позволяет разработчикам создавать коробки разработки, которые лучше всего соответствуют их работе, не требуя запрашивать ИТ-специалисты изменения или ждать создания пользовательского образа виртуальной машины.

С помощью настроек можно автоматизировать распространенные шаги установки, сэкономить время и уменьшить вероятность ошибок конфигурации. Ниже приведены некоторые примеры задач:

  • Установка программного обеспечения с помощью диспетчера пакетов WinGet.
  • Настройка параметров ОС, таких как включение функций Windows.
  • Настройка приложений, таких как установка расширений Visual Studio.

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

  1. Создание настраиваемого поля разработки с помощью примера файла конфигурации
  2. Запись файла конфигурации
  3. Предоставление общего доступа к файлу конфигурации из репозитория кода
  4. Определение новых задач в каталоге
  5. Использование секретов из Azure Key Vault

Внимание

Настройки в Microsoft Dev Box в настоящее время находятся в предварительной версии. Юридические условия, применимые к функциям Azure, которые находятся в состоянии бета-версии, предварительной версии или иным образом еще не выпущены в общедоступной версии, см. на странице Дополнительные условия использования предварительных версий в Microsoft Azure.

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

Создание настраиваемого поля разработки с помощью примера файла конфигурации

Используйте каталог быстрого запуска по умолчанию и пример файла конфигурации для начала работы с настройками.

Присоединение каталога быстрого запуска

Присоединение каталога с задачами настройки к центру разработки означает, что вы можете создать поле разработки в этом центре разработки и ссылаться на задачи настройки из этого каталога. Корпорация Майкрософт предоставляет пример репозитория на GitHub со стандартным набором задач по умолчанию, которые помогут вам приступить к работе, известном как каталог быстрого запуска.

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

  1. Войдите на портал разработчика Microsoft Dev Box.

  2. В меню слева в разделе "Конфигурация среды" выберите "Каталоги" и нажмите кнопку "Добавить".

  3. В разделе "Добавление каталога" выберите задачи настройки поля разработки в качестве каталога быстрого запуска. а затем щелкните Добавить.

  4. В центре разработки выберите каталоги и убедитесь, что каталог отображается.

    Снимок экрана: портал Azure с областью

    Если подключение выполнено успешно, состояние отображается как успешное выполнение синхронизации.

Создание настраиваемого поля разработки

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

  1. Скачайте пример конфигурации yaml из репозитория примеров. В этом примере конфигурация устанавливает Visual Studio Code и клонирует репозиторий веб-приложения OrchardCore .NET в поле разработки.

  2. Войдите на портал разработчика Microsoft Dev Box.

  3. Выберите "Создать>поле разработки".

  4. В поле "Добавить разработку" введите следующие значения и нажмите кнопку "Продолжить".

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

    Снимок экрана: параметры настройки поля разработки на портале разработчика с выделенными файлами отправки настроек.

  5. На странице "Настройка поля разработки" выберите "Отправить файл настройки" и выберите "Добавить настройки" из файла.

    Снимок экрана: страница

  6. Перейдите к расположению скачаемого файла конфигурации yaml, а затем нажмите кнопку "Открыть".

  7. Убедитесь, что файл конфигурации указан в разделе "Отправка файлов настройки", а затем нажмите кнопку "Проверить".

    Снимок экрана: страница

  8. После проверки файла конфигурации в Dev Box нажмите кнопку "Продолжить".

    Снимок экрана: сообщение об успешной проверке задачи настройки и выделенный раздел

  9. На странице создания поля разработки в Dev Box отображаются задачи, которые будут применены. Нажмите кнопку создания.

    Снимок экрана: страница сводки по созданию поля разработки с выделенной кнопкой

После завершения процесса создания в новом поле разработки установлены узлы и Visual Studio Code.

Дополнительные примеры см. в репозитории примеров центра разработки на сайте GitHub.

Совет

В качестве альтернативы порталу разработчика можно использовать dev Home для создания, настройки и подключения к полям разработки. Dev Home — это собственное приложение Для Windows, которое предоставляет единое место для управления полями разработки. Дополнительные сведения о домашней версии разработки см. в разделе "Создание повторно используемых настроек для разработки" с помощью "Главная разработка".

Что такое файл конфигурации?

Настройки Dev Box используют отформатированный файл yaml, чтобы указать список задач, применяемых из каталога при создании нового поля разработки. Эти файлы конфигурации включают одну или несколько "задач", которые определяют задачу каталога и предоставляют такие параметры, как имя программного обеспечения для установки. Затем файл конфигурации становится доступным для разработчиков, создающих новые поля разработки. В следующем примере используется задача winget для установки Visual Studio Code и git clone задачи клонирования репозитория.

# From https://github.com/microsoft/devcenter-examples
$schema: 1.0
tasks:
  - name: winget
    parameters:
      package: Microsoft.VisualStudioCode
      runAsUser: true
  - name: git-clone
    description: Clone this repository into C:\Workspaces
    parameters:
      repositoryUrl: https://github.com/OrchardCMS/OrchardCore.git
      directory: C:\Workspaces

Что такое задачи?

Задача выполняет определенное действие, например установку программного обеспечения. Каждая задача состоит из одного или нескольких скриптов PowerShell, а также файла task.yaml , который предоставляет параметры и определяет, как выполняются скрипты. Вы также можете включить команду PowerShell в файл task.yaml. Вы можете хранить коллекцию курируемых задач в каталоге, подключенном к центру разработки, с каждой задачей в отдельной папке. Dev Box поддерживает использование репозитория GitHub или репозитория Azure DevOps в качестве каталога и сканирует указанную папку каталога рекурсивно, чтобы найти определения задач.

Корпорация Майкрософт предоставляет каталог быстрого запуска, который поможет вам приступить к настройке. Он включает набор задач по умолчанию, определяющих распространенные задачи:

  • Установка программного обеспечения с помощью диспетчера пакетов WinGet.
  • Разверните нужную конфигурацию состояния (DSC) с помощью конфигурации WinGet.
  • Клонирование репозитория с помощью git-clone.
  • Настройка приложений, таких как установка расширений Visual Studio.
  • Выполнение скриптов PowerShell.

Настройка поля разработки с помощью существующих файлов конфигурации WinGet

Конфигурация WinGet принимает подход к определению уникальных наборов параметров программного обеспечения и конфигурации, необходимых для получения среды Windows в состоянии готовности к коду. Эти файлы конфигурации также можно использовать для настройки Dev Box с помощью задачи WinGet, включенной в каталог краткого руководства Майкрософт, упоминание ранее.

В следующем примере показан файл настройки поля разработки, вызывающий существующий файл WinGet DSC.

tasks:
    - name: winget
      parameters:
          configure: "projectConfiguration.dsc.yaml"

Дополнительные сведения о конфигурации WinGet см. в статье "Конфигурация WinGet".

Разрешения, необходимые для настройки Microsoft Dev Box

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

Действие Разрешение или роль
Присоединение каталога к центру разработки Инженер платформы с разрешением участника в центре разработки.
Использование портала разработчика для отправки и применения yaml-файла во время создания поля разработки Пользователь Dev Box
Создание файла конфигурации Любой пользователь может создать файл конфигурации.
Добавление задач в каталог Разрешение на добавление в репозиторий, на котором размещен каталог.

Запись файла конфигурации

Вы можете определить новые задачи для применения к полям разработки, создав собственный файл конфигурации. Вы можете протестировать файл конфигурации в Visual Studio Code и внести все необходимые изменения без необходимости создать отдельное поле разработки для каждого теста.

Прежде чем создавать и тестировать собственный файл конфигурации, должен быть каталог, содержащий задачи, подключенные к центру разработки. Расширение Visual Studio Code можно использовать для обнаружения задач в подключенном каталоге.

  1. Создайте поле разработки (или используйте существующую платформу Dev Box) для тестирования.

  2. В тестовом поле разработки установите Visual Studio Code и установите расширение VS Code версии 1.2.2.

  3. Скачайте пример файла конфигурации yaml из репозитория примеров и откройте его в Visual Studio Code.

  4. Обнаружение задач, доступных в каталоге, с помощью палитры команд. В палитре команд представления>выберите Dev Box: перечислить доступные задачи для этого поля разработки.

    Снимок экрана: Visual Studio Code с палитрой команд с выделенным списком доступных задач для этого поля разработки.

  5. Проверка конфигурации в Visual Studio Code с помощью палитры команд f5/command. В палитре команд представления>выберите "Поле разработки": применить задачи настройки.

    Снимок экрана: Visual Studio Code с выделенной палитрой команд с выделенными задачами применения настроек Dev Box.

  6. Файл конфигурации запускается немедленно, применив указанные задачи к поле разработки для тестирования. Проверьте изменения и проверка терминал Visual Studio Code для любых ошибок или предупреждений, созданных во время выполнения задачи.

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

Совет

В качестве альтернативы Visual Studio Code можно использовать среду разработки для создания и проверки файла конфигурации в графическом пользовательском интерфейсе. Дополнительные сведения о домашней версии разработки см. в разделе "Создание повторно используемых настроек для разработки" с помощью "Главная разработка".

Примечание.

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

Предоставление общего доступа к файлу конфигурации из репозитория кода

Сделайте файл конфигурации легко доступным для разработчиков, назвав его workload.yaml и отправив его в репозиторий, доступный разработчикам, как правило, их репозиторию кода. При создании поля разработки укажите URL-адрес репозитория и файл конфигурации клонируется вместе с остальным репозиторием. Поле разработки выполняет поиск репозитория для файла с именем workload.yaml и, если он расположен, выполняет перечисленные задачи. Эта конфигурация обеспечивает простой способ настройки в поле разработки.

  1. Создайте файл конфигурации с именем workload.yaml.

  2. Добавьте файл конфигурации в корневой каталог частного репозитория Azure Repos с кодом и зафиксируйте его.

  3. Войдите на портал разработчика Microsoft Dev Box.

  4. Выберите "Создать>поле разработки".

  5. В поле "Добавить разработку" введите следующие значения и нажмите кнопку "Продолжить".

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

    Снимок экрана: параметры настройки поля разработки на портале разработчика с выделенными файлами отправки настроек.

  6. На странице "Настройка поля разработки" выберите "Выбрать файл настройки" из репозитория в URL-адресе репозитория Azure DevOps, введите URL-адрес репозитория, на котором размещен файл конфигурации, который требуется применить, и нажмите кнопку "Продолжить".

    Снимок экрана: страница

  7. На странице создания поля разработки в Dev Box отображаются задачи, которые будут применены. Нажмите кнопку создания.

После завершения процесса создания в новом поле разработки установлены узлы и Visual Studio Code.

В новом поле разработки клонирован репозиторий и применены все инструкции из файла конфигурации.

Определение новых задач в каталоге

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

  1. Создайте репозиторий для хранения задач.

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

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

    Чтобы приступить к созданию задач, можно использовать примеры, приведенные в репозитории примеров центра разработки в GitHub и документации По PowerShell.

  3. Подключите репозиторий к центру разработки в качестве каталога.

  4. Создайте файл конфигурации для этих задач, выполнив действия, описанные в разделе "Запись файла конфигурации".

Использование секретов из Azure Key Vault

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

Чтобы настроить секреты Key Vault для использования в конфигурациях yaml,

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

  2. Предоставьте роль "Пользователь секретов" для секрета Key Vault каждому пользователю или группе пользователей, которые должны иметь возможность использовать секрет во время настройки поля разработки. Пользователь или группа, предоставленные роли, должны включать управляемое удостоверение для центра разработки, собственную учетную запись пользователя и любого пользователя или группы, которым требуется секрет во время настройки поля разработки.

Дополнительные сведения см. в разделе:

Вы можете ссылаться на секрет в конфигурации yaml в следующем формате, используя задачу git-clone в качестве примера:

$schema: "1.0"
tasks:
   name: git-clone
   description: Clone this repository into C:\Workspaces
      parameters:
         repositoryUrl: https://myazdo.visualstudio.com/MyProject/_git/myrepo
         directory: C:\Workspaces
         pat: '{{KEY_VAULT_SECRET_URI}}'

Если вы хотите клонировать частный репозиторий Azure DevOps (Azure Repos), вам не нужно настраивать секрет в Key Vault. Вместо этого можно использовать {{ado}}или {{ado://your-ado-organization-name}} в качестве параметра. Это извлекает маркер доступа от вашего имени при создании поля разработки, который имеет разрешение только для чтения в репозитории. Задача git-clone в каталоге быстрого запуска использует маркер доступа для клонирования репозитория. Приведем пример:

tasks:
   name: git-clone
   description: Clone this repository into C:\Workspaces
      parameters:
         repositoryUrl: https://myazdo.visualstudio.com/MyProject/_git/myrepo
         directory: C:\Workspaces
         pat: '{{ado://YOUR_ADO_ORG}}'

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

Снимок экрана: настройка брандмауэра Azure с разрешением доверенного службы Майкрософт для обхода выбранного брандмауэра.

Сведения о том, как разрешить доверенным службы Майкрософт обойти брандмауэр, см. в статье Настройка параметров сети Azure Key Vault.