Упражнение. Обновление приложений в Масштабируемые наборы виртуальных машин

Завершено

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

Необходимо убедиться, что система останется доступной во время развертывания. С этой целью можно использовать расширение пользовательских скриптов для обновления. Примените этот скрипт в масштабируемом наборе виртуальных машин. Масштабируемый набор будет применять обновление к одной виртуальной машине за раз, пока остальные виртуальные машины продолжают работать.

В этом упражнении вы будете использовать расширение пользовательских скриптов для развертывания новой версии веб-приложения. Вы измените сообщение, предоставляемое сервером nginx. Для более крупных обновлений можно использовать тот же подход.

Примечание

Это необязательное упражнение. Если у вас нет учетной записи Azure, прочтите инструкции, чтобы понимать, как использовать REST API для получения метрик.

Если вы хотите выполнить это упражнение, но у вас нет подписки Azure или вы не хотите использовать собственную учетную запись, создайте бесплатную учетную запись , прежде чем начинать работу.

Развертывание обновления с помощью расширения пользовательских скриптов

  1. В портал Azure откройте Cloud Shell и выполните следующую команду, чтобы просмотреть текущую политику обновления для масштабируемого набора:

    az vmss show \
        --name webServerScaleSet \
        --resource-group myResourceGroup \
        --query upgradePolicy.mode
    

    Убедитесь в том, что для политики обновления задано значение Automatic. Вы указали эту политику при создании масштабируемого набора в первом задании. Если политика была Manual, вы бы применяли любые изменения виртуальной машины вручную. Так как установлена политика Automatic, вы можете использовать расширение пользовательских скриптов и разрешить масштабируемому набору выполнить обновление.

  2. Выполните следующую команду, чтобы применить скрипт обновления:

    az vmss extension set \
        --publisher Microsoft.Azure.Extensions \
        --version 2.0 \
        --name CustomScript \
        --vmss-name webServerScaleSet \
        --resource-group myResourceGroup \
        --settings "{\"commandToExecute\": \"echo This is the updated app installed on the Virtual Machine Scale Set ! > /var/www/html/index.html\"}"
    

Тестирование измененного веб-приложения

  1. Выполните следующую команду, чтобы получить IP-адрес подсистемы балансировки нагрузки для масштабируемого набора:

    az network public-ip show \
        --name webServerScaleSetLBPublicIP \
        --resource-group myResourceGroup \
        --output tsv \
        --query ipAddress
    
  2. В веб-браузере перейдите по общедоступному адресу подсистемы балансировки нагрузки для масштабируемого набора. Вы должны увидеть сообщение This is the updated app installed on the Virtual Machine Scale Set! (Это обновленное приложение, установленное в масштабируемом наборе виртуальных машин).

    Снимок экрана обновленного веб-приложения.