Примечание.
Для доступа к этой странице требуется авторизация. Вы можете попробовать войти или изменить каталоги.
Для доступа к этой странице требуется авторизация. Вы можете попробовать изменить каталоги.
Чтобы запускать приложения на экземплярах виртуальной машины в масштабируемом наборе, сначала необходимо установить компоненты приложения и необходимые файлы. В предыдущем руководстве вы узнали, как создать и использовать пользовательский образ виртуальной машины для развертывания экземпляров виртуальной машины. Этот пользовательский образ включал установки приложений и конфигурации вручную. Вы также можете автоматизировать установку приложений в масштабируемый набор после развертывания каждого экземпляра виртуальной машины или обновить приложение, которое уже работает в масштабируемом наборе. Из этого руководства вы узнаете, как выполнить следующие задачи:
- Автоматическая установка приложений для масштабируемого набора
- Используйте расширение пользовательского скрипта Azure
- Обновление работающего приложения в масштабируемом наборе
Если у вас нет аккаунта Azure, создайте бесплатную учетную запись перед началом.
Предпосылки
Используйте среду Bash в Azure Cloud Shell. Дополнительные сведения см. в статье "Начало работы с Azure Cloud Shell".
Если вы предпочитаете запускать справочные команды CLI локально, установите Azure CLI. Если вы работаете в Windows или macOS, подумайте о запуске Azure CLI в контейнере Docker. Дополнительные сведения см. в статье Как запустить Azure CLI в контейнере Docker.
Если вы используете локальную установку, войдите в Azure CLI с помощью команды az login . Чтобы завершить процесс аутентификации, следуйте шагам, отображаемым в вашем терминале. Сведения о других параметрах входа см. в статье "Проверка подлинности в Azure с помощью Azure CLI".
Когда вас попросят, установите расширение Azure CLI при первом использовании. Дополнительные сведения о расширениях см. в статье Использование расширений и управление ими с помощью Azure CLI.
Выполните команду az version, чтобы узнать установленную версию и зависимые библиотеки. Чтобы обновиться до последней версии, выполните команду az upgrade.
- Для этой статьи требуется версия 2.0.29 или более поздняя версия Azure CLI. Если вы используете Azure Cloud Shell, последняя версия уже установлена.
Что такое расширение пользовательского скрипта Azure?
Расширение пользовательского скрипта загружает и выполняет скрипты на виртуальных машинах Azure. Это расширение полезно для конфигурации после развертывания, установки программного обеспечения или любой другой задачи настройки или управления. Скрипты можно скачать из хранилища Azure или GitHub или предоставить на портал Azure во время выполнения расширения.
Расширение пользовательского скрипта интегрируется с шаблонами Azure Resource Manager, а также может использоваться с Azure CLI, Azure PowerShell, порталом Azure или REST API. Дополнительные сведения см. в обзоре настраиваемого скриптового расширения.
Чтобы использовать расширение пользовательского скрипта с Azure CLI, создайте JSON-файл, определяющий, какие файлы необходимо получить и выполнить команды. Эти определения JSON можно повторно использовать в развертываниях масштабируемого набора для применения согласованных установок приложений.
Создание определения расширения пользовательского скрипта
Чтобы просмотреть расширение пользовательского скрипта в действии, давайте создадим масштабируемый набор, который устанавливает веб-сервер NGINX и выводит имя узла экземпляра виртуальной машины масштабируемого набора. Следующее определение расширения пользовательского скрипта загружает пример скрипта из GitHub, устанавливает необходимые пакеты, а затем записывает имя узла экземпляра виртуальной машины на базовую HTML-страницу.
В текущей оболочке создайте файл с именемcustomConfig.json и вставьте следующую конфигурацию. Например, создайте файл в Cloud Shell не на локальном компьютере. Вы можете использовать любой нужный редактор. В этом руководстве мы будем использовать Vi. Введитеvi в Cloud Shell. Вставьте приведенный ниже код JSON в редактор и введите :w customConfig.json.
{
"fileUris": ["https://raw.githubusercontent.com/Azure-Samples/compute-automation-configurations/master/automate_nginx.sh"],
"commandToExecute": './automate_nginx.sh'
}
Замечание
Если вы решите ссылаться на JSON напрямую (вместо ссылки на файл customConfig.json ) в параметре --settings ниже, может потребоваться поменять местами использование одинарных (') и двойных кавычек (") в блоке JSON.
Создать набор для масштабирования
Это важно
Начиная с ноября 2023 года масштабируемые наборы виртуальных машин, созданные с помощью PowerShell и Azure CLI, по умолчанию будут использоваться в режиме гибкой оркестрации, если режим оркестрации не указан. Дополнительные сведения об этом изменении и о действиях, которые необходимо предпринять, см. в руководстве по критическим изменениям для клиентов VmSS PowerShell/CLI — Microsoft Community Hub
Создайте группу ресурсов с помощью az group create. В следующем примере создается группа ресурсов с именем myResourceGroup в расположении eastus.
az group create --name myResourceGroup --location eastus
Теперь создайте масштабируемый набор виртуальных машин с помощью az vmss create. В следующем примере создается масштабируемый набор с именем myScaleSet и создается ключи SSH, если они не существуют:
az vmss create \
--resource-group myResourceGroup \
--name myScaleSet \
--image Ubuntu2204 \
--orchestration-mode Flexible \
--admin-username azureuser \
--generate-ssh-keys
Создание и настройка всех ресурсов масштабируемого набора и виртуальных машин занимает несколько минут.
Примените расширение пользовательского скрипта
Примените конфигурацию расширения пользовательского скрипта к виртуальным машинам в масштабируемом наборе, используя az vmss extension set. Следующий пример применяет конфигурациюcustomConfig.json к экземплярам виртуальных машин myScaleSet в группе ресурсов с именем myResourceGroup:
az vmss extension set \
--publisher Microsoft.Azure.Extensions \
--version 2.0 \
--name CustomScript \
--resource-group myResourceGroup \
--vmss-name myScaleSet \
--settings customConfig.json
Caution
Имена файлов чувствительны к регистру. Используйте точное имя файла, указанное в этих инструкциях, чтобы избежать сбоя.
Применение расширения к существующим экземплярам масштабируемого набора
Обновите все экземпляры, чтобы применить пользовательский скрипт. Обновление может занять несколько минут.
az vmss update-instances --resource-group myResourceGroup --name myScaleSet --instance-ids "*"
Разрешить трафик через порт 80
Чтобы разрешить трафик передаваться через подсистему балансировки нагрузки на виртуальные машины, необходимо обновить группу безопасности сети по умолчанию.
az network nsg rule create --name AllowHTTP --resource-group myResourceGroup --nsg-name myScaleSetNSG --access Allow --priority 1010 --destination-port-ranges 80
Протестируйте масштабируемый набор
Чтобы просмотреть работу веб-сервера, получите общедоступный IP-адрес балансировщика нагрузки с помощью команды az network public-ip show. Следующий пример получает IP-адрес для myScaleSetLBPublicIP, созданный как часть масштабируемого набора:
az network public-ip show \
--resource-group myResourceGroup \
--name myScaleSetLBPublicIP \
--query [ipAddress] \
--output tsv
Введите общедоступный IP-адрес подсистемы балансировки нагрузки в веб-браузере. Подсистема балансировки нагрузки распределяет трафик в один из экземпляров виртуальной машины, как показано в следующем примере:
Оставьте веб-браузер открытым, чтобы увидеть обновленную версию на следующем шаге.
Изменение политики обновления
В предыдущем разделе для применения обновленного приложения ко всем экземплярам масштабируемого набора требовалось обновление вручную. Чтобы включить автоматическое применение обновлений ко всем существующим экземплярам масштабируемого набора, измените политику обновления с ручного на автоматический режим. Дополнительные сведения о политиках обновления см. в разделе "Политики обновления" для масштабируемых наборов виртуальных машин.
az vmss update \
--name myScaleSet \
--resource-group myResourceGroup \
--set upgradePolicy.mode=automatic
Обновление развертывания приложения
В текущей оболочке создайте файл с именемcustomConfigv2.json и вставьте следующую конфигурацию. Это определение запускает обновленную версию версии 2 скрипта установки приложения:
{
"fileUris": ["https://raw.githubusercontent.com/Azure-Samples/compute-automation-configurations/master/automate_nginx_v2.sh"],
"commandToExecute": "./automate_nginx_v2.sh"
}
Примените конфигурацию расширения пользовательского скрипта к вашему набору масштабирования еще раз с помощью az vmss extension set. customConfigv2.json используется для применения обновленной версии приложения:
az vmss extension set \
--publisher Microsoft.Azure.Extensions \
--version 2.0 \
--name CustomScript \
--resource-group myResourceGroup \
--vmss-name myScaleSet \
--settings @customConfigv2.json
Так как масштабируемый набор теперь использует политику автоматического обновления, обновленное приложение будет автоматически применено к существующим экземплярам масштабируемого набора. Обновите веб-браузер, чтобы увидеть обновленное приложение.
Очистите ресурсы
Чтобы удалить масштабируемый сет и дополнительные ресурсы, удалите группу ресурсов и все её ресурсы с az group delete. При использовании параметра --no-wait управление возвращается в командную строку без ожидания завершения операции. Параметр --yes подтверждает, что вы хотите удалить ресурсы без дополнительного запроса.
az group delete --name myResourceGroup --no-wait --yes
Дальнейшие шаги
В этом руководстве вы узнали, как автоматически устанавливать и обновлять приложения в масштабируемом наборе с помощью Azure CLI:
- Автоматическая установка приложений для масштабируемого набора
- Используйте расширение пользовательского скрипта Azure
- Обновление работающего приложения в масштабируемом наборе
Перейдите к следующему руководству, чтобы узнать, как автоматически масштабировать масштабируемый набор.