Примечание.
Для доступа к этой странице требуется авторизация. Вы можете попробовать войти или изменить каталоги.
Для доступа к этой странице требуется авторизация. Вы можете попробовать изменить каталоги.
Среды Azure DevTest Labs можно использовать для легкого и согласованного развертывания лабораторий с несколькими виртуальными машинами и ресурсами платформы как услуги (PaaS). В этой статье описывается создание сред DevTest Labs из шаблонов Azure Resource Manager (ARM ). Этот подход можно использовать для создания лаборатории для многоуровневого веб-приложения или фермы SharePoint.
Ресурсы в среде DevTest Labs используют одинаковый жизненный цикл. Вы можете управлять ими вместе и отслеживать затраты отдельных ресурсов PaaS в лабораторной среде так же, как и отслеживать затраты на отдельные виртуальные машины.
Вы можете настроить лабораторию для использования шаблонов среды ARM из общедоступных или частных репозиториев шаблонов Git. На следующей схеме показано, как DevTest Labs использует шаблон ARM из общедоступного или частного репозитория для развертывания среды, содержащей виртуальные машины и другие ресурсы.
Примечание.
Если вам нужно управлять ресурсами PaaS, политиками и параметрами безопасности уровня предприятия, а также интеграцией CI/CD между этапами развертывания и приложениями, рассмотрите использование Azure Deployment Environments (ADE) для создания сред. ADE позволяет разработчикам быстро развертывать инфраструктуру приложений с помощью шаблонов на основе проектов, обеспечивая согласованные и безопасные среды для команд разработки. Дополнительные сведения см. в документации по средам развертывания Azure.
Необходимые компоненты
- Чтобы добавить или настроить репозитории шаблонов для лаборатории, необходимо иметь по крайней мере разрешения участника в лаборатории.
- Чтобы создать среды Azure DevTest из доступных шаблонов ARM, необходимо иметь по крайней мере разрешения пользователя DevTest в лаборатории.
- Чтобы запустить скрипт PowerShell в автоматизированной среде создания, используется Azure PowerShell с установленным модулем
Az.Resources.
Ограничения
Среды, созданные из шаблонов среды ARM в DevTest Labs, имеют следующие ограничения:
Функция автозапуска для виртуальных машин не поддерживается.
Следующие политики лаборатории не применяются или не оцениваются.
- Количество виртуальных машин на пользователя лаборатории
- Количество виртуальных машин категории "Премиум" на пользователя
- Количество дисков уровня "Премиум" на пользователя
Например, даже если политика лаборатории позволяет каждому пользователю создавать не более пяти виртуальных машин, пользователь может развернуть шаблон среды ARM, который создает десятки виртуальных машин.
Настройка репозиториев шаблонов для лабораторий
Вы можете настроить лабораторию для использования шаблонов среды ARM из общедоступного репозитория шаблонов ARM DevTest Labs и других общедоступных или частных репозиториев Git. При включении доступа к репозиторию шаблонов пользователи лаборатории могут быстро создавать среды, выбрав шаблоны на портале Azure, как и при создании виртуальных машин.
Общедоступный репозиторий шаблонов ARM DevTest Labs включает предварительно подготовленные шаблоны среды для веб-приложений Azure, кластер Azure Service Fabric и фермы SharePoint для разработки. Для плавного начала работы с ресурсами PaaS шаблоны имеют минимальные входные параметры.
Вы можете использовать общедоступные шаблоны среды как есть или настроить их в соответствии с вашими потребностями. Вы также можете предложить изменения или дополнения к общедоступному шаблону, отправив запрос на вытягивание в репозиторий общедоступных шаблонов GitHub.
Вы также можете хранить шаблоны среды в других общедоступных или частных репозиториях Git и добавлять эти репозитории в лабораторию, чтобы сделать шаблоны доступными для всех пользователей лаборатории. Инструкции см. в разделе "Сохранение шаблонов ARM в репозиториях Git" и в разделе "Добавление репозиториев шаблонов в лаборатории".
Настройка параметров общедоступной среды
Вы можете включить доступ к общедоступному репозиторию шаблонов DevTest Labs для новой или существующей лаборатории. При предоставлении доступа к репозиторию можно выбрать шаблоны окружения, чтобы сделать их доступными для пользователей лаборатории.
Настройка доступа к общедоступной среде для новой лаборатории
Чтобы настроить доступ к репозиторию общедоступной среды при создании новой лаборатории, на вкладке "Основные параметры " установите для параметра "Общедоступные среды " значение "Вкл ." или "Выкл.". Этот параметр имеет значение On по умолчанию.
Настройка доступа к общедоступной среде для существующей лаборатории
Чтобы включить или отключить доступ к общедоступному репозиторию среды для существующей лаборатории, выполните следующие действия.
На странице обзорапортала Azure для лаборатории выберите "Конфигурация" и "Политики" в разделе "Параметры" в меню навигации слева.
На странице "Конфигурация и политики" разверните базы виртуальных машин в меню слева и выберите общедоступные среды.
На странице "Общедоступные среды " задайте для параметра "Включить общедоступные среды" для этого параметра лаборатории значение "Да " или "Нет".
Выберите Сохранить.
Выбор доступных шаблонов общедоступных сред
Если включить репозиторий общедоступной среды для лаборатории, все шаблоны среды в репозитории доступны пользователям лаборатории по умолчанию. Вы можете отключить доступ к выбранным шаблонам. Отключенные шаблоны больше не отображаются в списке сред, которые пользователи могут создавать.
Чтобы запретить доступ к определенным шаблонам среды, выполните указанные действия.
На портале Azure вашей лаборатории на странице конфигурации и политик>баз виртуальных машин>общедоступные среды снимите флажки рядом со средами, которые требуется отключить.
Выберите Сохранить.
Настройка разрешений пользователя среды
По умолчанию пользователям лаборатории назначается роль читателя в средах, которые они создают. Читатели не могут останавливать, запускать или изменять ресурсы среды, такие как серверы SQL или базы данных. Чтобы разрешить пользователям лаборатории изменять ресурсы в своих средах, вы можете предоставить им роль участника в группе ресурсов для своей среды.
На странице обзорапортала Azure для лаборатории выберите "Конфигурация" и "Политики" в разделе "Параметры" в меню навигации слева.
На странице "Конфигурация и политики" разверните раздел "Параметры " в меню слева и выберите "Параметры лаборатории".
На странице параметров лаборатории в разделе Доступ к среде задайте для параметра права пользователя группы ресурсов значение Участник.
Выберите Сохранить.
Создание сред на основе шаблонов
Если ваша лаборатория настроена на использование общедоступных или частных репозиториев шаблонов, можно создать среду, выбрав доступный шаблон ARM, аналогичный созданию виртуальной машины. Выполните следующие действия, чтобы создать среду из шаблона.
На странице портала AzureОбзор для вашей лаборатории выберите Мои среды в разделе Моя лаборатория в левом меню навигации.
На странице "Мои среды " нажмите кнопку "Добавить".
На базовой странице выберите среду для создания.
В области "Добавить " введите имя среды и настройте другие параметры параметров.
- Каждый шаблон среды ARM включает уникальные параметры. При добавлении среды необходимо ввести значения для всех обязательных параметров, обозначаемых красными звездочками.
- Некоторые значения параметров в файле шаблона ARM azuredeploy.parameters.json создают пустые поля параметров без значения по умолчанию на панели добавления . К этим значениям относятся
GEN-UNIQUE, ,GEN-UNIQUE-[N]GEN-SSH-PUB-KEYиGEN-PASSWORD. - Секреты из Azure Key Vault можно использовать для безопасных параметров строки , таких как пароли. Дополнительные сведения см. в разделе "Хранилище секретов" в Azure Key Vault.
Нажмите кнопку "Добавить". Сразу начнется процесс подготовки среды.
Процесс подготовки среды может занять много времени. Общее время зависит от количества экземпляров служб, виртуальных машин и других ресурсов, создаваемых DevTest Labs в рамках лабораторной среды.
Состояние подготовки можно отслеживать на странице Мои среды. Выберите "Обновить " на панели инструментов, чтобы обновить представление страницы и проверить текущее состояние. Во время подготовки состояние среды создается. После завершения подготовки состояние изменится на Ready.
Когда среда будет готова, вы можете развернуть среду в списке "Мои среды ", чтобы просмотреть подготовленные виртуальные машины.
Развертывание создает новую группу ресурсов для развертывания всех ресурсов среды, определенных шаблоном ARM. Выберите среду в списке "Мои среды ", чтобы просмотреть группу ресурсов и все ресурсы, созданные шаблоном.
Выберите виртуальную машину в списке, чтобы просмотреть свойства и доступные действия виртуальной машины, такие как управление конфигурацией, расписаниями и политиками.
Автоматизация создания сред
Если вам нужно создать несколько сред для сценариев разработки или тестирования, можно использовать Azure PowerShell или Azure CLI для автоматизации развертывания среды из шаблонов ARM. Ниже показано, как автоматизировать развертывание шаблона среды ARM с помощью команды Azure PowerShell New-AzResource .
Вы также можете автоматизировать развертывание с помощью команды Azure CLI az deployment group create. Дополнительные сведения см. в статье "Развертывание ресурсов с помощью шаблонов ARM и Azure CLI".
Сохраните шаблон среды ARM в репозитории Git и добавьте репозиторий в лабораторию.
Сохраните следующий скрипт PowerShell на компьютере как deployenv.ps1. Этот скрипт вызывает шаблон ARM для создания среды в лаборатории.
#Requires -Module Az.Resources [CmdletBinding()] param ( # ID of the Azure subscription for the lab [string] [Parameter(Mandatory=$true)] $SubscriptionId, # Name of the lab in which to create the environment [string] [Parameter(Mandatory=$true)] $LabName, # Name of the template repository connected to the lab [string] [Parameter(Mandatory=$true)] $RepositoryName, # Name of the template (folder name in the GitHub repository) [string] [Parameter(Mandatory=$true)] $TemplateName, # Name of the environment to create in the lab [string] [Parameter(Mandatory=$true)] $EnvironmentName, # The parameters to pass to the template. Each parameter is prefixed with "-param_". # For example, if the template has a parameter named "TestVMName" with a value of "MyVMName", # the string in $Params is "-param_TestVMName MyVMName". # This convention allows the script to dynamically handle different templates. [Parameter(ValueFromRemainingArguments=$true)] $Params ) # Sign in to Azure, or comment out this statement to completely automate environment creation. Connect-AzAccount # Select the subscription for your lab. Set-AzContext -SubscriptionId $SubscriptionId | Out-Null # Get the user ID to use later in the script. $UserId = $((Get-AzADUser -UserPrincipalName ((Get-AzContext).Account).Id).Id) # Get the lab location. $lab = Get-AzResource -ResourceType "Microsoft.DevTestLab/labs" -Name $LabName if ($lab -eq $null) { throw "Unable to find lab $LabName in subscription $SubscriptionId." } # Get information about the repository connected to your lab. $repository = Get-AzResource -ResourceGroupName $lab.ResourceGroupName ` -ResourceType 'Microsoft.DevTestLab/labs/artifactsources' ` -ResourceName $LabName ` -ApiVersion 2016-05-15 ` | Where-Object { $RepositoryName -in ($_.Name, $_.Properties.displayName) } ` | Select-Object -First 1 if ($repository -eq $null) { throw "Unable to find repository $RepositoryName in lab $LabName." } # Get information about the ARM template base for the environment. $template = Get-AzResource -ResourceGroupName $lab.ResourceGroupName ` -ResourceType "Microsoft.DevTestLab/labs/artifactSources/armTemplates" ` -ResourceName "$LabName/$($repository.Name)" ` -ApiVersion 2016-05-15 ` | Where-Object { $TemplateName -in ($_.Name, $_.Properties.displayName) } ` | Select-Object -First 1 if ($template -eq $null) { throw "Unable to find template $TemplateName in lab $LabName." } # Build the template parameters by using parameter names and values. $parameters = Get-Member -InputObject $template.Properties.contents.parameters -MemberType NoteProperty | Select-Object -ExpandProperty Name $templateParameters = @() # Extract the custom parameters from $Params and format them as name/value pairs. $Params | ForEach-Object { if ($_ -match '^-param_(.*)' -and $Matches[1] -in $parameters) { $name = $Matches[1] } elseif ( $name ) { $templateParameters += @{ "name" = "$name"; "value" = "$_" } $name = $null #reset name variable } } # Create an object to hold the necessary template properties. $templateProperties = @{ "deploymentProperties" = @{ "armTemplateId" = "$($template.ResourceId)"; "parameters" = $templateParameters }; } # Deploy the environment in your lab by using the New-AzResource command. New-AzResource -Location $Lab.Location ` -ResourceGroupName $lab.ResourceGroupName ` -Properties $templateProperties ` -ResourceType 'Microsoft.DevTestLab/labs/users/environments' ` -ResourceName "$LabName/$UserId/$EnvironmentName" ` -ApiVersion '2016-05-15' -Force Write-Output "Environment $EnvironmentName completed."Чтобы использовать скрипт, выполните следующую команду. Обновите заполнители в команде собственными значениями лаборатории.
.\DeployLabEnvironment.ps1 ` -SubscriptionId "<Subscription ID>" ` -LabName "<LabName>" ` -ResourceGroupName "<LabResourceGroupName>" ` -RepositoryName "<TemplateRepoName>" ` -TemplateName "<TemplateFolderName>" ` -EnvironmentName "<EnvironmentName>"