Учебник. Развертывание расширений виртуальных машин с помощью шаблонов ARM.
Узнайте, как использовать расширения виртуальных машин Azure, чтобы выполнять задачи настройки и автоматизации после развертывания виртуальных машин Azure. Существует множество разных расширений виртуальных машин, которые можно использовать с виртуальными машинами Azure. При работе с этим учебником вы развернете расширение пользовательского скрипта из шаблона Azure Resource Manager для выполнения скрипта PowerShell на виртуальной машине Windows. Скрипт устанавливает веб-сервер на виртуальной машине.
В рамках этого руководства рассматриваются следующие задачи:
- Подготовка скрипта PowerShell
- Открытие шаблона быстрого запуска
- Изменение шаблона
- Развертывание шаблона
Если у вас нет подписки Azure, создайте бесплатную учетную запись, прежде чем приступить к работе.
Необходимые компоненты
Для работы с этой статьей необходимо иметь следующее.
Visual Studio Code с расширением средств Resource Manager. См. Краткое руководство. Создание шаблонов ARM с помощью Visual Studio Code.
Для повышения уровня безопасности используйте пароль, созданный для учетной записи администратора виртуальной машины. Azure Cloud Shell можно использовать для выполнения следующей команды в PowerShell или Bash:
openssl rand -base64 32
Чтобы узнать больше, выполните команду
man openssl rand
и откройте страницу вручную.Для защиты криптографических ключей и других секретов используйте Azure Key Vault. Дополнительные сведения см. в статье Учебник. Интеграция с Azure Key Vault при развертывании шаблона ARM. Мы также советуем обновлять пароль каждые три месяца.
Подготовка скрипта PowerShell
Вы можете использовать встроенный скрипт PowerShell или файл скрипта. В этом руководстве описано, как использовать файл скрипта. Используется доступный на GitHub скрипт PowerShell со следующим содержимым:
Install-WindowsFeature -Name Web-Server -IncludeManagementTools
Если вы решили опубликовать файл в своем расположении, обновите элемент fileUri
в шаблоне, как описано в этом руководстве.
Открытие шаблона быстрого запуска
Шаблоны быстрого запуска Azure — это репозиторий для шаблонов Resource Manager. Вместо создания шаблона с нуля можно найти пример шаблона и настроить его. Шаблон, используемый в этом руководстве, называется Deploy a simple Windows VM (Развертывание простой виртуальной машины Windows).
В Visual Studio Code выберите Файл>Открыть файл.
В поле Имя файла вставьте следующий URL-адрес:
https://raw.githubusercontent.com/Azure/azure-quickstart-templates/master/quickstarts/microsoft.compute/vm-simple-windows/azuredeploy.json
Чтобы открыть файл, выберите Открыть. Шаблон определяет пять ресурсов:
Microsoft.Compute/virtualMachines.
Прежде чем настраивать шаблон, рекомендуется получить основные сведения о нем.
Сохраните файл под именем azuredeploy.json на локальный компьютер, выбрав Файл>Сохранить как.
Изменение шаблона
Добавьте ресурс расширения виртуальной машины в существующий шаблон со следующим содержимым:
{
"type": "Microsoft.Compute/virtualMachines/extensions",
"apiVersion": "2021-04-01",
"name": "[format('{0}/{1}', variables('vmName'), 'InstallWebServer')]",
"location": "[parameters('location')]",
"dependsOn": [
"[format('Microsoft.Compute/virtualMachines/{0}',variables('vmName'))]"
],
"properties": {
"publisher": "Microsoft.Compute",
"type": "CustomScriptExtension",
"typeHandlerVersion": "1.7",
"autoUpgradeMinorVersion": true,
"settings": {
"fileUris": [
"https://raw.githubusercontent.com/Azure/azure-docs-json-samples/master/tutorial-vm-extension/installWebServer.ps1"
],
"commandToExecute": "powershell.exe -ExecutionPolicy Unrestricted -File installWebServer.ps1"
}
}
}
Дополнительные сведения об определении этого ресурса см. в справочнике по расширению. Ниже приведены некоторые важные элементы.
name
. Так как ресурс расширения является дочерним ресурсом объекта виртуальной машины, у имени должен быть префикс имени виртуальной машины. См. о настройке имени и типа дочернего ресурса.dependsOn
. Создайте ресурс расширения после создания виртуальной машины.fileUris
. Это расположение, в котором хранятся файлы скриптов. Если вы решили не использовать указанное расположение, необходимо обновить значения.commandToExecute
. Эта команда запускает скрипт.
Чтобы использовать встроенный скрипт, удалите fileUris
и обновите commandToExecute
следующим образом:
powershell.exe Install-WindowsFeature -name Web-Server -IncludeManagementTools && powershell.exe remove-item 'C:\\inetpub\\wwwroot\\iisstart.htm' && powershell.exe Add-Content -Path 'C:\\inetpub\\wwwroot\\iisstart.htm' -Value $('Hello World from ' + $env:computername)
Этот встроенный скрипт также обновляет содержимое файла iisstart.html.
Кроме того, необходимо открыть HTTP-порт, чтобы вы могли получить доступ к веб-серверу.
Найдите
securityRules
в шаблоне.Добавьте следующее правило рядом с default-allow-3389.
{ "name": "AllowHTTPInBound", "properties": { "priority": 1010, "access": "Allow", "direction": "Inbound", "destinationPortRange": "80", "protocol": "Tcp", "sourcePortRange": "*", "sourceAddressPrefix": "*", "destinationAddressPrefix": "*" } }
Развертывание шаблона
Дополнительные сведения о процедуре развертывания см. в разделе Развертывание шаблона статьи Руководство. Создание шаблонов Resource Manager с зависимыми ресурсами. Мы советуем использовать пароль, созданный для учетной записи администратора виртуальной машины. Дополнительные сведения см. в разделе Предварительные требования этой статьи.
В Cloud Shell выполните следующую команду, чтобы получить общедоступный IP-адрес виртуальной машины.
(Get-AzPublicIpAddress -ResourceGroupName $resourceGroupName).IpAddress
Вставьте URL-адрес в веб-браузер. Откроется страница приветствия IIS по умолчанию, которая будет выглядеть следующим образом:
Очистка ресурсов
Если развернутые ресурсы Azure больше не нужны, вы можете их очистить. Для этого необходимо удалить группу ресурсов.
- На портале Azure на панели слева выберите Группа ресурсов.
- В поле Фильтровать по имени введите имя группы ресурсов.
- Выберите имя группы ресурсов. В группе ресурсов будет отображаться шесть ресурсов.
- В главном меню выберите Удалить группу ресурсов.
Следующие шаги
В этом руководстве вы развернули виртуальную машину и расширение виртуальной машины. Расширение установило веб-сервер IIS на виртуальной машине. Чтобы узнать, как использовать расширение Базы данных SQL Azure для импорта BACPAC-файла, перейдите к следующему руководству: